From ead83056ff87b4ac5bf1e50ec7b3ca913600ccb0 Mon Sep 17 00:00:00 2001 From: Jeffrey Hsu Date: Thu, 9 Jan 2025 18:30:49 +0800 Subject: [PATCH] first commit --- .gitignore | 6 + README.md | 1041 ++++++++++++ day01-app-title/index.html | 12 + day01-app-title/index.js | 19 + day01-app-title/list.html | 10 + day01-app-title/main.js | 37 + day01-app-title/package-lock.json | 1396 +++++++++++++++++ day01-app-title/package.json | 17 + day01-app-title/w.png | Bin 0 -> 11528 bytes day01-app-window-size/index.html | 10 + day01-app-window-size/main.js | 35 + day01-app-window-size/package-lock.json | 1396 +++++++++++++++++ day01-app-window-size/package.json | 17 + day01-customize-menu/index.html | 10 + day01-customize-menu/main.js | 60 + day01-customize-menu/package-lock.json | 1396 +++++++++++++++++ day01-customize-menu/package.json | 17 + day01-customize-window-title/c.png | Bin 0 -> 107252 bytes day01-customize-window-title/index.html | 93 ++ day01-customize-window-title/index.js | 24 + day01-customize-window-title/main.js | 36 + .../package-lock.json | 1396 +++++++++++++++++ day01-customize-window-title/package.json | 17 + day01-electron-life-cycle/index.html | 10 + day01-electron-life-cycle/main.js | 45 + day01-electron-life-cycle/package-lock.json | 1034 ++++++++++++ day01-electron-life-cycle/package.json | 15 + day01-new-project-manual/index.html | 10 + day01-new-project-manual/main.js | 18 + day01-new-project-manual/package-lock.json | 1034 ++++++++++++ day01-new-project-manual/package.json | 15 + day01-prevent-window-close/c.png | Bin 0 -> 107252 bytes day01-prevent-window-close/index.html | 132 ++ day01-prevent-window-close/index.js | 43 + day01-prevent-window-close/main.js | 36 + day01-prevent-window-close/package-lock.json | 1396 +++++++++++++++++ day01-prevent-window-close/package.json | 17 + day01-sub-window/index.html | 12 + day01-sub-window/index.js | 18 + day01-sub-window/main.js | 27 + day01-sub-window/package-lock.json | 1396 +++++++++++++++++ day01-sub-window/package.json | 17 + day01-sub-window/sub.html | 10 + .../index.html | 18 + .../index.js | 18 + .../main.js | 58 + .../package-lock.json | 1396 +++++++++++++++++ .../package.json | 17 + .../subWin1.html | 14 + .../subWin1.js | 20 + day02-create-menu-dynamically/index.html | 22 + day02-create-menu-dynamically/index.js | 40 + day02-create-menu-dynamically/main.js | 29 + .../package-lock.json | 1396 +++++++++++++++++ day02-create-menu-dynamically/package.json | 17 + day02-create-right-click-menu/index.html | 12 + day02-create-right-click-menu/index.js | 29 + day02-create-right-click-menu/main.js | 26 + .../package-lock.json | 1396 +++++++++++++++++ day02-create-right-click-menu/package.json | 17 + day02-dialog-module/index.html | 14 + day02-dialog-module/index.js | 26 + day02-dialog-module/main.js | 29 + day02-dialog-module/package-lock.json | 1396 +++++++++++++++++ day02-dialog-module/package.json | 17 + .../index.html | 21 + .../index.js | 26 + .../main.js | 52 + .../package-lock.json | 1396 +++++++++++++++++ .../package.json | 17 + day02-menu-role-and-type/index.html | 12 + day02-menu-role-and-type/main.js | 79 + day02-menu-role-and-type/open.png | Bin 0 -> 2614 bytes day02-menu-role-and-type/package-lock.json | 1396 +++++++++++++++++ day02-menu-role-and-type/package.json | 17 + day02-menu-role-and-type/w.png | Bin 0 -> 11528 bytes day03-clipboard/c.png | Bin 0 -> 107252 bytes day03-clipboard/index.html | 18 + day03-clipboard/index.js | 31 + day03-clipboard/main.js | 22 + day03-clipboard/package-lock.json | 1396 +++++++++++++++++ day03-clipboard/package.json | 17 + day03-global-shotcut/c.png | Bin 0 -> 107252 bytes day03-global-shotcut/index.html | 11 + day03-global-shotcut/index.js | 3 + day03-global-shotcut/main.js | 44 + day03-global-shotcut/package-lock.json | 1396 +++++++++++++++++ day03-global-shotcut/package.json | 17 + day03-notification/c.png | Bin 0 -> 107252 bytes day03-notification/index.html | 12 + day03-notification/index.js | 17 + day03-notification/main.js | 22 + day03-notification/package-lock.json | 1396 +++++++++++++++++ day03-notification/package.json | 17 + day03-shell-and-iframe/index.html | 29 + day03-shell-and-iframe/index.js | 27 + day03-shell-and-iframe/main.js | 45 + day03-shell-and-iframe/package-lock.json | 1396 +++++++++++++++++ day03-shell-and-iframe/package.json | 17 + 99 files changed, 27286 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 day01-app-title/index.html create mode 100644 day01-app-title/index.js create mode 100644 day01-app-title/list.html create mode 100644 day01-app-title/main.js create mode 100644 day01-app-title/package-lock.json create mode 100644 day01-app-title/package.json create mode 100644 day01-app-title/w.png create mode 100644 day01-app-window-size/index.html create mode 100644 day01-app-window-size/main.js create mode 100644 day01-app-window-size/package-lock.json create mode 100644 day01-app-window-size/package.json create mode 100644 day01-customize-menu/index.html create mode 100644 day01-customize-menu/main.js create mode 100644 day01-customize-menu/package-lock.json create mode 100644 day01-customize-menu/package.json create mode 100644 day01-customize-window-title/c.png create mode 100644 day01-customize-window-title/index.html create mode 100644 day01-customize-window-title/index.js create mode 100644 day01-customize-window-title/main.js create mode 100644 day01-customize-window-title/package-lock.json create mode 100644 day01-customize-window-title/package.json create mode 100644 day01-electron-life-cycle/index.html create mode 100644 day01-electron-life-cycle/main.js create mode 100644 day01-electron-life-cycle/package-lock.json create mode 100644 day01-electron-life-cycle/package.json create mode 100644 day01-new-project-manual/index.html create mode 100644 day01-new-project-manual/main.js create mode 100644 day01-new-project-manual/package-lock.json create mode 100644 day01-new-project-manual/package.json create mode 100644 day01-prevent-window-close/c.png create mode 100644 day01-prevent-window-close/index.html create mode 100644 day01-prevent-window-close/index.js create mode 100644 day01-prevent-window-close/main.js create mode 100644 day01-prevent-window-close/package-lock.json create mode 100644 day01-prevent-window-close/package.json create mode 100644 day01-sub-window/index.html create mode 100644 day01-sub-window/index.js create mode 100644 day01-sub-window/main.js create mode 100644 day01-sub-window/package-lock.json create mode 100644 day01-sub-window/package.json create mode 100644 day01-sub-window/sub.html create mode 100644 day02-correspond-between-render-thread/index.html create mode 100644 day02-correspond-between-render-thread/index.js create mode 100644 day02-correspond-between-render-thread/main.js create mode 100644 day02-correspond-between-render-thread/package-lock.json create mode 100644 day02-correspond-between-render-thread/package.json create mode 100644 day02-correspond-between-render-thread/subWin1.html create mode 100644 day02-correspond-between-render-thread/subWin1.js create mode 100644 day02-create-menu-dynamically/index.html create mode 100644 day02-create-menu-dynamically/index.js create mode 100644 day02-create-menu-dynamically/main.js create mode 100644 day02-create-menu-dynamically/package-lock.json create mode 100644 day02-create-menu-dynamically/package.json create mode 100644 day02-create-right-click-menu/index.html create mode 100644 day02-create-right-click-menu/index.js create mode 100644 day02-create-right-click-menu/main.js create mode 100644 day02-create-right-click-menu/package-lock.json create mode 100644 day02-create-right-click-menu/package.json create mode 100644 day02-dialog-module/index.html create mode 100644 day02-dialog-module/index.js create mode 100644 day02-dialog-module/main.js create mode 100644 day02-dialog-module/package-lock.json create mode 100644 day02-dialog-module/package.json create mode 100644 day02-main-thread-correspond-with-render-thread/index.html create mode 100644 day02-main-thread-correspond-with-render-thread/index.js create mode 100644 day02-main-thread-correspond-with-render-thread/main.js create mode 100644 day02-main-thread-correspond-with-render-thread/package-lock.json create mode 100644 day02-main-thread-correspond-with-render-thread/package.json create mode 100644 day02-menu-role-and-type/index.html create mode 100644 day02-menu-role-and-type/main.js create mode 100644 day02-menu-role-and-type/open.png create mode 100644 day02-menu-role-and-type/package-lock.json create mode 100644 day02-menu-role-and-type/package.json create mode 100644 day02-menu-role-and-type/w.png create mode 100644 day03-clipboard/c.png create mode 100644 day03-clipboard/index.html create mode 100644 day03-clipboard/index.js create mode 100644 day03-clipboard/main.js create mode 100644 day03-clipboard/package-lock.json create mode 100644 day03-clipboard/package.json create mode 100644 day03-global-shotcut/c.png create mode 100644 day03-global-shotcut/index.html create mode 100644 day03-global-shotcut/index.js create mode 100644 day03-global-shotcut/main.js create mode 100644 day03-global-shotcut/package-lock.json create mode 100644 day03-global-shotcut/package.json create mode 100644 day03-notification/c.png create mode 100644 day03-notification/index.html create mode 100644 day03-notification/index.js create mode 100644 day03-notification/main.js create mode 100644 day03-notification/package-lock.json create mode 100644 day03-notification/package.json create mode 100644 day03-shell-and-iframe/index.html create mode 100644 day03-shell-and-iframe/index.js create mode 100644 day03-shell-and-iframe/main.js create mode 100644 day03-shell-and-iframe/package-lock.json create mode 100644 day03-shell-and-iframe/package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4480254 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.vscode +.idea + +**/.vscode +**/.idea +**/node_modules diff --git a/README.md b/README.md new file mode 100644 index 0000000..29053c5 --- /dev/null +++ b/README.md @@ -0,0 +1,1041 @@ +# Electron 入门 + +> WARNING: 文章部分内容已经过时,仅适用于 Electron ^11.2.1 + +## 技术架构 + +Electron = Chromium + Node.js + Native APIs + +## 工作流程 + +启动APP -> 主进程创建window -> win加载界面 -> xxx行为 + +### 主进程 + +- 只有主进程才可以进行GUI的API操作 +- 只有一个 + +### 渲染进程 + +- 可以有多个 +- 和主进程通信完成原生API操作 + +## 环境搭建 + +1. 使用官方 Quick Start + +```bash +$ git clone https://github.com/electron/electron-quick-start +$ cd electron-quick-start +$ npm install +``` + +```javascript +// 01 创建一个窗口 +// 02 让窗口加载了一个界面,这个界面就是用Web技术实现, 运行在渲染进程 +function createWindow () { + // Create the browser window. + const mainWindow = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js') + } + }) + + // and load the index.html of the app. + mainWindow.loadFile('index.html') + + // Open the DevTools. + // mainWindow.webContents.openDevTools() + // ... +} +``` + +2. 手动创建项目 + +```javascript +// main.js +const {app, BrowserWindow} = require('electron') // 导包 + +// 当 app 启动之后执行窗口创建等操作 +app.whenReady().then(() => { + const mainWin = new BrowserWindow({ + width: 600, + height: 400 + }) + + // 在当前窗口中加载指定界面让它显示具体的内容 + mainWin.loadFile('index.html') + + mainWin.on('close', () => { + // ... + }) +}) + +app.on('window-all-closed', () => { + // ... + app.quit() +}) +``` + +```html + + + + 这个窗口标题 + + + +

嘿!这是一段文字!

+ +``` + +```json +// package.json +{ + "name": "xxxx", // 项目的名字 + "version": "x.x.x", // 项目的版本 + "description": "", // 描述 + "main": "main.js", // 入口文件 + "scripts": { + "start": "electron ." // npm start + }, + "keywords": [], // 关键词? + "author": "", // 作者 + "license": "ISC", // 协议 + "devDependencies": { + "electron": "^11.2.1" // 开发依赖 + } +} + +``` + +## 生命周期 + +ready: app初始化完成 + +dom-ready: 一个窗口中的文本加载完成 + +did-finsh-load: 导航完成时出发 + +window-all-closed: 所有窗口都被关闭时触发 + +before-quit: 在关闭窗口之前触发 + +will-quit: 在窗口关闭并且应用退出时触发 + +quit: 当所有窗口被关闭时触发 + +closed: 当窗口关闭时触发,此时删除窗口引用 + +```javascript +const { app, BrowserWindow } = require('electron') + +function createWindow() { + let mainWin = new BrowserWindow({ + width: 600, + height: 400 + }) + + mainWin.loadFile('index.html') + + mainWin.webContents.on('did-finish-load', () => { + console.log('3 - did finish load') + }) + + mainWin.webContents.on('dom-ready', () => { + console.log('2 - dom ready') + }) + + mainWin.on('close', () => { + console.log('8 - win closed') // 多窗口时最后触发 + mainWin = null // 删除引用,释放空间 + }) +} + +app.on('ready', () => { + console.log('1 - ready') + createWindow() +}) + +app.on('window-all-closed', () => { + console.log('4 - window all closed') + app.quit() +}) + +app.on('before-quit', () => { + console.log('5 - before quit') +}) + +app.on('will-quit', () => { + console.log('6 - will-quit') +}) + +app.on('quit', () => { + console.log('7 - quit') +}) + +``` + +## 窗口大小 + +```javascript +function createWindow() { + let mainWin = new BrowserWindow({ + x: 100, // 相对于屏幕左上角 + y: 100, + show: false, // 防止首页白屏 + width: 800, + height: 400, + maxHeight: 600, // 最大值 + maxWidth: 1000, + minHeight: 200, // 最小值 + minWidth: 300, + resizable: false // 固定大小,禁止缩放 + }) + + // 防止首页白屏,否则不显示 + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + + // ... +} +``` + +## 窗口标题及环境 + +```javascript +// main.js +function createWindow() { + let mainWin = new BrowserWindow({ + width: 800, + height: 600, + show: false, + title: "标题", // 要在网页里的标题去除 + icon: "w.png", // 设置图标 + frame: true, // 是否显示标题栏 + transparent: false, // 透明窗体 + autoHideMenuBar: true, // 隐藏菜单 + webPreferences: { + nodeIntegration: true, // Node集成环境 + enableRemoteModule: true, // 开启远程模块 remote + } + }) + + // ... +} +``` + +```javascript +// index.js +const { remote } = require('electron') + +window.addEventListener('DOMContentLoaded', () => { + // 点击按钮打开新窗口 + const oBtn = document.getElementById('btn') + oBtn.addEventListener('click', () => { + // 创建窗口 + let indexMain = new remote.BrowserWindow({ + width: 200, + height: 200 + }) + + indexMain.loadFile('list.html') + + indexMain.on('close', () => { + indexMain = null + }) + }) +}) +``` + +## 自定义窗口的实现 + +```html + + + + + + Document + + + + + +
+

主体内容

+
+ + + + +``` + +```javascript +// index.js +const { remote } = require('electron') + +window.addEventListener('DOMContentLoaded', () => { + // 利用 remote 获取当前窗口对象 + let mainWin = remote.getCurrentWindow() + + // 获取元素添加点击操作的监听 + let aBtns = document.getElementsByClassName('function') + + aBtns[0].addEventListener('click', () => { + // 最小化 + mainWin.minimize() + }) + + aBtns[1].addEventListener('click', () => { + // 最大化 + mainWin.isMaximized() ? mainWin.restore() : mainWin.maximize() + }) + + aBtns[2].addEventListener('click', () => { + // 关闭窗口操作 + mainWin.close() + }) +}) +``` + +## 阻止窗口关闭 + +```html + + + + + + + +
+
+ 是否关闭? +
+ + +
+ + + + +``` + +```javascript +// index.js +const { remote } = require('electron') + +window.addEventListener('DOMContentLoaded', () => { + + window.onbeforeunload = function () { + let oBox = document.getElementsByClassName('dialog')[0] + oBox.style.display = 'block' + + let yBtn = oBox.getElementsByClassName('confirm')[0] + let nBtn = oBox.getElementsByClassName('confirm')[1] + + yBtn.addEventListener('click', () => { + mainWin.destroy() // 不用 close 防止死循环 + }) + + nBtn.addEventListener('click', () => { + oBox.style.display = 'none' + }) + + return false + } + + // ... +} +``` + +## 父子及模态窗口 + +```javascript +// index.js +window.addEventListener('DOMContentLoaded', () => { + let oBtn = document.getElementById('btn') + oBtn.addEventListener('click', () => { + let subWin = new remote.BrowserWindow({ + // ... + parent: remote.getCurrentWindow(), // 设置父窗口 + modal: true, // 设置模态窗口 + }) + // ... + }) +}) +``` + +## 自定义菜单 + +[Electorn文档 Menu部分](https://www.electronjs.org/zh/docs/latest/api/menu) + +```javascript +// ... +console.log(process.platform) // 平台判断 +// ... +const createWindow = () => { + let mainWin = new BrowserWindow({ + // ... + }); + + // 定义自己需要的菜单项 + let menuTemp = [ + { + label: "文件", + submenu: [ + { + label: "打开文件", + click() { + console.log("打开文件夹") + } + }, + { + type: 'separator' // 分隔符 + }, + { + label: "关闭文件夹" + }, + { + label: "关于", + role: 'about' + }, + ], + }, + { label: "编辑" }, + ]; + + // 利用上述模板生成一个菜单项 + let menu = Menu.buildFromTemplate(menuTemp); + + // 添加到应用里 + Menu.setApplicationMenu(menu); + + // ... +}; + +// ... + +``` + +## 菜单角色及类型 + +```javascript +function createWindow() { + let mainWin = new BrowserWindow({ + // ... + }) + + // 01 自定义菜单的内容 + let menuTemp = [ + { + label: '角色', + submenu: [ + { label: '复制', role: 'copy' }, + { label: '剪切', role: 'cut' }, + { label: '粘贴', role: 'paste' }, + { label: '最小化', role: 'minimize' } + ] + }, + { + label: '类型', + submenu: [ + { label: '选项1', type: 'checkbox' }, + { label: '选项2', type: 'checkbox' }, + { label: '选项3', type: 'checkbox' }, + { type: 'separator' }, + { label: 'item1', type: 'radio' }, + { label: 'item2', type: 'radio' }, + { type: 'separator' }, + { label: 'windows', type: 'submenu', role: 'windowMenu'} + ] + }, + { + label: '其他', + submenu: [ + { + label: '打开', + icon: 'open.png', // 自定义图标 + accelerator: 'ctrl + o', // 快捷键 + click() { + console.log('open 执行了') + } + } + ] + } + ] + + // 02 依据上述数据创建一个 menu + let menu = Menu.buildFromTemplate(menuTemp) + + // 03 将上述的菜单添加至 app 中 + Menu.setApplicationMenu(menu) + + // ... +``` + +## 动态创建菜单 + +```html + + + + + + + + + + + +``` + +```javascript +// index.js +const { remote } = require('electron') +const Menu = remote.Menu +const MenuItem = remote.MenuItem + +window.addEventListener('DOMContentLoaded', () => { + // 获取相应的元素 + let addMenu = document.getElementById('addMenu') + let menuCon = document.getElementById('menuCon') + let addItem = document.getElementById('addItem') + + // 自定义全局变量存放菜单项 + let menuItem = new Menu() + + // 生成自定义的菜单 + addMenu.addEventListener('click', () => { + // 创建菜单 + let menuFile = new MenuItem({ label: '文件', type: 'normal' }) + let menuEdit = new MenuItem({ label: '编辑', type: 'normal' }) + let customMenu = new MenuItem({ label: '自定义菜单项', submenu: menuItem }) + + // 将创建好的自定义菜单添加至 menu + let menu = new Menu() + menu.append(menuFile) + menu.append(menuEdit) + menu.append(customMenu) + + // 将 menu 添加至 app 中显示 + Menu.setApplicationMenu(menu) + }) + + // 动态添加菜单项 + addItem.addEventListener('click', () => { + // 获取当前 input 输入框中的元素 + let con = menuCon.vaule.trim() + if (con) { + menuItem.append(new MenuItem({ label: con, type: 'normal' })) + menuCon.vaule = '' + } + }) +}) +``` + +## 右键菜单的创建 + +```javascript +// index.js +const { remote } = require('electron') +const Menu = remote.Menu + +let contextTemp = [ + {lable: 'Run Code'}, + {lable: '转到定义'}, + {type: 'separator'}, + { + lable: '其他功能', + click() { + alert('其他功能选项'); + } + }, +] + +let menu = Menu.buildFromTemplate(contextTemp) + +// 给鼠标添加监听 +window.addEventListener('DOMContentLoaded', () => { + window.addEventListener('contextmenu', (ev) => { + ev.preventDefault() + menu.popup({window: remote.getCurrentWindow()}) + }, false) +}) + +/** + * 01 创建一个自定义的菜单内容 + * 02 在鼠标右击行为发生后显示出来 + */ +``` + +## 主进程与渲染进程通信 + +```javascript +// main.js +const createWindow = () => { + let mainWin = new BrowserWindow({ + // ... + }) + + let temp = [ + { + label: 'send', + click() { + // 主进程主动与渲染进程发送消息 + BrowserWindow.getFocusedWindow().webContents.send('mtp', '来自于主进程的消息') + } + } + ] + + let menu = Menu.buildFromTemplate(temp) + // ... +} + +// ... + +// 主进程接收消息操作 +ipcMain.on('msg1', (ev, data) => { + console.log(data) + ev.sender.send('msg1Re', '来自于主进程的异步消息') +}) + +ipcMain.on('msg2', (ev, data) => { + console.log(data) + ev.returnValue = '来自于主进程的同步消息' +}) +``` + +```javascript +// index.js +const { ipcRenderer } = require('electron') + +window.onload = () => { + // 获取元素 + let aBtn = document.getElementsByTagName('button') + + // 01 采用异步的 API 在渲染进程中给主进程发送信息 + aBtn[0].addEventListener('click', () => { + ipcRenderer.send('msg1', '来自于渲染进程的一条异步消息') + }) + + // 02 采用同步的 API 在渲染进程中给主进程发送信息 + aBtn[1].addEventListener('click', () => { + let val = ipcRenderer.sendSync('msg2', '来自于渲染进程的一条同步消息') + alert(val) + }) + + // 接收消息的区域 + ipcRenderer.on('msg1Re', (ev, data) => { + alert(data) + }) + + ipcRenderer.on('mtp', (ev, data) => { + alert(data) + }) +} +``` + +## 渲染进程间通信 + +### 通过本地储存存储 + +```javascript +// main.js +// ... + +// 定义全局变量存放主窗口 Id +let mainWinId = null + +const createWindow = () => { + let mainWin = new BrowserWindow({ + // ... + }) + + mainWinId = mainWin.id + // ... +} + +// 接受其他进程发送的数据,完成后续的逻辑 +ipcMain.on('openWin2', () => { + // 接收到渲染进程中按钮点击信息之后完成窗口2的打开 + let subWin1 = new BrowserWindow({ + // ... + parent: BrowserWindow.fromId(mainWinId), // 或定义全局变量 + // ... + }) + // ... +}) + +// ... +``` + +```javascript +// index.js +window.onload = () => { + // 先获取元素 + let oBtn = document.getElementById('btn') + + oBtn.addEventListener('click', () => { + ipcRenderer.send('openWin2') + + // 打开窗口2之后,保存数据至本地储存 + localStorage.setItem('name', '啦啦啦啦') + }) +} +``` + +```javascript +// subWin1.js +window.onload = () => { + let oInput = document.getElementById('txt') + let val = localStorage.getItem('name') + + oInput.value = val +} +``` + +### 通过主进程 + +```javascript +// main.js + +// 定义全局变量存放主窗口 Id +let mainWinId = null + +const createWindow = () => { + let mainWin = new BrowserWindow({ + // ... + }) + + mainWinId = mainWin.id + // ... +} + +// 接受其他进程发送的数据,完成后续的逻辑 +ipcMain.on('openWin2', (_, data) => { + // 接收到渲染进程中按钮点击信息之后完成窗口2的打开 + let subWin1 = new BrowserWindow({ + // ... + }) + // ... + + // 由 index -> main* -> subWin + // 转交给进程 + subWin1.webContents.on('did-finish-load', () => { + subWin1.webContents.send('its', data) + }) +}) + +// 由 subWin -> main* -> index +ipcMain.on('stm', (_, data) => { + // 转交给进程 + let mainWin = BrowserWindow.fromId(mainWinId) + mainWin.webContents.send('mti', data) +}) + +// ... +``` + +```javascript +// index.js +window.onload = () => { + // 先获取元素 + let oBtn = document.getElementById('btn') + + // 由 index* -> main -> subWin1 + oBtn.addEventListener('click', () => { + ipcRenderer.send('openWin2', '来自于 index 进程') + }) + + // 由 subWin1 -> main -> index* + // 接受消息 + ipcRenderer.on('mti', (_, data) => { + alert(data) + }) +} +``` + +```javascript +// subWin1.js +window.onload = () => { + // ... + // 在 sub 中发送数据给 index.js + let oBtn = document.getElementById('btn') + // subWin1* -> main -> index + oBtn.addEventListener('click', () => { + ipcRenderer.send('stm', '来自于sub进程') + }) + + // index -> main -> subWin1* + // 接收数据 + ipcRenderer.on('its', (_, data) => { + alert(data) + }) +} +``` + +## Dialog模块 + +[Electron官网 Dialog文档](https://www.electronjs.org/zh/docs/latest/api/dialog) + +```javascript +// index.js +window.onload = () => { + let oBtn = document.getElementById('btn') + let oBtnErr = document.getElementById('btnErr') + + oBtn.addEventListener('click', () => { + remote.dialog.showOpenDialog({ + defaultPath: __dirname, // 默认打开目录 + buttonLabel: '请选择', // 按钮上的文字 + title: '啦啦啦啦', // 对话框标题 + properties: ['openFiles', 'multiSelections'], // 文件类型 + filters: [ // 文件类型过滤 + {'name': '代码文件', extensions: ['js', 'json', 'html']}, + {'name': '图片文件', extensions: ['ico', 'jpeg', 'png']}, + {'name': '媒体类型', extensions: ['avi', 'mp4', 'mp3']}, + ], + }).then(ret => { + alert(ret) + }) + }) + + oBtnErr.addEventListener('click', () => { + remote.dialog.showErrorBox('自定义标题', '当前错误内容') + }) +} +``` + +## shell 与 iframe + +### shell + +```html + + + + + + +

shell and iframe

+ + 打开url +

+ + + + +``` + +```javascript +// index.js +window.onload = () => { + // 1 获取元素 + let oBtn1 = document.getElementById('openUrl') + let oBtn2 = document.getElementById('openFolder') + + oBtn1.addEventListener('click', (ev) => { + ev.preventDefault() // 阻止默认行为 + + let urlPath = oBtn1.getAttribute('href') + + // 打开外部浏览器 + shell.openExternal(urlPath) + }) + + oBtn2.addEventListener('click', () => { + // 打开当前目录 + shell.showItemInFolder(path.resolve(__filename)) + }) +} +``` + +### iframe + +```html + + + + + + + + + + +``` + +```javascript +// index.js +ipcRenderer.on('open', () => { + let iframe = document.getElementById('webview') + iframe.src = 'https://cantyonion.site/git/' +}) +``` + +``` javascript +// main.js +const createWindow = () => { + let mainWin = new BrowserWindow({ + // ... + }) + + let tmp = [ + { + label: '菜单', + submenu: [ + { + label: '关于', + click() { + shell.openExternal('https://cantyonion.site') + } + }, + { + label: '打开', + click() { + BrowserWindow.getFocusedWindow().webContents.send('open') + } + }, + ] + } + ] + + let menu = Menu.buildFromTemplate(tmp) + Menu.setApplicationMenu(menu) + // ... +} +// ... + +``` + +## 消息通知 + +前往[MDN](https://developer.mozilla.org/zh-CN/docs/Web/API/Notification)查看详细内容 + +```javascript +window.onload = () => { + let oBtn = document.getElementById('btn') + + oBtn.addEventListener('click', () => { + let option = { + title: '啦啦啦', // 通知标题 + body: 'ok,哈哈哈哈', // 信息体 + icon: 'c.png' // 图标 + } + + let mayNotification = new window.Notification(option.title, option) + + mayNotification.onclick = () => { + alert("点击了消息页卡") + } + }) +} +``` + +## 全局快捷键 + +```javascript +// main.js +// ... +app.on('ready', () => { + // 注册 + let ret = globalShortcut.register('ctrl + q', () => { + console.log("快捷键注册成功") + }) + + if (!ret) { + console.log('注册失败') + } + + // 判断某个快捷键是否已经注销 + console.log(globalShortcut.isRegistered('ctrl + q')) +}) + +app.on('will-quit', () => { + globalShortcut.unregister('ctrl + q') + + // 自动注销使用快捷键 + globalShortcut.unregisterAll() +}) +``` + +## 剪切板模块 + +```html + + + + + + +

剪切板

+ + +

+ + +

+ + + + +``` + +```javascript +// index.js +// ... + +window.onload = () => { + // 获取元素 + let aBtn = document.getElementsByTagName('button') + let aInput = document.getElementsByTagName('input') + let oBtn = document.getElementById('clipImg') + let ret = null + + aBtn[0].onclick = () => { + // 复制内容 + ret = clipboard.writeText(aInput[0].value) + } + + aBtn[1].onclick = () => { + // 粘贴内容 + aInput[1].value = clipboard.readText(ret) + } + + oBtn.onclick = () => { + // 将图片放置于剪切板的时候要求图片类型属于 nativeImage 类型 + let oImage = nativeImage.createFromPath('c.png') + clipboard.writeImage(oImage) + + // 将剪切板中的图片作为 DOM 元素显示在界面上 + let oImg = clipboard.readImage() + let oImgDom = new Image() + oImgDom.src = oImg.toDataURL() // 转换为base64 + document.body.appendChild(oImgDom) + } +} +``` + diff --git a/day01-app-title/index.html b/day01-app-title/index.html new file mode 100644 index 0000000..9ef9cad --- /dev/null +++ b/day01-app-title/index.html @@ -0,0 +1,12 @@ + + + + + + + +

Window Title

+ + + + \ No newline at end of file diff --git a/day01-app-title/index.js b/day01-app-title/index.js new file mode 100644 index 0000000..b68b782 --- /dev/null +++ b/day01-app-title/index.js @@ -0,0 +1,19 @@ +const { remote } = require('electron') + +window.addEventListener('DOMContentLoaded', () => { + // 点击按钮打开新窗口 + const oBtn = document.getElementById('btn') + oBtn.addEventListener('click', () => { + // 创建窗口 + let indexMain = new remote.BrowserWindow({ + width: 200, + height: 200 + }) + + indexMain.loadFile('list.html') + + indexMain.on('close', () => { + indexMain = null + }) + }) +}) diff --git a/day01-app-title/list.html b/day01-app-title/list.html new file mode 100644 index 0000000..2dca799 --- /dev/null +++ b/day01-app-title/list.html @@ -0,0 +1,10 @@ + + + + + 新窗口 + + +

新窗口

+ + \ No newline at end of file diff --git a/day01-app-title/main.js b/day01-app-title/main.js new file mode 100644 index 0000000..e426a69 --- /dev/null +++ b/day01-app-title/main.js @@ -0,0 +1,37 @@ +const { app, BrowserWindow } = require('electron') + +function createWindow() { + let mainWin = new BrowserWindow({ + width: 800, + height: 600, + show: false, + title: "标题", // 要在网页里的标题去除 + icon: "w.png", // 设置图标 + frame: true, // 是否显示标题栏 + transparent: false, // 透明窗体 + autoHideMenuBar: true, // 隐藏菜单 + webPreferences: { + nodeIntegration: true, // Node集成环境 + enableRemoteModule: true, // 开启远程模块 remote + } + }) + + // 防止首页白屏,否则不显示 + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + + mainWin.loadFile('index.html') + + mainWin.on('close', () => { + mainWin = null // 删除引用,释放空间 + }) +} + +app.on('ready', () => { + createWindow() +}) + +app.on('window-all-closed', () => { + app.quit() +}) diff --git a/day01-app-title/package-lock.json b/day01-app-title/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day01-app-title/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day01-app-title/package.json b/day01-app-title/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day01-app-title/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day01-app-title/w.png b/day01-app-title/w.png new file mode 100644 index 0000000000000000000000000000000000000000..1f04ade0c09e0e975c4f65e35321c5a5d1855b96 GIT binary patch literal 11528 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 + + + + Document + + +

Window Size

+ + \ No newline at end of file diff --git a/day01-app-window-size/main.js b/day01-app-window-size/main.js new file mode 100644 index 0000000..1ac9f23 --- /dev/null +++ b/day01-app-window-size/main.js @@ -0,0 +1,35 @@ +const { app, BrowserWindow } = require('electron') + +function createWindow() { + let mainWin = new BrowserWindow({ + x: 100, // 相对于屏幕左上角 + y: 100, + show: false, // 防止首页白屏 + width: 800, + height: 400, + maxHeight: 600, // 最大值 + maxWidth: 1000, + minHeight: 200, // 最小值 + minWidth: 300, + resizable: false // 固定大小,禁止缩放 + }) + + // 防止首页白屏,否则不显示 + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + + mainWin.loadFile('index.html') + + mainWin.on('close', () => { + mainWin = null // 删除引用,释放空间 + }) +} + +app.on('ready', () => { + createWindow() +}) + +app.on('window-all-closed', () => { + app.quit() +}) diff --git a/day01-app-window-size/package-lock.json b/day01-app-window-size/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day01-app-window-size/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day01-app-window-size/package.json b/day01-app-window-size/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day01-app-window-size/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day01-customize-menu/index.html b/day01-customize-menu/index.html new file mode 100644 index 0000000..fa15a45 --- /dev/null +++ b/day01-customize-menu/index.html @@ -0,0 +1,10 @@ + + + + + + + +

自定义菜单

+ + \ No newline at end of file diff --git a/day01-customize-menu/main.js b/day01-customize-menu/main.js new file mode 100644 index 0000000..72d2667 --- /dev/null +++ b/day01-customize-menu/main.js @@ -0,0 +1,60 @@ +const { app, BrowserWindow, Menu } = require("electron"); +console.log(process.platform) // 平台判断 +const createWindow = () => { + let mainWin = new BrowserWindow({ + show: false, + width: 800, + height: 400, + title: "自定义菜单", + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true, + }, + }); + + // 定义自己需要的菜单项 + let menuTemp = [ + { + label: "文件", + submenu: [ + { + label: "打开文件", + click() { + console.log("打开文件夹") + } + }, + { + type: 'separator' + }, + { + label: "关闭文件夹" + }, + { + label: "关于", + role: 'about' + }, + ], + }, + { label: "编辑" }, + ]; + + // 利用上述模板生成一个菜单项 + let menu = Menu.buildFromTemplate(menuTemp); + + // 添加到应用里 + Menu.setApplicationMenu(menu); + + mainWin.loadFile("index.html"); + mainWin.on("ready-to-show", () => { + mainWin.show(); + }); + mainWin.on("close", () => { + mainWin = null; + }); +}; + +app.on("ready", createWindow); + +app.on("window-all-closed", () => { + app.quit(); +}); diff --git a/day01-customize-menu/package-lock.json b/day01-customize-menu/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day01-customize-menu/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day01-customize-menu/package.json b/day01-customize-menu/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day01-customize-menu/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day01-customize-window-title/c.png b/day01-customize-window-title/c.png new file mode 100644 index 0000000000000000000000000000000000000000..c5989e790fe7ebe3bfd23c3332c927925e8d9545 GIT binary patch literal 107252 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

VWY6P22xEkp9t=KuTuv$` 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%0DNXAzK2=zfN<$Nt%5$fzawNghqIBaj0wV- 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 D`!Nq6 literal 0 HcmV?d00001 diff --git a/day01-customize-window-title/index.html b/day01-customize-window-title/index.html new file mode 100644 index 0000000..a7cf728 --- /dev/null +++ b/day01-customize-window-title/index.html @@ -0,0 +1,93 @@ + + + + + Document + + + + + +
+

主体内容

+
+ + + + \ No newline at end of file diff --git a/day01-customize-window-title/index.js b/day01-customize-window-title/index.js new file mode 100644 index 0000000..321758f --- /dev/null +++ b/day01-customize-window-title/index.js @@ -0,0 +1,24 @@ +const { remote } = require('electron') + +window.addEventListener('DOMContentLoaded', () => { + // 利用 remote 获取当前窗口对象 + let mainWin = remote.getCurrentWindow() + + // 获取元素添加点击操作的监听 + let aBtns = document.getElementsByClassName('function') + + aBtns[0].addEventListener('click', () => { + // 最小化 + mainWin.minimize() + }) + + aBtns[1].addEventListener('click', () => { + // 最大化 + mainWin.isMaximized() ? mainWin.restore() : mainWin.maximize() + }) + + aBtns[2].addEventListener('click', () => { + // 关闭窗口操作 + mainWin.close() + }) +}) \ No newline at end of file diff --git a/day01-customize-window-title/main.js b/day01-customize-window-title/main.js new file mode 100644 index 0000000..6bae893 --- /dev/null +++ b/day01-customize-window-title/main.js @@ -0,0 +1,36 @@ +const { app, BrowserWindow } = require('electron') + +function createWindow() { + let mainWin = new BrowserWindow({ + show: false, // 防止首页白屏 + width: 800, + height: 400, + frame: false, + icon: 'c.png', + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true + } + }) + + mainWin.webContents.openDevTools({mode:'detach'}) + + // 防止首页白屏,否则不显示 + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + + mainWin.loadFile('index.html') + + mainWin.on('close', () => { + mainWin = null // 删除引用,释放空间 + }) +} + +app.on('ready', () => { + createWindow() +}) + +app.on('window-all-closed', () => { + app.quit() +}) diff --git a/day01-customize-window-title/package-lock.json b/day01-customize-window-title/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day01-customize-window-title/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day01-customize-window-title/package.json b/day01-customize-window-title/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day01-customize-window-title/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day01-electron-life-cycle/index.html b/day01-electron-life-cycle/index.html new file mode 100644 index 0000000..531de27 --- /dev/null +++ b/day01-electron-life-cycle/index.html @@ -0,0 +1,10 @@ + + + + + Document + + +

Life Cycle

+ + \ No newline at end of file diff --git a/day01-electron-life-cycle/main.js b/day01-electron-life-cycle/main.js new file mode 100644 index 0000000..ff75582 --- /dev/null +++ b/day01-electron-life-cycle/main.js @@ -0,0 +1,45 @@ +const { app, BrowserWindow } = require('electron') + +function createWindow() { + let mainWin = new BrowserWindow({ + width: 600, + height: 400 + }) + + mainWin.loadFile('index.html') + + mainWin.webContents.on('did-finish-load', () => { + console.log('3 - did finish load') + }) + + mainWin.webContents.on('dom-ready', () => { + console.log('2 - dom ready') + }) + + mainWin.on('close', () => { + console.log('8 - win closed') // 多窗口时最后触发 + mainWin = null // 删除引用,释放空间 + }) +} + +app.on('ready', () => { + console.log('1 - ready') + createWindow() +}) + +app.on('window-all-closed', () => { + console.log('4 - window all closed') + app.quit() +}) + +app.on('before-quit', () => { + console.log('5 - before quit') +}) + +app.on('will-quit', () => { + console.log('6 - will-quit') +}) + +app.on('quit', () => { + console.log('7 - quit') +}) diff --git a/day01-electron-life-cycle/package-lock.json b/day01-electron-life-cycle/package-lock.json new file mode 100644 index 0000000..a1fb059 --- /dev/null +++ b/day01-electron-life-cycle/package-lock.json @@ -0,0 +1,1034 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day01-electron-life-cycle/package.json b/day01-electron-life-cycle/package.json new file mode 100644 index 0000000..8cbabb9 --- /dev/null +++ b/day01-electron-life-cycle/package.json @@ -0,0 +1,15 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1" + } +} \ No newline at end of file diff --git a/day01-new-project-manual/index.html b/day01-new-project-manual/index.html new file mode 100644 index 0000000..12489da --- /dev/null +++ b/day01-new-project-manual/index.html @@ -0,0 +1,10 @@ + + + + + 标题 + + +

啦啦啦啦

+ + \ No newline at end of file diff --git a/day01-new-project-manual/main.js b/day01-new-project-manual/main.js new file mode 100644 index 0000000..6481e95 --- /dev/null +++ b/day01-new-project-manual/main.js @@ -0,0 +1,18 @@ +const { app, BowserWindow } = require('electron') + +app.whenReady().then(() => { + const mainWin = new BowserWindow({ + width: 600, + height: 400 + }) + + mainWin.loadFile('index.html') + + mainWin.on('close', () => { + console.log(111); + }) +}) + +app.on('window-all-closed', () => { + app.quit() +}) \ No newline at end of file diff --git a/day01-new-project-manual/package-lock.json b/day01-new-project-manual/package-lock.json new file mode 100644 index 0000000..9a551a1 --- /dev/null +++ b/day01-new-project-manual/package-lock.json @@ -0,0 +1,1034 @@ +{ + "name": "xxxx", + "version": "x.x.x", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "xxxx", + "version": "x.x.x", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day01-new-project-manual/package.json b/day01-new-project-manual/package.json new file mode 100644 index 0000000..ddccc12 --- /dev/null +++ b/day01-new-project-manual/package.json @@ -0,0 +1,15 @@ +{ + "name": "xxxx", + "version": "x.x.x", + "description": "", + "main": "main.js", + "scripts": { + "start": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1" + } +} \ No newline at end of file diff --git a/day01-prevent-window-close/c.png b/day01-prevent-window-close/c.png new file mode 100644 index 0000000000000000000000000000000000000000..c5989e790fe7ebe3bfd23c3332c927925e8d9545 GIT binary patch literal 107252 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

VWY6P22xEkp9t=KuTuv$` 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%0DNXAzK2=zfN<$Nt%5$fzawNghqIBaj0wV- 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 D`!Nq6 literal 0 HcmV?d00001 diff --git a/day01-prevent-window-close/index.html b/day01-prevent-window-close/index.html new file mode 100644 index 0000000..463e284 --- /dev/null +++ b/day01-prevent-window-close/index.html @@ -0,0 +1,132 @@ + + + + + Document + + + + + +
+

主体内容

+
+ +
+
+ 是否关闭? +
+ + +
+ + + + \ No newline at end of file diff --git a/day01-prevent-window-close/index.js b/day01-prevent-window-close/index.js new file mode 100644 index 0000000..3088947 --- /dev/null +++ b/day01-prevent-window-close/index.js @@ -0,0 +1,43 @@ +const { remote } = require('electron') + +window.addEventListener('DOMContentLoaded', () => { + + window.onbeforeunload = function () { + let oBox = document.getElementsByClassName('dialog')[0] + oBox.style.display = 'block' + + let yBtn = oBox.getElementsByClassName('confirm')[0] + let nBtn = oBox.getElementsByClassName('confirm')[1] + + yBtn.addEventListener('click', () => { + mainWin.destroy() // 不用 close 防止死循环 + }) + + nBtn.addEventListener('click', () => { + oBox.style.display = 'none' + }) + + return false + } + + // 利用 remote 获取当前窗口对象 + let mainWin = remote.getCurrentWindow() + + // 获取元素添加点击操作的监听 + let aBtns = document.getElementsByClassName('function') + + aBtns[0].addEventListener('click', () => { + // 最小化 + mainWin.minimize() + }) + + aBtns[1].addEventListener('click', () => { + // 最大化 + mainWin.isMaximized() ? mainWin.restore() : mainWin.maximize() + }) + + aBtns[2].addEventListener('click', () => { + // 关闭窗口操作 + mainWin.close() + }) +}) \ No newline at end of file diff --git a/day01-prevent-window-close/main.js b/day01-prevent-window-close/main.js new file mode 100644 index 0000000..6bae893 --- /dev/null +++ b/day01-prevent-window-close/main.js @@ -0,0 +1,36 @@ +const { app, BrowserWindow } = require('electron') + +function createWindow() { + let mainWin = new BrowserWindow({ + show: false, // 防止首页白屏 + width: 800, + height: 400, + frame: false, + icon: 'c.png', + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true + } + }) + + mainWin.webContents.openDevTools({mode:'detach'}) + + // 防止首页白屏,否则不显示 + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + + mainWin.loadFile('index.html') + + mainWin.on('close', () => { + mainWin = null // 删除引用,释放空间 + }) +} + +app.on('ready', () => { + createWindow() +}) + +app.on('window-all-closed', () => { + app.quit() +}) diff --git a/day01-prevent-window-close/package-lock.json b/day01-prevent-window-close/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day01-prevent-window-close/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day01-prevent-window-close/package.json b/day01-prevent-window-close/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day01-prevent-window-close/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day01-sub-window/index.html b/day01-sub-window/index.html new file mode 100644 index 0000000..7d46b0e --- /dev/null +++ b/day01-sub-window/index.html @@ -0,0 +1,12 @@ + + + + + 主界面 + + +

子窗口及模态窗口

+ + + + \ No newline at end of file diff --git a/day01-sub-window/index.js b/day01-sub-window/index.js new file mode 100644 index 0000000..8c1c0d9 --- /dev/null +++ b/day01-sub-window/index.js @@ -0,0 +1,18 @@ +const { remote } = require('electron') + +window.addEventListener('DOMContentLoaded', () => { + let oBtn = document.getElementById('btn') + oBtn.addEventListener('click', () => { + let subWin = new remote.BrowserWindow({ + width: 200, + height: 200, + parent: remote.getCurrentWindow(), // 设置父窗口 + modal: true, // 设置模态窗口 + }) + + subWin.loadFile('sub.html') + subWin.on('close', () => { + subWin = null + }) + }) +}) \ No newline at end of file diff --git a/day01-sub-window/main.js b/day01-sub-window/main.js new file mode 100644 index 0000000..a1233e0 --- /dev/null +++ b/day01-sub-window/main.js @@ -0,0 +1,27 @@ +const { app, BrowserWindow } = require('electron') + +const createWindow = () => { + let mainWin = new BrowserWindow({ + show: false, + width: 800, + height: 400, + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true + } + }) + + mainWin.loadFile('index.html') + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + mainWin.on('close', () => { + mainWin = null + }) +} + +app.on('ready', createWindow) + +app.on('window-all-closed', () => { + app.quit() +}) \ No newline at end of file diff --git a/day01-sub-window/package-lock.json b/day01-sub-window/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day01-sub-window/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day01-sub-window/package.json b/day01-sub-window/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day01-sub-window/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day01-sub-window/sub.html b/day01-sub-window/sub.html new file mode 100644 index 0000000..7bc2ee6 --- /dev/null +++ b/day01-sub-window/sub.html @@ -0,0 +1,10 @@ + + + + + xxx窗口 + + +

子窗口

+ + \ No newline at end of file diff --git a/day02-correspond-between-render-thread/index.html b/day02-correspond-between-render-thread/index.html new file mode 100644 index 0000000..6bbd116 --- /dev/null +++ b/day02-correspond-between-render-thread/index.html @@ -0,0 +1,18 @@ + + + + + 渲染进程间通信 + + + +

渲染进程间通信

+ + + + + \ No newline at end of file diff --git a/day02-correspond-between-render-thread/index.js b/day02-correspond-between-render-thread/index.js new file mode 100644 index 0000000..60aabfe --- /dev/null +++ b/day02-correspond-between-render-thread/index.js @@ -0,0 +1,18 @@ +const { ipcRenderer } = require('electron') + +window.onload = () => { + // 先获取元素 + let oBtn = document.getElementById('btn') + + oBtn.addEventListener('click', () => { + ipcRenderer.send('openWin2', '来自于 index 进程') + + // 打开窗口2之后,保存数据至。。。 + // localStorage.setItem('name', '啦啦啦啦') + }) + + // 接受消息 + ipcRenderer.on('mti', (_, data) => { + alert(data) + }) +} \ No newline at end of file diff --git a/day02-correspond-between-render-thread/main.js b/day02-correspond-between-render-thread/main.js new file mode 100644 index 0000000..49d1d1a --- /dev/null +++ b/day02-correspond-between-render-thread/main.js @@ -0,0 +1,58 @@ +const { app, BrowserWindow, ipcMain } = require('electron') + +// 定义全局变量存放主窗口 Id +let mainWinId = null + +const createWindow = () => { + let mainWin = new BrowserWindow({ + show: false, + width: 800, + height: 400, + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true + } + }) + + mainWin.loadFile('index.html') + mainWinId = mainWin.id + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + mainWin.on('close', () => { + mainWin = null + }) +} + +// 接受其他进程发送的数据,完成后续的逻辑 +ipcMain.on('openWin2', (_, data) => { + // 接收到渲染进程中按钮点击信息之后完成窗口2的打开 + let subWin1 = new BrowserWindow({ + width: 400, + height: 300, + parent: BrowserWindow.fromId(mainWinId), // 或定义全局变量 + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true + } + }) + subWin1.loadFile('subWin1.html') + subWin1.on('close', () => { + subWin1 = null + }) + // 转交给进程 + subWin1.webContents.on('did-finish-load', () => { + subWin1.webContents.send('its', data) + }) +}) + +ipcMain.on('stm', (ev, data) => { + // 转交给进程 + let mainWin = BrowserWindow.fromId(mainWinId) + mainWin.webContents.send('mti', data) +}) + +app.on('ready', createWindow) +app.on('window-all-closed', () => { + app.quit() +}) \ No newline at end of file diff --git a/day02-correspond-between-render-thread/package-lock.json b/day02-correspond-between-render-thread/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day02-correspond-between-render-thread/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day02-correspond-between-render-thread/package.json b/day02-correspond-between-render-thread/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day02-correspond-between-render-thread/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day02-correspond-between-render-thread/subWin1.html b/day02-correspond-between-render-thread/subWin1.html new file mode 100644 index 0000000..257b552 --- /dev/null +++ b/day02-correspond-between-render-thread/subWin1.html @@ -0,0 +1,14 @@ + + + + + subWin1 + + +

当前窗口2

+ 获取到index.html的数据: +

+ + + + \ No newline at end of file diff --git a/day02-correspond-between-render-thread/subWin1.js b/day02-correspond-between-render-thread/subWin1.js new file mode 100644 index 0000000..53fb742 --- /dev/null +++ b/day02-correspond-between-render-thread/subWin1.js @@ -0,0 +1,20 @@ +const { ipcRenderer } = require('electron') + +window.onload = () => { + let oInput = document.getElementById('txt') + let val = localStorage.getItem('name') + + oInput.value = val + + // 在 sub 中发送数据给 index.js + let oBtn = document.getElementById('btn') + + oBtn.addEventListener('click', () => { + ipcRenderer.send('stm', '来自于sub进程') + }) + + // 接收数据 + ipcRenderer.on('its', (_, data) => { + alert(data) + }) +} \ No newline at end of file diff --git a/day02-create-menu-dynamically/index.html b/day02-create-menu-dynamically/index.html new file mode 100644 index 0000000..7da77e3 --- /dev/null +++ b/day02-create-menu-dynamically/index.html @@ -0,0 +1,22 @@ + + + + + 自定义菜单 + + + +

自定义菜单

+ +
+ +
+ + + + + \ No newline at end of file diff --git a/day02-create-menu-dynamically/index.js b/day02-create-menu-dynamically/index.js new file mode 100644 index 0000000..e515828 --- /dev/null +++ b/day02-create-menu-dynamically/index.js @@ -0,0 +1,40 @@ +const { remote } = require('electron') +const Menu = remote.Menu +const MenuItem = remote.MenuItem + +window.addEventListener('DOMContentLoaded', () => { + // 获取相应的元素 + let addMenu = document.getElementById('addMenu') + let menuCon = document.getElementById('menuCon') + let addItem = document.getElementById('addItem') + + // 自定义全局变量存放菜单项 + let menuItem = new Menu() + + // 生成自定义的菜单 + addMenu.addEventListener('click', () => { + // 创建菜单 + let menuFile = new MenuItem({ label: '文件', type: 'normal' }) + let menuEdit = new MenuItem({ label: '编辑', type: 'normal' }) + let customMenu = new MenuItem({ label: '自定义菜单项', submenu: menuItem }) + + // 将创建好的自定义菜单添加至 menu + let menu = new Menu() + menu.append(menuFile) + menu.append(menuEdit) + menu.append(customMenu) + + // 将 menu 添加至 app 中显示 + Menu.setApplicationMenu(menu) + }) + + // 动态添加菜单项 + addItem.addEventListener('click', () => { + // 获取当前 input 输入框中的元素 + let con = menuCon.value.trim() + if (con) { + menuItem.append(new MenuItem({ label: con, type: 'normal' })) + menuCon.value = '' + } + }) +}) diff --git a/day02-create-menu-dynamically/main.js b/day02-create-menu-dynamically/main.js new file mode 100644 index 0000000..5fd4c25 --- /dev/null +++ b/day02-create-menu-dynamically/main.js @@ -0,0 +1,29 @@ +const { app, BrowserWindow } = require('electron') + +const createWindow = () => { + let mainWin = new BrowserWindow({ + show: false, + width: 800, + height: 600, + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true + } + }) + + mainWin.loadFile('index.html') + + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + + mainWin.on('close', () => { + mainWin = null + }) +} + +app.on('ready', createWindow) + +app.on('window-all-closed', () => { + app.quit() +}) \ No newline at end of file diff --git a/day02-create-menu-dynamically/package-lock.json b/day02-create-menu-dynamically/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day02-create-menu-dynamically/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day02-create-menu-dynamically/package.json b/day02-create-menu-dynamically/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day02-create-menu-dynamically/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day02-create-right-click-menu/index.html b/day02-create-right-click-menu/index.html new file mode 100644 index 0000000..327e37e --- /dev/null +++ b/day02-create-right-click-menu/index.html @@ -0,0 +1,12 @@ + + + + + 右键菜单 + + +

右键菜单

+ + + + \ No newline at end of file diff --git a/day02-create-right-click-menu/index.js b/day02-create-right-click-menu/index.js new file mode 100644 index 0000000..37bfa57 --- /dev/null +++ b/day02-create-right-click-menu/index.js @@ -0,0 +1,29 @@ +const { remote } = require('electron') +const Menu = remote.Menu + +let contextTemp = [ + {lable: 'Run Code'}, + {lable: '转到定义'}, + {type: 'separator'}, + { + lable: '其他功能', + click() { + alert('其他功能选项'); + } + }, +] + +let menu = Menu.buildFromTemplate(contextTemp) + +// 给鼠标添加监听 +window.addEventListener('DOMContentLoaded', () => { + window.addEventListener('contextmenu', (ev) => { + ev.preventDefault() + menu.popup({window: remote.getCurrentWindow()}) + }, false) +}) + +/** + * 01 创建一个自定义的菜单内容 + * 02 在鼠标右击行为发生后显示出来 + */ \ No newline at end of file diff --git a/day02-create-right-click-menu/main.js b/day02-create-right-click-menu/main.js new file mode 100644 index 0000000..65494f5 --- /dev/null +++ b/day02-create-right-click-menu/main.js @@ -0,0 +1,26 @@ +const { app, BrowserWindow } = require('electron') + +const createWindow = () => { + let mainWin = new BrowserWindow({ + show: false, + width: 800, + height: 400, + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true + } + }) + + mainWin.loadFile('index.html') + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + mainWin.on('close', () => { + mainWin = null + }) +} + +app.on('ready', createWindow) +app.on('window-all-closed', () => { + app.quit() +}) \ No newline at end of file diff --git a/day02-create-right-click-menu/package-lock.json b/day02-create-right-click-menu/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day02-create-right-click-menu/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day02-create-right-click-menu/package.json b/day02-create-right-click-menu/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day02-create-right-click-menu/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day02-dialog-module/index.html b/day02-dialog-module/index.html new file mode 100644 index 0000000..00caf1b --- /dev/null +++ b/day02-dialog-module/index.html @@ -0,0 +1,14 @@ + + + + + Dialog 模块 + + +

Dialog 模块

+ +

+ + + + \ No newline at end of file diff --git a/day02-dialog-module/index.js b/day02-dialog-module/index.js new file mode 100644 index 0000000..5e65203 --- /dev/null +++ b/day02-dialog-module/index.js @@ -0,0 +1,26 @@ +const { remote } = require('electron') + +window.onload = () => { + let oBtn = document.getElementById('btn') + let oBtnErr = document.getElementById('btnErr') + + oBtn.addEventListener('click', () => { + remote.dialog.showOpenDialog({ + defaultPath: __dirname, // 默认打开目录 + buttonLabel: '请选择', // 按钮上的文字 + title: '啦啦啦啦', // 对话框标题 + properties: ['openFiles', 'multiSelections'], // 文件类型 + filters: [ // 文件类型过滤 + {'name': '代码文件', extensions: ['js', 'json', 'html']}, + {'name': '图片文件', extensions: ['ico', 'jpeg', 'png']}, + {'name': '媒体类型', extensions: ['avi', 'mp4', 'mp3']}, + ], + }).then(ret => { + alert(ret) + }) + }) + + oBtnErr.addEventListener('click', () => { + remote.dialog.showErrorBox('自定义标题', '当前错误内容') + }) +} \ No newline at end of file diff --git a/day02-dialog-module/main.js b/day02-dialog-module/main.js new file mode 100644 index 0000000..8a0d0ee --- /dev/null +++ b/day02-dialog-module/main.js @@ -0,0 +1,29 @@ +const { app, BrowserWindow } = require('electron') + +function createWindow() { + let mainWin = new BrowserWindow({ + show: false, // 防止首页白屏 + width: 800, + height: 400, + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true + } + }) + + // 防止首页白屏,否则不显示 + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + + mainWin.loadFile('index.html') + + mainWin.on('close', () => { + mainWin = null // 删除引用,释放空间 + }) +} + +app.on('ready', createWindow) +app.on('window-all-closed', () => { + app.quit() +}) diff --git a/day02-dialog-module/package-lock.json b/day02-dialog-module/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day02-dialog-module/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day02-dialog-module/package.json b/day02-dialog-module/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day02-dialog-module/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day02-main-thread-correspond-with-render-thread/index.html b/day02-main-thread-correspond-with-render-thread/index.html new file mode 100644 index 0000000..e36ce0a --- /dev/null +++ b/day02-main-thread-correspond-with-render-thread/index.html @@ -0,0 +1,21 @@ + + + + + 渲染进程与主进程通信 + + + +

渲染进程与主进程通信

+ + +
+ + + + + \ No newline at end of file diff --git a/day02-main-thread-correspond-with-render-thread/index.js b/day02-main-thread-correspond-with-render-thread/index.js new file mode 100644 index 0000000..f2b96aa --- /dev/null +++ b/day02-main-thread-correspond-with-render-thread/index.js @@ -0,0 +1,26 @@ +const { ipcRenderer } = require('electron') + +window.onload = () => { + // 获取元素 + let aBtn = document.getElementsByTagName('button') + + // 01 采用异步的 API 在渲染进程中给主进程发送信息 + aBtn[0].addEventListener('click', () => { + ipcRenderer.send('msg1', '来自于渲染进程的一条异步消息') + }) + + // 02 采用同步的 API 在渲染进程中给主进程发送信息 + aBtn[1].addEventListener('click', () => { + let val = ipcRenderer.sendSync('msg2', '来自于渲染进程的一条同步消息') + alert(val) + }) + + // 接收消息的区域 + ipcRenderer.on('msg1Re', (ev, data) => { + alert(data) + }) + + ipcRenderer.on('mtp', (ev, data) => { + alert(data) + }) +} \ No newline at end of file diff --git a/day02-main-thread-correspond-with-render-thread/main.js b/day02-main-thread-correspond-with-render-thread/main.js new file mode 100644 index 0000000..6728383 --- /dev/null +++ b/day02-main-thread-correspond-with-render-thread/main.js @@ -0,0 +1,52 @@ +const { app, BrowserWindow, ipcMain, Menu } = require('electron') + +const createWindow = () => { + let mainWin = new BrowserWindow({ + show: false, + width: 800, + height: 400, + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true + } + }) + + let temp = [ + { + label: 'send', + click() { + // 主进程主动与渲染进程发送消息 + BrowserWindow.getFocusedWindow().webContents.send('mtp', '来自于主进程的消息') + } + } + ] + + let menu = Menu.buildFromTemplate(temp) + Menu.setApplicationMenu(menu) + + mainWin.loadFile('index.html') + mainWin.webContents.openDevTools() + + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + mainWin.on('close', () => { + mainWin = null + }) +} + +app.on('ready', createWindow) +app.on('window-all-closed', () => { + app.quit() +}) + +// 主进程接收消息操作 +ipcMain.on('msg1', (ev, data) => { + console.log(data) + ev.sender.send('msg1Re', '来自于主进程的异步消息') +}) + +ipcMain.on('msg2', (ev, data) => { + console.log(data) + ev.returnValue = '来自于主进程的同步消息' +}) \ No newline at end of file diff --git a/day02-main-thread-correspond-with-render-thread/package-lock.json b/day02-main-thread-correspond-with-render-thread/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day02-main-thread-correspond-with-render-thread/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day02-main-thread-correspond-with-render-thread/package.json b/day02-main-thread-correspond-with-render-thread/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day02-main-thread-correspond-with-render-thread/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day02-menu-role-and-type/index.html b/day02-menu-role-and-type/index.html new file mode 100644 index 0000000..e43a40b --- /dev/null +++ b/day02-menu-role-and-type/index.html @@ -0,0 +1,12 @@ + + + + + + + +

菜单角色及类型

+ +

test

+ + \ No newline at end of file diff --git a/day02-menu-role-and-type/main.js b/day02-menu-role-and-type/main.js new file mode 100644 index 0000000..b3bfe24 --- /dev/null +++ b/day02-menu-role-and-type/main.js @@ -0,0 +1,79 @@ +const { app, BrowserWindow, Menu } = require('electron') + +function createWindow() { + let mainWin = new BrowserWindow({ + width: 800, + height: 600, + show: false, + title: "标题", // 要在网页里的标题去除 + icon: "w.png", // 设置图标 + webPreferences: { + nodeIntegration: true, // Node集成环境 + enableRemoteModule: true, // 开启远程模块 remote + } + }) + + // 01 自定义菜单的内容 + let menuTemp = [ + { + label: '角色', + submenu: [ + { label: '复制', role: 'copy' }, + { label: '剪切', role: 'cut' }, + { label: '粘贴', role: 'paste' }, + { label: '最小化', role: 'minimize' } + ] + }, + { + label: '类型', + submenu: [ + { label: '选项1', type: 'checkbox' }, + { label: '选项2', type: 'checkbox' }, + { label: '选项3', type: 'checkbox' }, + { type: 'separator' }, + { label: 'item1', type: 'radio' }, + { label: 'item2', type: 'radio' }, + { type: 'separator' }, + { label: 'windows', type: 'submenu', role: 'windowMenu'} + ] + }, + { + label: '其他', + submenu: [ + { + label: '打开', + icon: 'open.png', + accelerator: 'ctrl + o', + click() { + console.log('open 执行了') + } + } + ] + } + ] + + // 02 依据上述数据创建一个 menu + let menu = Menu.buildFromTemplate(menuTemp) + + // 03 将上述的菜单添加至 app 中 + Menu.setApplicationMenu(menu) + + mainWin.loadFile('index.html') + + + // 防止首页白屏,否则不显示 + mainWin.on('ready-to-show', () => { + mainWin.show() + }) + mainWin.on('close', () => { + mainWin = null // 删除引用,释放空间 + }) +} + +app.on('ready', () => { + createWindow() +}) + +app.on('window-all-closed', () => { + app.quit() +}) diff --git a/day02-menu-role-and-type/open.png b/day02-menu-role-and-type/open.png new file mode 100644 index 0000000000000000000000000000000000000000..759e56ba64f77625ff9b3c0f65be4ea354026de7 GIT binary patch literal 2614 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 LR;D5oxA1=eYd)1F literal 0 HcmV?d00001 diff --git a/day02-menu-role-and-type/package-lock.json b/day02-menu-role-and-type/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day02-menu-role-and-type/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day02-menu-role-and-type/package.json b/day02-menu-role-and-type/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day02-menu-role-and-type/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day02-menu-role-and-type/w.png b/day02-menu-role-and-type/w.png new file mode 100644 index 0000000000000000000000000000000000000000..1f04ade0c09e0e975c4f65e35321c5a5d1855b96 GIT binary patch literal 11528 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

VWY6P22xEkp9t=KuTuv$` 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%0DNXAzK2=zfN<$Nt%5$fzawNghqIBaj0wV- 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 D`!Nq6 literal 0 HcmV?d00001 diff --git a/day03-clipboard/index.html b/day03-clipboard/index.html new file mode 100644 index 0000000..5142f8e --- /dev/null +++ b/day03-clipboard/index.html @@ -0,0 +1,18 @@ + + + + + 剪切板 + + +

剪切板

+ + +

+ + +

+ + + + \ No newline at end of file diff --git a/day03-clipboard/index.js b/day03-clipboard/index.js new file mode 100644 index 0000000..bb0740e --- /dev/null +++ b/day03-clipboard/index.js @@ -0,0 +1,31 @@ +const { clipboard, nativeImage } = require('electron') + +window.onload = () => { + // 获取元素 + let aBtn = document.getElementsByTagName('button') + let aInput = document.getElementsByTagName('input') + let oBtn = document.getElementById('clipImg') + let ret = null + + aBtn[0].onclick = () => { + // 复制内容 + ret = clipboard.writeText(aInput[0].value) + } + + aBtn[1].onclick = () => { + // 粘贴内容 + aInput[1].value = clipboard.readText(ret) + } + + oBtn.onclick = () => { + // 将图片放置于剪切板的时候要求图片类型属于 nativeImage 类型 + let oImage = nativeImage.createFromPath('c.png') + clipboard.writeImage(oImage) + + // 将剪切板中的图片作为 DOM 元素显示在界面上 + let oImg = clipboard.readImage() + let oImgDom = new Image() + oImgDom.src = oImg.toDataURL() // 转换为base64 + document.body.appendChild(oImgDom) + } +} \ No newline at end of file diff --git a/day03-clipboard/main.js b/day03-clipboard/main.js new file mode 100644 index 0000000..45f6867 --- /dev/null +++ b/day03-clipboard/main.js @@ -0,0 +1,22 @@ +const { app, BrowserWindow } = require('electron') + +const createWindow = () => { + let mainWin = new BrowserWindow({ + width: 800, + height: 400, + show: false, + webPreferences: { + enableRemoteModule: true, + nodeIntegration: true + } + }) + + mainWin.loadFile('index.html') + mainWin.on('ready-to-show', mainWin.show) + mainWin.on('close', () => { + mainWin = null + }) +} + +app.on('ready', createWindow) +app.on('window-all-closed', app.quit) diff --git a/day03-clipboard/package-lock.json b/day03-clipboard/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day03-clipboard/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day03-clipboard/package.json b/day03-clipboard/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day03-clipboard/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day03-global-shotcut/c.png b/day03-global-shotcut/c.png new file mode 100644 index 0000000000000000000000000000000000000000..c5989e790fe7ebe3bfd23c3332c927925e8d9545 GIT binary patch literal 107252 zcmdSAghJ>-jz{t|BWyikAYZAD|_&jo$YA-BrLXV0FR(QtoU;>(Y)(vKq6io)jB(TNQT z3(KAx-;VJvEomxkY#rIemDl&(nP}L|4nDZZJ(E8mRU+byqWb^Q<*kY5%4D|$+fPlp8VBg|qlE|HZTK7L`4caqidwS-OzGUaD`uE@daAs(5IzMz= z_>msA6#fXY6RylEH{Ki|FWfjqkF5!b4OfPkA#}{^Ps@4-g+%44L%IKA+6MtZl_pe> zxgu=yUlDeQfpGlrguzM)kMbGRBN$}>PQV~aCo_w}j}U%$yBmKXUr0~)*A^WHZx3nf z1rYcsLEK!zI?51s(qtn`U zhO3kde6$eauFs4AuL@D+R5l&rE+d%)*-jq39t3dwxP0-(3BYsY?AE|o%-gw<=kp~0 z!t_4g^nG-nkTY8qbpXBxw!*77bnu(}DFWa9YJ@K$(6B-}7;0knFWuhSe%x1odtHY; zA}mFh`4jy7w_ena2TtlFJL!JVm(70h&3PMPHstLE-O@sl;9q)LQ~e`1s!>D=Z;O?- zLQuEPn{VOd-S`~t;j;IH zz9k_1Aso1~{(sd|iNY9Y4fVO+ffkZ_SRBY_&RBErh1AayS+382uo147^ujvwe@PI9 zK_bnI3e9I}oEiRd&SHn}V&4iOX3?<08VCG41VgXBUJO=_*xFdb4q?Nyo+Fv{qbO&O z%{H&02JcD!zxL8VlDv=oj@W*xdHR(%f0~GxIn9XAL(W6qqn&>`n}4AEUxnXQ>C+J1 z8+?waRiYfGV+)K5smIfGjf}XEO57QOqy9{8^1Z0}ZzP@4H}9cYF#~MLl>!>VIOLP% z&lbBq`wjB+?hT>IUH_YqPRZ7j#H0CHslHJ-X~4*z-Ih)-3_sD*z? zK)3Euy5mv*X-zHrboM*DLv`NnCQ@VG+~eZ6_hu>V|CnLTI9(=hlOEYgOv0S@KyfGu zbK`R3M;UocLz?~(vA$&b{|4iPV>q{rZg5GdxxemIePD#YWb<*0&3aP&Ziy&agahRa z4buLX9vFZ)V_pnDBJf^S+0sZTUH&jxS^EMkOBMT!$;b(kZuft1J5mq;px$aE+L}_x z4^hS6_X>QOf;|Mj2f1w};3H}^OGmN_D`@_Oof@h{q)>lNXoq_BMNCa2M#S13WT%@J z+r&vD6v0-76F`c-HY`(cj|qD9KOx4}Oj}M9Bf~qDD$?Ynozw>m259T)uW$<%xA2m& z7KxhCbfqJCKg?dR~1 z-)ev5x8heh`b9jbMV*c%C}8;}MwqwJILvFOf?f;ur=qS8ce?7Cl?jUAw z#y9OIgk^Dd{xE)WbH{|?|JLShf|wOIrUhu0;m6Ga_$x{`YIy?^_7Wh0l}4dp-38u% zEy3l=66NnMU30SlOrGbscWRcE!bf&<)+E7EZ*i~L`)KU-V#9?aamf2F8B2>rA>)_e zAYsP|N5eHs8Vud_353L?P&JdAFtbzih4up9zjJcar1nP~?F*=DcW<)D(<9NCU*)aT zII85SVSAW|Xhc?$qlIp(XOm|EYZosdmZ9NvniT9b<|2u9A4`N^Smylf8293xn~;Nb zF8b3EJ0vi)#NrxazZPyKawWK&{LjyI_+-|^#k zL%hQkPzqo0x3HnAVz&hk?p?82DpZld*K@K`{1EIcWc0^ZPwE#+)_o~N zi+}XbE&dq@H{hz!#$>S#tzg{Dt*D8vXckzb`jCD<2sFW;A&~A3zYqM3I&rVSp$8wL z+?{s+b*^upt19o-H_edFY7RBsI|~n{Sp3z98&DEh>dZ-9->EHB$nOMkKz_Gtd#c_L0gC!B*%W1Ec*3_R zvr~g#opfD6>Zc4H<6uTppu{ZX&Vj&*&VTu3UGoY?KbHk#)y3LfSiCuRMEO$8l1<0L z?j37_5_6o{V zIkVGb9Iv+Hn)s=9b83QehX{pjqwWHg z3aAQs=D)I-V$KlL9O7pyv_oi4>Gn{8YBFXkQwSTjRJV?8=qqN~VpJ&hFYcHEm>F>81g)5>CES1m-)@DnawJ_e5#;qYX`Dft z2;DswZ`-5K_OSxy3RmZs0L_Nmk-sgF^x;S33b84<^1pw@y_}<|f=S3f@M`|ijuP3n zQ9P6cO}Hz#c@#%Bkq5Pgpzj>D{<1OVdj$Y`u;A6j8kvDxiBFMa|65vR44Zz2S#SY7on{W zaOc0K5K<84lAlVT_)tR#Cxj|u2FraRAmmwRWwL&Go5bn5c~qZ=D)gRBUrD8d^^Ee; z+l!oN1Sy08cij9Gjj!Dz_}8v!K{d!>!dx5hoka(&Lf4R39-6H#paG$$KG#RxDq{0? zU_0UPeTE@cTObBOvfb%_R^g~xRZaje7JN1G_d)fp9509NeNc~Xh*z`8mh9-eSvI&b z!xccZBfcYqF!)Ix7-W$C<5k|O*>#l19Gp0X3L9A|3~5)39)5Nm6ORCtS9id?)Y7~q z7R4{*P$noL2n%}33G3Et^^lGEgKsAQ^{ET~AeKt9;zPGnx?}_?^Oaz=VBC^Wge;ZR zi-rFv`iakr>f9?!y)HGBaC=6KBv z0gur#DBk-!AU0D5`E%AD3FJY&86gQdv;NCK>~s__;wap(Wp|mBLVx<-X^DvE`oVV^ zsCR2WgNibVesY*V^s1U4eIvcUsm3NrnYXwF*H~*k6_U(F%Xz4`+N~0+ld;~UCq1rn zgeSAuS%w}@N0X=cU~l8}R*(iMF0`~p=!Ow_M7Jjh>QnLl=i{@o9xOUbm&*jZymj?> z)`2K_H_U0r1%IJKSg0msK|1eBc9~d^*wZ6 zO_pPmVsLM7Av@p;!mYYb-C(`DO<+LjGp13VId$;R#vWKA%+?BQsTee97s8vkwY+BU+s32>m4w6H^9hgw@u=R!2cv3Q6`OS} z^$&w3ZAG|1Xn2=$S%+?#QC>tF`@&rKruij0Izb%oU+GmIzFd49g^4O6L(Rf2DS4ZO zBoUwA8fTm@M{_IUWA%?g@LE|wr4$d0WiM*)z;w#{g{u6WMUiZsI zlMInRH3Kg^HFL?e+K!h=NrghUlvJP7|CfXD4&tZV4)l}Y+kNq1wJ#@6{6)iO`^VV% z=J`@_+Apdqgr2hh$pl>Q2P&_Z8uG#+EAE=b!kGQ@wG0ecDfc%5mSmgZMn>51-DY zl&U8>S41sA6kUoo3#Zk5=F#k44TQU>vvE0c(_IZlrm~XHjz1x3rbOA)#MdBZioY=| z_Y;rd8WZ9*v5)tltUl~su<`f{=obrijudmvYGL3j8!3c5E}TG$FhIa#`ycViP~p?t(K3U-)nMl4DuD!ITS>FuKL2yJL(%G<58p*`QN)x(hm-#Q8a6xd^tzUK^6V) zF6w@EV?)vsi~3(+4W^v;JhH;nu*!hWm{dW6(>^8rl*YhT5$wh}?iV`{GxuplQkS{r{dg^&>nq(DJ|$J0oYK7cf9B%@r6w@Li7Y-XnTT zdvd5?7K?#8gZW4|fh3kYR4$i$ma6zNR+4PYt&cJXP}9upZi^t(#@Ns zAMKw%2t2l`h42amZsl)dE)P^^{>R^k=K_m-^g~~iaRJ?=Y8jjqG`~J;NjZr#amSmo z>#_%%itw!oqfEqx8!_vULNvp-B`XvgiUzD0bI$t~1itQpidTL`^!V+M076yZUrHmT zByICi#-WHKbo-)=IN)CZqoP1vnEZtY&Sv1GuRN$HY>f^6zVN;l&{s83uQ2QoZ9g2Fih@HysyceiE6jFmgx9 zdCr(%8nl;XKlx6c_*KlwhztsIakeLQ6RMhxSr1}Q5GWKhY@k2t&x`Hd^PO>YrkzFuAb^$9{Ppc+Nim?I#%dEzEj#m8{ag)tiF0-qXSr-#~4} zPq2y-iGNKSQ1!er$<0#os%6b=zuE~BYG_PV3wghS)1x~Y&__M-7|R`esLT+G2e*J} z{~HT+b+q2RvBibTmQ~IQYpW&8R|4 ze#aA6BU>E??sad$fZi{M1(ZLpXV;~GMOvp!O4~gRBLBpW#=yReB$!)ZyEb7aZ|i8< zsJPjDq{u7T8EvJ|G~yQN#=2*m^oa=%u!;8iWJf{oIGI?AHNO8YWi!G>oP#a!hg;rX zhhv^8Jdn_?-Fd=Tp%|>U@3n81MEZfoods&T&PBSveB%9S^Y!a>AP{24_-8TBa(X#Z z^9CP%&D|(5OKy+#x~lA{wP0`v75y<_zUH^Hm)SV1?{|42sr zp0}3{j%hwH75tiM(tBh581W)g6A#$x%{q3QkZ+?ySm93XITzcYEdSe#oc=cz=5np&K1dOJ_qeX+z~KNin0d3A zknOrUDae$!PW&+~M^XIo51eU>vp(JtLiqms*D{sCYagAa75?l#w`;lD{nO-!wS#{4 zO({k%8SImG64q0a^ynm5pyJc}e2xwCKcn4Z7`I~``!_1nXn972g%OPA0;o;PyNm=m zt%{WzAKb{TwajjZzc?kE)+o#)`S{NY`O6YGq=&^237vG(RehIXH|#={2ZCQuOrMfA z(PDpoLZ37dIx8WvYNL@|{0S3n-NP+b&ldmICdWcLPUV5gJ_wtqn$0+UUftw$3_rzA z&@J`vWG!5^b!B(80BuIhH{zx39Z!Et=dlaC*u^Tu8LtdooAC$xY%iqfb80dr}Ni?3j4BU!NiuJj~UoAc3<3 z5yiIQ;Wa$$J6z`5mesr~#7}c$%Gsed?@n&=vph7UXm~wk^6yhS*4!asO@bDSY&Ahb z0h;&W&bFqHK8TN0PUa^vK40Mjb>bN!IZ49a?p4uAF~cROVYS$|EAL;k1TKLns|dCv zc#Nj3yBIASVjaV6{kqD2*#={Ez4^)}b*&l(-Y;%U`upA&XRn0Y*6c9wUMxI;OaX^g z*x4Gyxt}`|F{by%DqHr?))p*1+vIWk2MJSJ+ot<0R=UmtedN*r%ZaTT*7Qc9Clxm_ zY;!gqm60h-`;rI(%jw?qTR7~VP_kjU^c53glPp=2?R7!VFH4qWx3G-+%wnfgCVviM zQdZAJ-YXR9^|X!Iz*BJD?|%2oo^JW^sf2n>2MS&N$VnIo3t0*O!(p&!7_!|eF;{(C zbn8B7_F5`vc(y}#Cs}Z5aa!pt-h$4&%B8h@5ngf^s~Kh}=iW~PFba0PfKIs;3WOre z;3rhz)ANWw2b8zI1El?-21fpvKh9*4=;WQf8t`PH*tt5*b&?C}6Cx2>kWWZr$y>Zz zzz=hl_MN5o?`yQVbn|Yh0A1h;Fep|J?uYpp-w9E)wyg(NWDSe=er%K3^MqM1bCCW3 z1qEGHn2F57sXVaKf(8@>#AZw2l(G~*4?!5tZ)E);Y!H8~9st?7Mt_Q0><612wX^YFKrtL~#C z6J`;D`CFM#iu0z*issd`#vBrn(-5?U1@dAd*u=uFd`j$l?@Mp_x&t>@`Rn*->m4`y zJy)1I5NP@}RLJ`>>CeYKR*!Q^lghkh63||g6@%K+6Pu|DoGW3!dZuwwe3M2i20Igb zslq*v-EQQ9uD!O-`&+P$gXX7X3iV#WUiQR&ZJS|si=JeI%rTN~`Q!ygiG|FDS_FHd z* zLuQ7fPf?Bfp-aHqtd;23{#BMk%j>c!x6gNc$EV?94DKh@9I(OtA2t~_7?s%AZg#Vs z0gJQoy7mLR;KE%mxTw~SP*v%x!b*JmW0}ivdDVh)N*SK2QllQ$!7YKR>9iTcsAO{< zJxhO0Cc;5Ro&uurAXYm||1rny$YLqKdd78}!ChY;+yzye7aUq~3Z3nP3cYR)$Iy-m z_AvLEacf$#!Zfy~cr^=b`%|f)aQSjIppXv=X?$!qxaI4b3$&kERqg*cBh@sxyO&(N zP7l=<8aD&fuKlEM6oC%%*Sfl3$FBDNH~~X{Bmlr)eAgH15jKymYV_IGqYB?nhDKJ3_*JoUjdDpe!yF?l;% zl%2>^KSRG!rV4o%4WV6j{kbA|8j^1>e$H(^e|x;D88*N0w8Kvt9Ts}Q zGyVN-Z_G#Qhbo|JBs0jDoZOm@+tmgz(b+=VfBr`2;2PtOz~6u+REO7R`a*$|b$fsr z=tn{dBcN1ay^@0G;uJ5?^h4WmjOb~0R7;Cv~;)CQIu>l`f|GH(QK45%_ zLd?IuDnm4s;xa)kxUzr)Ic@KwW?c*GUfQ0!WRoA>a)|~LMtdC>#j#7`R$j5ykzF^T zmN?)Y0~98g?IgFg>3>iy9jx$7(f%>=GD~HJ9YX4U$8AEFIE5V!fQ=Cw>FBS`0mtnG zFbstV^fV_p)rL4-v4#dLo9?ExrWC*&KSGp9ed?r4PR~u-F<|v1CHt~7Md-%!Zf7dT z0IwegxYBJ%u1w)YlzrV?r|w#>8W$H$9*|W7*m-u@;Rn88qfASjytiq9ICv)bKqd7k ziQgh^mYp5&@l&1?>`g7dL53SWL5|yh%xM!mtGnQ@ zU3yl%EAUk+?1mvmPR7h9g*jkBbgef1p8r}zpsws6F@`i75j$GfbAjq^Bu9xTG%=ks z@6lwnoRM0X4{Y0iW5he2p<~$cjFy8pU+zAN?PHEEk8%Un>&8%#xmhv?;ovNr*k>)G z{{QO*5c7K}V(;pmQ@YP@+O~F;tkh9mj+(m8Oj%WpKo8RoZ{ zMtUq?GY^)zs_rP60ZQB6yto>pQvMflXcC4LUG zQQ1O!&gB9A@HTM(1T>!e0r+MF{VwT3#tn2C?=hS@U%H#yfrN>kUjYplt%yY8kQ*;v z+nab^xa;f&u2kLKtW32vtVgrGJ{3JXuY@f$yA*=vuaEywZYb_*XIEFFKc;0 za+;uQPsDy7D2P3n-2{1;YGM8ge3wnW|EZSUGZrK@*c#fc-h#a8%CeBSd4$Ows>r7$ zlfr)(dx2nM(lp*NwKpK`fB6;tx6mjOUZaTivjtNf5AZY;U8NUCq54%^!>$J zU*7PY&9YniT!|mB@6%OGcb=WOhI!~AXu5PMX&qFyaNpTV@@6;Jq!2zLQa%#wx9e7Y zbEW6sD0hM&Q&_~t}d#;fA=#upMPv7kw(&yDhu2|b-O<5RW1uTiFTfsgJcn+u% zysYfC6nSNiT&VYZ9sE;ZcmJ2tS1P3^U#bMKGH~-m6a1aX{Aq@TTqFDYsGvXdMU;^y z&~8aCBLlzqJd(0j5sM;j(SvtOTaq>mXc|=-v6e!Lh@<){M6-`58$S9$ z7RO)f&gjy=_H>F{6)&ZBqA^qS*9d6hz>QFW=z5`?|6psnTz}$|qrl+)9v@|33z?LM zpZj!+4m5p3{lRJZ`SqY8UM__k4V*=4#PXSo5aCDCdZ!9nXlXf$aoVJxBm zHfiB|byhWt3Vp)+1DlgW;Y{YDb8{ExxEgBfAj$U(93rb7@prw=Ixqo z2UyzJiX_+3s`m39Op3ptsG@-r8rgZ+9xsldnefSsh>wMK_b($WY&oMGv8-6)=EfnE zSdaDX51HkLACW`}f6d_I_Qp#hA(^l>rd&+)QO53=5^a>$|40D$++=`WdD9-?fyu51 z1O~vzd(#!NL!tTFU3+OR!-7~xkTz^{Yj`rsn}WTK31p|=C`?#5&|iPwra1IE1*PD% z(?2)8J;nE13#mg^MJRV-={_eF{1$ypx%4fl|TgLO+D0PJTQ01G~>MKyX05*6Q8U34@BGlCgb&qC!hs5Ztdte*G zMg;58jRoY20i_A6Xl_~lL!Z!N2XrYG=CA2fm@)Yrc?LxaH^E%IZF6o&QAW*=2Ez?; z2v=aQ+)@Zm5?_gkS+xM7Mi`D`HQO(2cZZpscDBk; z!A1zr4hUZJGeBpSN?WRu%IcHfNUqi4=bu;SNhiBuF9u_bD7kaW*YkXWolFk9j-?J; z2zwYC92X`}**1xf(rtd+6BS=jO%FBLT(|r7sZ#S9FxAUU-|nD0n0^-#%n^d?-Y!oj zg#~9iKkC@8AkUiBB>V(Bbu*t>I4RnvR(fmyby3eJgiVTEinLACI5jqb{K~L3J14CI z|J#o)raw-}T>wAuYLyhCGo1GdCx17FsCb#s?!l*{0 zO%77xUb}b=hN--2Oc|&|^+VX)$+7^U7&b9b#6Zc9qAJ9|eYz4_pH9CTNm0=SgiWE$ z;u&x^DMIY}5IGh?n`4fGeM$EnS=O8RT_YiT!nnEkBb`Dk$7=a!awt`d^hc2L^YT^> zEF{w0ghI;M)JBK~j|NGIWM2gtod^-zP(miow*YMIi? zM{*01XQU2qv)zu&6f zQg8kaZlplKDxxWz4k0pj;>CgnqCBsyN0k#An}Q^v86=o{f8!1jCzq=Wzcbt7%Fzho z)A<)->~^fmCuR~p9s9I`Sv`0PWEW9Cvl-ZN?LBqn~>z=mghJ2O^vUyTd zzq$T7j$Z->Z|*xXpjzVCQwY{s@}CEAfHe^V=qqanwF5eq=RD#d+BJLHdbf@%=dF`N zJajM$qH&xK3F~ay)xl-Am{^#^)QmKcQ*Y)4JJrjYNiv-u0xSeokOp;a5-#qJ8cf^y zJ|BtduI+2GaMMxz6FF(p<$PBmCp^+Fs6;& z7Pd`~!fSRh)aM0vM3rmSuTb8&m2^-33KIi)KHv{9ipl5@LRYK@W4i$Zo8}i)vco~2 zCUT#s}UGSq4I`O#zX4l4{Fb7?~DFbx;7%xZ&41y$u&5{|E|T*T!zWr_|eG`i9u zk0Ez>Q#hCoA%8Yue_j9SP?kAO&_CAk`9ZDpgt}X%Y}^24_;jw17&bs_q)btXihIv4 z%xBEl^*kX!m!@@2w3uw5UT`^LMC77&&3m|hWMYQLQ}!2|%tnSx_@?Y2(>~2~nXFB7 zclq*J{61rgy{J;Ai77`RY`f^F{x~|S{SYNuvK!H(+*fZavQ)S0X@F(U`toy-V}7~M z1EUE+{C*7WHYo7byJ8rnXwI1(&A5Nz`wqTPedd2a+x`CMBEo=n|T8W z+Qj6lbSiw5ogQ>|^bDS9A zP45KKO~N15UN%m-@uzPr!LA19Yd?F?vM z=GmgBDm^4WCmyb*cnb!GIkG?7iO74}9<2LXrTig?p*s4BdO1hq2H)kUqL)8#Mv?}R z94$e6OkqBwS3lPkk+X@?RBmKKZPwNVF?8oo&+R(&30b>}MBg*hdDPA<`yQt*x7)R|4&rhj zTOmdXT($!&5S>#SgbgR&<`QMYzP23aotI|?(nP1E_?HI8;2{{9Tdbw9Kky(lfnH?;H%Qt z1{VRdlP*1%kuO@k>G0zu5wnGu;f3-eRgd!xq^7*Jci zo6BXg&k928#R1deugqMGE3#Bp{m^*}WQCRhT#hbx&P>Sa9Ae?==1Pkh<&GdvRHnx7 zU)EQ{L+UV;@^mE|pX-r(4mm@8oa8C9oQP?nN8O77#>h*3>IG?CR>HTld{YL6I6_zy zqVD&acYfD9>|ag%Iksi?}41sONi*J_o9@Osj%^GGc_7DfVh%v}2T>`*5r+uC_ z(mmn&Q|h?1WWxk!2V?aB?zSQ`Y*SjZf|m2<&nfCOE5*t&diwd$v1|4$y$J~qv)&gI z67z7j+nUg=mYjCeG0?euqa=>v{HX4w2-^Eg@Zn-b3$BIHk}e-$rqoAC>2387K>_Id zDtW2^eoTXHY!ORnt#4eQp+JUaA!%|{HZ0LqOoS$-_?2tK=c4OB;s%c=ZZ(xs zT&KxYOk*Ha;Ejx&=^t@NHx7^CJ}3>jfW2&f+W?w(=9VTv5!1DyiiqDDjk#BEP3E>! z@$+&(d^_`GQ(ituoH9U0;ow*w5wmV8clb|7 zBpYH5;sSc}JNEphzW7->wRYR=+rIW-lOa2js9hhq?TV^EKz)Hi?XEXT{nX{9ey%K% zIzO39#cDr^8_99wlOzDs6`V6-e~1dy7I%QvIOq3Bl}a|o266h?MZ}Q$neY&I@rlyB^AgZYv6qT(TR2- zBWXFczM{OIys;8G<~2E`$`X}ys19i$;OKD=4Q58e5JA@whnJ6nn`p%?h;+r`$zSze z9a?RjEqk+2f0&k#!he}8>%X2pT6bL@`F)c*HQjX8nIj+{c%CYb#*>&YW;i~> zyE~WT7|{a}o^uJ`{ZP^8rkS#b?Kbxv;&X$j>yo01=VMq%opCqReOq{g7I3fcwK29} zou6MO|9Xh%z=#a~UTR9DE9E+yuO2BpJB3OAXkc*<+P7|IkdU)SC5VgS?fbd8r-OLiX6jB&Sjc8<;sG z$v9ybTz&j;O98W!8;0;hr6JlI9?!pYERN=0Fx+8=jW7?H$S&{wE)n!+1BELL0HnHd7$|ZPK^~C>- z1*H8E)o_ZmQ@#!5Rap768bFyhv?KdM6}2?&|4{-kGk5aNM3+d!DM|ogA#`qc!IqV> z7z1O^Hf|#9K^C4@XCD|oexmeSxAgn^ZlkRb2^oWzcrF$h{Lvhyzw$&E#js%*yByi zx4Nl5Vf&tft@DrU2n>}zVu*CQtt}Yk=x8M?{J1mr!;%)Qnb1WA>-}a?)pE@=CeHPV zm7nj~Cit4z1-}AHpUFFOPP`r;G0F|MaQg;tp>-4qz$##aQ=Vg2HARq|;hw22<*+yY zde>`hQH-wFs?Tbr^h0K{&r$W)qThS@Z$o9RBA|?Wsq$3rIr4-7s!zyrd){R)>yJkj zhkiDgXzX!~R4a8ctAmsVhAzBy=)(GeJ(us$bBU3=oM0*FTfs5Va{5<`nS5g{DJS>V z`!_6$)fZdJhf~ppEN*JQa>Tg8Kr7}318(WBtYp3N91Y%;jD}WY_J{SP>5*V#?8rYV zD(rlx0NZ6w!wO{PP5z=1oXxul-JWpEbbf-dgwWYy&VXTFaHDs~SR#Jni_~>JdP=?7 z0n-jRiPO&c)?nmbh8>;%RSKgFJz)F=Yb%e)3fux$sNrU`Qod+z|GcKa=(CeBOJ2~b zCF(3-r|;{SZB5B0!f3CQE#c>NrU@;Jt$R7fGGCgXzpI^c_Gz^-U0Mjh9i)vsz|q0U z!^*{CH)@1wvM(vUwR)n(UfpJn9w2OAaEG6GN&-9aO#hi2K%)d{3JhJ0m7;Kj(-2lf> zCAFO;JfUE^ceUHiOwesghS0kp&cvll;)}?vB>?Zn2rjxN>o_cO{# z4AijdrI1<4?uH0-TC@BDPu7_=6W<^B! zA}dNwOxsn=n|PD@K#kS9ddR%b;8JXd;`r0WB?Ae^REPjdrl+l^> zV>VOtlNfeq@+Ex8xRP$rw*zuZ7l>$r&8(CN-V%mtx2~N?2n@>t+l@dF*PKGGekvdO z`R9R(R^rY@HcJgT^P7oeeG46DO;BjuEF^GeaBGQSW&C{$Wq>4lmeasg-XY3S$@HQA z>0VX}FX{}~%nrx4=|&|9b?Hg*@T{n;_SqB95`I1pc5AB_S^U6QlOieWUye`QQO8TykLV{Y^%XLsZXen0htgKyN1OFUIy_3JuoD_KUOK0Po%j?hiPO4g){0CTK> z!jt`hE6r60xwqzRNDRCs4M% z1g2l+WB63tDdQ3eQ6D`!bn9=!1;c&Zr&Bn#dFawHb=Do;2VHC5N57nyN9~P-8BjFg z{%GRdY;tMLZWI3Fv>dUZpSqK&leiITVx*PB|A{gR-rG2l=f%~;(qzfW*eMKK!@N|a zuBXf4Z(*HY>=U_!W!ThE)fmpkKx4m$q}vp(MA(ZM*ET(KDc3xR?1Vhby+VD}~w(INogZ+f7a*R{DVnxw+3Q$TfoqG>>vFWfI{=6#ayyQES6gAs4^Sc6~ z0}fKS>BD?6%$F|&dWg!#e^*8a+vgEpljQB^;~Gin(hQp@N;A9V*+=3hlsuoo?AOd` z2==8y$xU(33|mFR-dcQX#qV7mIQ6+P&|$??t{!K%&HC)lAQ-|`(@1`Dc^Z7G^5w-5 zP~l3H8m?)o@UqGhQq?Q5tOf#gtv1NTDgHe zf=_`rg`M)xp+Pf5UTf8g?0Zh+!X^saGO(u4quAFwZdIhKd>%ii3O^aEGzj{-nlxw( z#YI>u1V%^89>^U}6;f_g7Z}M98R3``%aLRgutrf*s}>dI_@wRyePWbEQhSVlLop>> z%G9^3UpzNvT4?+%!u3CgE z;`p!~@3nlN+zcg^^8GeiH7L`-`a!Jn-N^6W%%%F}v8>uzDL|Dz`rL@b@BK13*}ocO z|4jBVb(N%=&2Lvr_qx#shthGXpm8Gwmg0HhS;IMvb#2jm3h$WrK4{GEC*Hc5OdDT5 zsq!;(*dD{k9`uMI%8`sD$@GE}aIGqdHb$i)Dp$>Tj^vA-PfTmG4>tLmz=MR_kOJ4c zJAta9jtKe&6x8RUxAUV03TkbNYZ{C>>u88=+Infac@3VQdU3gAO|Ri4z-aXS;nZYE z9ZSXMLj~OVL&V{bbNPZUfLtY7fg?cq_zWk+qdd^pc$+&he7>%za&nqnd$?ihsc`4^ zdGwBExC>?jN4;zZAYeXStkI7tXC|k>7x1qo6&z+NT&th(P?t&ABinyO>hn8~7jQoQ z4*N;XPyY&X?pHGy)HH#3Flp;Q;w}J1Es(i}$lk#PbQ^1CZ%eTut_RXsr)&cK8=rczw?I!eB7*7?IXz-^MHn zHXzO-C4en3=y`|4gt(NfgOh6d3YUzKQGF%emWOPDR`*u!G>UP)wmrUeA|;g=|9t+rKG2Te`fU}6i`)u z+9a|`Vl7@WoJXkOx%m}#TSknxCwD!SGQBE~W3EIFs9lwSl&|viCDHPf?9V;D_im@H zqMpzHgWA(!faINT%VX-MJ8N*lug8#B$il#x&)&yGs{GbWT7K<+&Y~HhD9>A*9Uo^(|GYUGEtNCBA$#)7an;%4|lz&RNEnNUS7+IX}Hw_Y4hjSYAjEQ`n z4WGuEW~|FxicM|!LM3rOM)1iSSjLRL2qLLUzLvg9BUQXL)shC4_7RQU2^JKB%DOh3HtYkj6o8{#1G4fpUDXu zpxi296@XWIx3Tt?S1>Gh9DD4?N$KA&ev6q>{b*7Hs&3wEld_WTfs}p`P^NzrGiuWV z*vw4OX%Q|)8Uxr!vK>6QJk)$FoXdzEaKD{0rAm0%APZ0W8G$Y!xn2<6ru>v|MM6j; zj|ecM?=byz;Z^Tbj!_&b7Vhg0X6~sGF3}C9O|gHLM<#N&mrIZf-+VeRs^moq$HiQoZi4={p23^dOdUNFs&ySbnWFc1U*aw zmL3M`^ka0@+t2!?QB1E=`U2UA2g$i!_|np4(BAs{US5-mRTij0 z+v2H5LvI;A;J$4GPw(+zr2X|H^hsr9V|^tAe^2ZB_I3wS5N-njZHzykxK@xAr0JBQ zueX^Z82UWh`x0?p;%z1C6#44qua=tr7cjrl;Tc-wz#_$iWA)3DNdodm*N3}BuJ0|#oZyeQ{1K4oBzG<{g7Ys zr}KIB8PB$&aLge#_7|BKDCT)rDf5=Ce|lP5k{_9G{d^m%L-CfSID+QG z^=~p}&!+%nRr7(a5kIfCBuwS@9Ty7kX3iX@1vD`({#A3MXDX*?7`zR$s?nUgx=0pK8Lsi2!ND8!32S{_9IXR$d ztrwINgKS1!lY?h)p>yyT$;kQ&)zI?2)cr;VdEEJl6(oQ+ zuVX;-HS6`(mvRV{Y;gH=@7!0ZG#6AFN~*{>o;bO{sXWIFm4!f{H~cRgzh=Fu{W!w( zrqlJrap(Jpeej032Uy>W?BI_p{m~PW=)SrGig;KlO-54}i75(hsiOou$@H`ZMZ~`> z_lL%b{it3qldvg#nhAzzVSK|~Al~xWAmEfh%f)Cz0|Or+W-2-jZ=#-0Yh;62t_1Lo z`Bn`a7u*&<@KymlNyO8>Z707JadFzJD;Phj>u-{0_qN?4&YTv-Y`Ijvba+JtCNXAoe=aw7}y5#D+ea%<`iz)gvsYC((l8RJA zXE8C+&Gce0+E&G-AR(SdUl0$xSpP64q9-l}#=TeUdLZ}v!cvpi>& zf4Ae4S{vz&;Ia?gy*syxzMqtlt#AyV<+ecfI)G+QYoA7MOA3pYF*wqYj~wq&u)UP- zk@J)4-f!YKtt{`N!6h7i^)Wr4%slx8Q6c6Un!#XlO=S=;?9Cm|X1$N+Y9Rr4F2bO@ z8=-_?LWFw}CB#RS52dT%_i`N>8krBjfOYdY+}YB|PVp<42uynm(1ULLc18hQ*v8nR zKvN~FGA$C>@AqU`Yj0MXPj7B-S_!D`Hf(GDP(dU-e_G?WEA068C9LF#_cKoSyy}kC zno;_~8fs|zqs;sdkNv1)5gvU%*I%x}k<)g&;G;n)_BA02MR09R6PY6`-E6%C%K1_d ztcb{MEX888#v>Z3IpcpPwFA-%v5IOmT<#S zO;TS3oY+q^SO4B<)jpHSS8ysKm_{p5OYG{Nd8cMGFEG1U7UhyIpng3h$MUTSxum7* zsWaWQb9?mJ*+y+-i6hvtsVBGMCfg2nqgGVPho}Ec4ep1GevG^rSKPR zwM>u;``?LgE^}omsNNrHK2bH?T4QXJ)f0jqb&RztY8Z2BMiSr$`03 zuYK^>$KKtl%xNsQs#Xp~0C7_2Tdkx?$ctIw^#nS#5IC%ll3{sk+`ow_JowxP)RszP zBHIXH*U?--xK_XFPQa9#jC*QRpim_LeNBag*~C1X|0VcjJaf?Yndqfu%0VT8!+z}N zneEPA6aCgMWOMH->8kkIu$GCQm|O@9N0h*e=pAXV-pvR6CK*uIr{~jc$ZcX?q>e~a z)e`m4E*YTdE5$1qdP2s^t8*L(ac^Oeh_$Cq`RjJH)gUF#C0f+Vdf+&EMp5xPc=WwbD7o`IRB1ZMQXM~ z1`_l=U@Louq#OOwe&wX0tp)AQ- zsP5#0M3d2X+?Ablw`^BE!dWia^oUPxgzkgxeD*8?^7chJD&gh4Qh%tvYEL$byEWZ4 zPh3cGnSXt~^8EuITLHN)anxug76>`7o*73paw@*sElK>zs#UQbzv)xF4NYTDspIST zP|Jpyc#FIOyN30)T*X-~@%%Nspt@k1;G<~`1yIsE>Dc1Au$>mt8#?i4MkVch&Dnsk zvlZXofWVzO@y2ql1?f>vR{Rva=bvuT9pc;o)ztABw8CAfPt2|VW#scJ#d7@__-$|j~BlBl*!-T8Wt0!!K zzzg&0KFE>OiC3rs)e1Vdm6-;vlBkOUh~9a13QLKXFdJE5LxE3QcM{X?h-HlDN6>D{ z9`^k$|6lJXj9rXbhh>)q?VP>_{Mm)El4MN3b@jF%4g@iSGW#z!vTB(OEI79pC$3pk z?uSGdU8q(bQ|Gz+^Wsg)O9mFxD%|}UT*mDEWcnDk$m+xYJ{Vb;0#5i%UoVH_VHsxG zK@*zBnVsBeIczxw9Ap$g!vh}4){ENS@XQO)Ds#YM{QfQcUyDa?5dqeyziE|^_Qg@2 zjtZwgQM%9AQI&+k%y-KYo7s~mmknG_gx)r%@F-?+Tw4?VX6cu_MBm#V%mZ@Am2vye z23y80WZuHYXq)G4+>#0zOJ*6xNL-p5zr@jsc5VqA3AoB8jnGN?{Ba~wEAL+!j=!hf z;d)N(FDN$Pkq#BBSx$Xi8uw51Q=mFJqpMG7B0}i{^*dJm8^|5A^RZH}VGi)^fCr_m z0zsPo4OwJI5$*S4ZAIGa0vGtA_)%mzxY3uo2waox;_a#0T3(P^z}O$ib36)H{-0eqlf*@ z0^z$>503L*oni=v69+n;hV+5S-c9F^upt(`N{8XUo!vcd+PiFa3~Ay9?yOa-UsYr& z7mvzj{?5swrHP4~!3Bm1=C`6l?0L5IrP;N`r9L-I6*qL39$x`_pKr+icxk({aXn^? z#{u37v+iW6nf|%6*U)CJU2K;vo~8M#a6|_58XC-}n?p0KzVODpfFKWcM0< zzXuE;`bmUbf-1Ru`hbVY*RguMS(w`yTtAmz$g)fMX~XDP!u`<9b0vzy*^zG=kat)%dOOKf zBV_4$dm(mU%bJ7Hg6mjhq`Ln_t}B|Vgx@;M+0=Y&HjcTihwXCU_n*H=P`R(y7By`m96hZ1ireLqn9lX0!1cS=`G#HZx(Z(X!Z8MWHdXEK`Q(4c z9;iBMsM>FO`~A9xjWxRQRle8$08^h)@6cLbpJBlI#@rcAu%oie%|A{*`dXl6=HKL zENEBzMxQ1H*`B2I&l2e|9cgW=twQ1z zx3M~zJkilpo14prru%lZ74+oQewP@c|)njBdrztR4YtgO`L$Rm-R2oYD1%oEFndr7vnS9Klr?(mwe z?}5@=26t|689Hy6KI65gNsB4}y9KCLKh4)jc#-8xq~*oM!ymBS6x9qU%xg&+l*`<% zc-82>jbS!TnPwI3XlZ7V$5vF9S_m;wB@UJYMIzIFEyY=1ga zkq_DS`E;hsjE8q5lLh)`_4G!+2#607oJTWpZ$HN9IgwY*V%z>zh2N7~J!HMFQSr~J zp9hgOj{8el-iN-lCLO#tAypY0`re`&x{>dZ3-$M`2p}{GQLge579L-x6;TK4LMjPv z@j3y_DeQ4cyKim73fZ1LV-}~h;35N#y+17T8vdhxA5!>gUqm0To2gA5FiWVPanFe; z_O8aOW(OQ*?6d7YXX04rgO z;P>hIT6!$%)4iz-Er;pqtnpSP5*h*(fw(btsk9&xZU1|(T^}gkDPr566hOP~iBuuEtX|$64+)oqb0s?xPM(sWxxG&*Q z^u0?vdRYN`(HwHe#EchHNuK8gB0q;~h_gHvh2Q7q}O@VaN=G=!Jy?Nv;|bItQGMubFAEmcdVe?dXX9Ov4V|ms*g4|WD%zev4nU) zh#|O9UMI(isoUSI8*}L9ji1AG%Yy!TH#3vRGVg>$qPQf8CX?r?n~N-FaovI1JX!{)@6wOZJ0qSeoInnGzQtat6JKD*hrkq2Cf>+gjK2hjl1i!;%^Ot9MKpseNX{= zrAGoW>wpbxig7KXI|8`S^nN6;}5=MKK} zj^7Ea&Mhu@f!7eOj|ZKu3XKh^{CSdFC+tx76VPNP3~}`;>VQ$+2%#`I63B5Mz^bGO zfZCobh#XWfmkC9QrZ{lNGN^Pjf+~p=WooB-fD4~jIO}KF90jJ#5HoM91i&k1=-z+_ z!ZEm>4KtruA>W!_ZYW}=B|Bbd&L__N>A3&miU14^|EGUCD{SoUF4h$4v@RyJN0{QM z@omGF*Y>bf7NXUEJ=-&lY(#>CE1@%~^?4f$l}iYRU?QLjz~~c!;8H3M_?xVKEGWnj zy15Kkm0Go2eOaIy1DJ}ih*CNNckudFkrZmlts5g6E>DE{%;xOJR=NiEKA$$2{eD4y zv5L2@G|c-hLiWD=#5c9^TI>>8>^x*U@zj8iz?|I?-0~FC7TY9(79nvgjcUnsvbr;& zdcnw{`1zj+m71SZq$}wfGQ6sLeLv`!l0yJ=f$%@^IR9%VqWq-~Bw1y@HCuk- zhOB4*`sXNHEx{^IG_jUa4XyDsUt0$^VUd@krJg3i2xJ=jq`l$#Y2CnxJ$UmAq zVdnIo3P0o#<|An(70>smvDs!h==F`rwoW%d&Q=PW?apVI`mMGiHjiC{<+v?36a5Nq zLS;&Djn zdzyT)!NusOHkpHR9S@KDiZ=8oRWn+OQi$<)&_Uayl^
AE6y>;q5JJALgl6=$`c?-ua{#t)TGA)pDDEsXPMw zQwxJvuWo8a#^Y~&oPmXVVvVOKR-z~18tsI0wL=MX>tojnP2#W7`|)}JH6rDYR$tnl zr_&fmTS!kALv{RFGJe&aM*u5dT+S{&v&k&-d{yD##BaPcY3Vf2cznmhsTB67(uhV| zxu4@Tl&rS=Po=M2QjU;*RB@E^(NbRVSFdG)%a*;mxDT<~4j+F)39Qsjv&xhj%Gc)1 zQicf{I1kMg?!FP*gS=sVhXD+8*nXIE&kn?F5jBLE+Ukr#6(QCxqgF8YYTwaXkR;HF zw$zfelrKwBb2su&ACmwFjK4~2JQ(TxEqHnrF-2?r+t zchaY;;7mbb$>-!@nk( zX0g&unN{j1SQ(Kz)RqhPfYeiwVz0t128Okle>It2;;s?_WF;xu~^^{YyPZfz8I` z7Pe|Pp23E6IV&#d$f)RbA^+mj^5zu>m9*=qvNCfs6)j- zTk^9r#pWNk{DI#K_0Tf5cWrD-#pUas4Kn9?)4Pa~wR!rw@tu>Bpx$5=^lRFsV|)ku z(OJ5s<5)dgRJy=V>f~!lDEK98&{TLaTFpp{0YXaJhzH~hEG594Llb=8?(w;d7WZ$% zmrl-8-DlHv5XxkVXu@6&Q2?*yLA1mJ3*NjJWy`bsJQQCh z+544z`TL*A@b{XjCF~v~a7Bi{yK164?bN#0lmF&avx;OzSOs`1fEA&?-Bs(LL6wAT z5)LWTQk+BBn5ua1Xy(vbo_o}EPS3ZCW^`F93q&XJ+s-Q0BNH-Wz%Fr-fEw{ZN753z1*w2eo#J6 z{yu+x>8G5$K#pF`j%7}k4^`o@D_PG*DK=ae`&b@ENrZn!uT$R^fbea%r7~S_BsEmj zUbjTsE;KXf&~dQT)D6`WYLdq-Obl%-1Ysgdg4@w0KCxtUHZvQ1kq39fWLz#MRv6If zfdSzjUGJhR39^W~Sbhy;E2UdJ)9&GX^Mg?+srXO*3MqrY@LLXIAC{ia4nCf2Gj*30 z0xkcRg-4!@#jGA0bE)n~gY?<8!N2wYT=5c@LX%EwO!J^=9GKKW*T7?G9kajn2Vc8G zKpv~wL0qeeh>o{)ruX)665y|AcuO+*Ij?kZ&eet3Fkmf}Pz+786o_(EgWQlid8)Ur ztnV@t?rKtEnA$)|c-cdx1e(=jeQsJ{&5xbO{NVUQHV>h^H_HEb519>qeGZaY8cMR} zEl5XB?VC>2jo5Q|;R-xx?XMdz7eQN&tK`W)5&Rz)Ag7BoreYXL>mZmg3ycZYK|cl( zg6u~}AycNPk@9~db>eNt7y}&l7d7fZ$Xu;i2XEiFJ4eN@Fy?Vh{wV)h#S%XE7w<+& zN3A=qdXaI?$xh7iQS~)DLs{Y1HwCgH;a}uzTO-U+$+k8&A8DZ;Q`E1dAY?gBLpj#U z($7%~*37OQbRB>rX4^Bv#u~8|(;pqtmXm$M>Arl#6&KmH2)`1>b=+3!9&ZC$!ejR1pDOl9D3 zC~nm%bgw5R7(Ww=4`m9RVe=hjFFOTw5!bTlg&+sO4Sc^sy+)gt>6i`?Stud~JIA7a z%|d@{9~@R`venj74HOQ-Dx@w?4q%i!8ens)y{tB&;Wb$lK1|lcv8f+y%dwp=T;wC&iP@u49*;UX-D&Ss>8kI(z2?1Q zdZA)~PPtg`Xq+TZmcm5$h5)L^c9=}AU@>DmT`Y}V{%_exB=WAlto&k$bCh-&+mOf* zc!Bot=~^TbV)nnz}!bbhFoK*&I}g-3sHo-qx)x6YPx#PYVr^ z%vn~>d`-2Tw#2p7z>R`xSMaZkfb6C%ogU>)uMIaYdm@8P&?QK2mU$jVaJ0c>tTW_7 zQcad9p(}I~>^9&5K}=h8 zn%BXR)NM1!Rk*}{DpszqxtP^`OPh5m=awAA@YU7}LaOhB1L#x5#@JNi!Z5D1eyPe7 zw)Cz;xWO|UEH12E0$RTovG%@rV|Kol1Itg#P|yP#N`cc6upL}}o)t6{$2zo7J~Vp8i%r>#ab*DKZ2lPZ6oK?iIh_TohH-Evg8qpnSp+;_oZTe<`?nnBPR48f92s^XB}7+^a< z(A%%>h8vVUQR>)E^7R#A-7i?0k~J7dmd6)zeud(=zs`yvqYS7EzLY4d?jJVL6X53a znlK@i)G3H-pSn4hk0aD{--B7MEamTjZO=1OY-l+!<1v&2QH$1N+b2(3*1+~Q>i`Xk zJx9o)S;GRu{SY$|aWgcow&<9g*~0Yv>>E$fYsDg{OSryd|h?L&JQ$PjdhmQ=oMWl5w2CS;piNke02 za2z!O-eb-MDz=-av9imVal$N;MmbyW&`x+(L#P>&iDLvDLMI*Ll#{!uziN zr`gd~iOU0BM}wMpMVzg0AFByi(dSQri?toKQgI?eR{as};hs$RoCh&4AOKmLvCnp# zZcce0Z6&SmrfN$GQ`~#mQIl96z;<_ps!Vb6jaeCEmq)KG1^HH~GT#*j?Es#zvds!+ z3d_l=<9&C`NzD-_owp z!98&8f20?3`BfXv|5h#e8NidgoaMEGMMU)tmLUSH}%ntC0gEP zZA87Yi<%qn2f_bb6j>vXn!A!(r|>LU^K2zH#B2Tc37|h>yWn?1{>gRdREcb7VDS$Sz!RZErd4yMgVXjc^4bU zEOBlA#`xI++3}rPB$(0H^4xA|9=yLk)g9vL7EJTB^4m@@v!b63w2Kf$Gw_FrvJy{W85&SkuO}U_z1Y9Sgo|@8W^W{o^0}Nj z?)B4^A9_~XGkIw?yPFpA=ek2%;m}7gNV?Eo%uZxBRgnt|r5yg?<@+cd)Qdd#*oK;= zZPfP{89)tc^Nk~v-H&(~BYJ&9o|Ofc$1;v`_srbfDSB4N9Yu)#g_{v}%bnJcxE-E| z-|o-<_NaWnm+&IwU;RFXC>+yZ&ugACQ*b}^pJMknCMfG?Lu^z&$>|QKs?aeQ(E9L~ zz~0s^pRM6X_03%(x&lbgJ^%e<3!B$*#-vo|2i4BUBOpCxBYNY`T!7V|q_C8JRJ@R< z+M#Tqr>ghy&CbP3Z^!L3%u()nI2DjvS)yL*tVmtYy~5*2eaD95}kSa92Hh9Fek83LteN z(H*QLKR1G ziibBAb=qIC@kj{w*2J8v)twwcD(tz}OL8-hEy2wnXOL-zv)*5K^?qYnXBiWs7vpezoqW1IUHf$@4_{p>8`n6|`SHE}?2$6UVgm-Hg zoh))d{)7*)ppe&g*V!Cer%1e17C@k!)u9CCuBNFQIF;aa zmY@^C{ROcFgJ4y(Kw3P}-Oht~u7gK_7xTN(!%re7To+Qu)cJV39ukFP7Lu8ZSIjFr z0Ls!B2JCXVZElgsSq_fqfqFvWMQ^(<^TXSXAd`He9q<$cwVnLzL%Eg~HZ8$DXCh_m zsde;zg#BL6feD^y=CZfXz0<|i?$aY)_hLzC+`q)l7JwT-IOG5SO4e_U>KH*(kF`-bTfX0)I)-$ z>_AB+_j;~U%K7c)@4p7q0r{KLghs+A9rG*8V#bb8l5&+lSpW?v=Ije+AArY)Eh}_v zideyqBAI8yl9M6MpFsnom{%OMU#j_S9mxoqJ^>aM<4*dI+Ry!Sp=GXWFkZA0FGB7Z z!UNjehprcNXD58CCB0W74F(P0P|>3P$}ul!K_J8@4(@CdPXr?d7q6R`S)c86vxsZ^ zSq?$$R8%H@``wXNe|yfj<=-h~tcp2faxA0ObIs8q%-?1;9`%dDv3x^z#d`CAflt%n zYt0Puz}{4&nN=Ru0@g4?5i&tY306jf!Ex0r^EqoJFazQ}r~vD2Z3OqDH4h_%BBc7L^=50-a>Oux z4Uv>`b%SV)2lZpWX(f?}TH#|_yqu@}-ujQTSQ0GV!4Fx%GL69qtvJ4Z=Jr;+Bcs^e zF2ij!?ql>koQ%?N77<}UZN0CR;UWd2O03-1XXXzd4~9KAZD^L{!^?U1*T&6$cQ*KL zX>=wkp8e1@_!1ipwYmh7t#qN_yn7QKHr09=X^$Q}SE6*^wva%uo^EwDk*<4^E4rLduOIX>X@2aqS0-L#ai#RBSagWu2ke zcPHwG#eDb5Jt3dtkZB}&nUJGOFoA?r_t$dp-F30U|SgGP0Ikttggg?KKy)INK9Gsad zOcp-Ol32$F9@r0f4ly`iA+@-+APY&yy6=DIY3L{fj3hDUpjA{bRbwn~27rMeCM2QZ zT1b_&fmec}810k`*5=P1GAkQGl^Xgh^t)gk`h{arYb#znSVro#TTVfhzKf$)BYlhi z{yc$;;I;?4!$$W^W@x1VPK3ot_scsc$n;dT1L)_?T;nNJ$|6Xnv)V{8r0VYq`HFbM z73<6+IQYDMvM(vleUnh@d7>?vZSvf63z7r7adjGeSl0N=yxo$wH~k6DN!{&h<)@Ki zKfE!~K$)(@l=9GJS@gS9LZPk&{js;JeBUEirqNT)c$*kd} zKP6J>z-<+Z!Seq3vM}66Qg7(rf&h!bx z=v1C{I-xT|!eO)XX(|;N%?*L3OYwGd^+mxiEz#_YZmJVjwkF@gfI_RY);b%2aVDk! z!N5O4kV&Pz4}pKEY7KDN#q$k_AZ~p^jg?F*A+XhvsXGdBG&l66U*@$2&)UR$WadlC zu?=W+>~>Bt+#x!v9;+L@mm)-{j1_YsX^?!WWENAThS9S_q{x0sWg{ZYlUG|?9X{dB`URbW8@+t0eQ3`O!y7 zj0&rP{%p&@db~ZeYtP8BmvD03L+L}VR-96AoTnIi2n&D!o#>a{c%wsJrvQ{{za7#*58_yuIYKj?6&i5HhT_Ide zc!dwY7Qy!VtV(di=OfX6Fw)^^FUF2N6&Ns|^Lj(r=WeDh1GoSZR{Pv^8Gk$zcbfsgbbm4O{Q>k8)m0da!}O3xL5vt zqCtaOAJqafDX+=C@9z>aDUi#F<6W#r-hJS1X7k6RHHE(y6?H5?{zcQ&bA1NEoP0?lMz~6L&Nk%JqGw=`c3GS}fW_fo3L8 zO^FL}TiPqI(tfLW%Jb73)IKs;_E{O!W)5m)V8YTdHjyl|0Zwnj5b&1 z&Vz7tnbx@YL6N(eOqD1)kAAjj)dE(jC=dJsN2w zgnv3_Or#AHyVebqE*M7ngy)cZ&PzC^>{t}v9PykQmGRmo8sPD1el=09fn%!6agtd4 zGB9ugbSk2LJ_hDii6)*PUbcdNkS?%yZ>D1&KsYAhI3;A-fUd2M)5x1f@K;8_!2MPE zEdp;0D~KiNI-j#es9r}`Vk%vHRUv@GipdurYK|%puI_ zcx4x;!G$#6I+s38urM){yph;HdI8-}-?SAs%;!pK9X=gBdSGK5qlGESpPXA9twyAC z&Cc;vbN8G>7JU4(hP?9IIO?eUZ^}>!JJYMGO`}B4Ipzk|T4$)mWQS#av61KeF(D?j)0 z3Txpd`DaNZBHX`qj(6+FJtE2u;uMqpN3y_IE%Q|a@2BgTM(?JtSBM|y%U~pEA?SbR>T(|Vvj8+SE z4@kP~Ii$^%f)JJD@mw(O5(OCqNzl$(k;-d@PW7T8r;ozCadQ5=P4LJvS|uzV|H42N zj#S52XFUr)^%UZq-rw49rq;~&cNrRLv}m9cq@i1YQxNu|e>!R?6Av{rWXbAl<=F1t zQ^CB_!1UwdAU)H3tNnxMeMsKL&&L-GyNW(@tTCKPD`yyQ2Yk%tb}GFqMgermCqPn>KoVrn0FI0m@c6qt`6_fv}m&I>J8C20I6 z%(=fTLez~l1^R%uU~-77fm{uPv63L(pavYUM?0L1?xP45Gj$A2(DF+`0^>y!485;$ z9iK5-o;^FNd-jm{VyOTlq+R{JkVCyU+h?{=`nztXioR=#DmIIJ5nL}UHu{6;FL_$l zd5S%;E0fW{Kanc$2|IqV>@}_$D1jfm#W){W-||*Y2-tifSa#Lp2mWn6?))8;5Dgm( zplGGw1CF$)?Rx;5MN=>_KeFhNPDPwr5rzt&^HXpF|4>wp}$AmU4reu=G<}p}5pbxPybHHq5jg zqe()6XFg*ofM%+SkIRmX+Cb!VNoZl;YaXhUeclz}{B&`Kri4y|L6e-qx$l!?Y7in$ z^y{4OKzf$-sb<&ZtpxV=5RE(PZNH1rDP^@qOe-yZeN@X6NyjoZ6o>OCSoM)hFOl!m zU`@qfy%dzc?TPDrsH<&{zxqYm+V-zedwQMJnw2tcS7ry6yk2JGq)`%`2oW~ z;^c&T)C`Nepg;bZ#12h5Bi6iQH;wh1mbkKfCYiF5J+0_onm3_AzW*458kR+?j7T7H z#_PSmm8(rAN~Hw}Y6qfs0Fr`p|5*M!W4LpL?>C;;`Vp$&Ydm1Ryj9G#{CVn$a zjq8t|Ug@7455lX{0R{q;u>x351jhtW8{)S#CwA@Fm!4SBjH@JWFXq$X)md>>y2O>= zRHIFMM%MVNW*Uc`#11`Yv*7Xjt^wvtNfkKu)dxbd!M2httBtgDpBA=>w7;sNFmubO z!Vm=ikc*yE<@YVa`4(85ebJH=${{2bGHfnhsmXFR`S;gB&nZ$zd`f&4&anHrR4d$m zl^*k-4XsS49TusSgH>i^P&AoAC}T8Z=WS~-H$PoD z+6=E?impE1zkD|tz8EvUOw8#)s3P&k(qmYu}j27R7QCt0E!?e?9{Fn-YNU?Jylz8K#n7HoGX@Mld(D%0ydM~>Q zguz#!3*DIzb+I3I-9Cl}ifwjgQWOmPjcYd-;n#mxszoqR+#lBt6zF-qfkiDh*nsn` z%osFp=4`L1Ep%tFdv!y49hkKpFWinbx0G)3!E-9r7-CkGU0cN0{#=*ENx0d5Ll2RR zAod_^aP?xIIU_l=lS!Mse*wY0c_C9+3b zKUhP~o{~0Pd7HtGm9vccPD6`XGHJ&(qB2)w+v%px?qU~Buu^DX^MK!t<;sj2O+^O&g3R!RVvKpXs8242zt(C{M2xZfoZ z!oH5a>N683c+RxPi@!${@ueA^Q2Wh&22FwyZp2?%l^N%bhAhFu9fF}bom?5UFCn0A z6*CPqn8(M>h1pKY;QcYECHy~wLlq$8>}A+Xn23zs7mJrDQ2Q+w3i_!;ctEZtt5B}_THjU-?iH^upfN(U&W_+v0S%=1fJ(**0`kn8WnVI){qd5$V`QWERo=yx zKmVh{?Mu{h^B*Z(mt|9+~anAh5ih-#R1oj4@Ws%xC`F{vc< zDBw0hA>{Yi_-!#*58dg^t{Op7*95r{+GE&y;|>XXV*j0DwVWvk9(nM%yS|=!GpDl(d5JxQX?%o!6dA;ToPYV+ zpoQI6`4;B{&=3K7yV?CElN9UuWP4#TpP6mJg=;I{aF~5|>-=--*7pZKvl4tNq86GT zXCS$@ru^2pZI%#1t#3=%!IfVYp)U-IQq;gu=ZUwc5$o}X?%Al?%t(9HkK%%}p6P$E zY7%SSZanS&?9cBTozgn|K>`r$MmjJ28`hIXrDqo1^6rD%GxrDNp(Br|@lyg_W#J$X zw2FzA0KL*-dOzxh3X;QP34j0^u;O1fod?!up8pQK0nt^3d}D1vj#nQ;iRY+$G@}7H za{UqP+p62Ma?j_eEj;-F0ct-03#5Iqq~5FvSI?ea>szjxC3#>rfmE;zl7V5Jr@XhB z#xvHq@TwKDm}}1z1iQra5Z+TAs}UZm)xi#QHDnKpUJMWqN2MVEP!pX`ao;FsA-h${vl;|aTCwlL_M2%$;z1t-rK@bU|MT@Ab z?`pwH^j=qIqemCrD(^n;b^X8Xr@iJkb7sz&nfsm*F^i$oqKf#-OY2T4EgOi?Elg|u z^tZ0X$xnw$t|tAT)k^^b@z8zABt+<}WZfY*X?panIFFVRG|~+$xY$77+>5ukiq(Me z-tdF62B(rB*UbX|Z4>Bq3t~zT)qyRA|5d9_a8R5GW@Y8W8+NoQTjsES-}YyM{`w=L z*DO-MCh~NO5PrUMc2IHksaX5e>3xE{aHO-hnaGFYpEplReEwW=IAzrKqYDrtyZrX4 zrBC-xj)QwPat2@XYd+UhU1LsuCL?H4~LuB*8`1g>A1bu~gi{7uK>x>$9vA`&_d}SH;!3O)^W18!65; z;pL)p^vte&Zp{Ctshx}*xw_OJmt&HFE$wPPRR5Q)2f6TNR+@=*-|qF^&_{$hsO#&(@};9Ys0D?WRr22B}6b- z{CFqncHb;=GzyI@CG(mm21*^O(mfaXiCa{u)izj`LUpOeBfOaK3c75(U;A-zAfbg* z_Jv1A+V8fFos*HSb&jYH1#4Yx;|v1$27Fi21`+Eevl6Gbdkh{-#z7ea$GR3Og8acM^XXQQv!a$vXbW2ea66vwrwb7Q~<}u>V)~B8e^O z(n){PtwqX_zZb6MAR_3=l}K&U%ZB;q4u~A{y%{{-4^l(vMcpa9T~*dqoO6s-DhkZ= zrmk3vMNcnf_ZQZBk?L_?#d8ZGmvSd}A3AfE{Mj3uE_elRfYj&3n|W0q$>fY1n_Zq; znQjFbW}{b#mWY;Cq<3!-f|=%3md{mgEXZX3nR?!HIp(*`GT{oUa%TYf_7)5oQD)0B zWf7KUjK>U0%&XfGo1f^f;p=EJ)(y+@vs%nk!}OhkIGX1e2+{APeAbZ@{&^vvQj|bP z1Qc?n@e`Zx3cVJ2M70#xM24e%rb)@^#&ya5Y`s=1wBUEXSid*3SKaxTI;bL;(6Hj6 zoqnYO_j1wF;`7L#iBgf}wrFWTXbxJUYf+}uF91#W~hB!m6%dT8w(!TkdNX3^rFYBFr z`$6LPV1jzUj+W`bT-iQBG6)HRT*3%rl*`%QNGaWf=Z3n?1=>%(yaj_yeI+nd6)G=1 zGCXZE_*zY(=1CnsER z_@DbJk5Wy$fjB7qRj1>V^X>$FLEB{wo(9fQ_~Wb6!1Z@kmUYJF2s{4Pivt}a%;s0z zyH(!NDtiw95VODRDr5^Uc9p<2I1gm|(imAAeFCpt2gz=o6ItYN<#=zpZpjz)T!y`H zv&Lkp&eRh{c?&r>pZqfN6Vut3e8w`Z-rtu{qcU@PH{~ewZ{nxtr8Uajk(-^B}D$ViTa>`e$WI!Oh^38GFo|1fm z=%mk_KdlIQr8~IiK^VdIA^nQw8PB@=>$6CUT{2$%`#^xubp*AJa~dX}8o)Q{0GY))xOVTzGA)gum>Pv6-^{d| zj9qH`h97DHb9!ShK!P>X;dlSm6IqtfUEfTilgM@)@ESGBN%`IoXx9Br`lu1n_{45X z%Hc!kgZA}bVO#b=)!;XUNY)$OLR#H={+w1ygZz`&UD`^^2E+Z~8E*?(IkUb!#mQe) z%My~&yw5gM3V*qcQwBJd?Lj)RBmzp{>)t|n{-o^|M+H}VF6L`1!0 zrXZNBEDq>WS;hWZt))`sA&L;Z_G^V_RX>i?kax?fGQ>cW3pIla)WI-2FKvS#ZTXb1 zU$1&QEgLZ4?9Cu$rZdzC5=?uRzk8`RvgQf>G07_)%@mln#wak+uNyo?xS9CeG*g0kh)YS zg*61vq{A@jCW6ni!1i5OGtCt_%Kd`S1|!nCZ#dS$%C!lK5fKkj#8I`%{rwq(M*|&w z5;v%OH2El({O1iO+^b;}mNHFncY--~Pwte)JXTfuB(ZWu=$U@+O{hPKPS z9q}bkU7;Vlj*7-8*@Q?TDeLR3GQsK{N*yx=y#{qgM z{O#8gOlkwmd%O1r8Q|E=enWYTSJ6@g>q&uihNwrh{FUbl&tB6t?Q0N!*x^n+ji3(pZIPJz;F2> zn>${OLOA+3v^WGJ!fU1>WHsf1!_9VPW-=jzcBK!1t96Wjc%v`OpLk(c?|cK>d?jj9 z&ge0ebRb0AT3$b)_AJyQWMD-k*q*+?rBEyU@-_xaxs&+(SvDASwk-^eBxG@;QgaYx z7A#)MnZ=F~N@83(@>D?n3e~4>QGK3cYO)b$i&PUXp--g_^!yezwv4cVv|;?$;mBin zY=j2-7vG<*&u5RUP;^o$Dx~{7?QzYv_H^zXiOVojNnxRi;)rJa2h?e(0DVr(Wxs6f-TwSxUu zf)yub(rOwQ>W#^yF&uJ2FLigld#dpy!FH!pa(CD0f(mm2f3O&YCg^R6*Ol!=Y*ODl<9tRyEX#A8jy7v6OKr~4CqW#-T-*SoZa*Koce(!FlBA^ha<7^d)YS6Fw#ySe?oQNS%i@oUaFYx<}0qZuv72dHdYIM}d zz1VKB>I;_c%-SoBn0w@Mu8*DEK1q<|c1l2eI9+R%nyif20ZV|~{M_0r_x~^p(&J!# zrBE!(T9^LNVc??np zuOH{eiMRdqGwLD_r?i;ZmH4w0eN2~mX!8|=3fKL)PCEk0fAVEaoTG(3-W`t&-zN5` z4|fsKp<{Vq-SBmdXEPlqP=Zs{0+Zf>n<=hWh|uT`N%(0}+pZp0YFo}pGEetkMl{{hx0zI~!TKWv=&^X9kT z4K0Tm4SHtnGGC_;eEUJa`VHM&BZO1^#*4VQ>zQcct$i84!;U)QUYS7TD2xwQ zEpLv*sCZ* zsOZ)9nEc3fD8dOv6hN}(12)6qE`UD7gJFj<_Y^YMqeKCu8~RPliAy>MN||+ruRXsy z{laWj`+6kE*9Mj-pn0NZGwuzzCzqPJ8?CYRjpS06w@d`!gq6YOi((FNt?i3^boe7uyqvR(ZahTKZt0fMata zi)+aHJq{`w{3jU~&OY{x%>@2d>A>`LN)!k?o8a;G%3QyW;;il|I6=m$n=r8^cXb-y9H|!x>-;d4{@z=ubYM}u2rEqBQpX=4} zlXTGGLs0Ub)8EvF+2q`8g2kZ5(ym4DYzrFs&I+)Y)Vk`1?=>`c7vx6UV`ieN5|)lGNj$g0x=Mat^^>Y}WUfcJ+M&GayEe-@ez^ZJ?3OUpaR!%uBxNhHJ;v}fmwkDm zDN+dJT#4nc-W1QpoBzJd?l`}z;GPmGW`YYBT&lpR$6;l)Jt%pH!O2JYHwYcT^NFIs z_=(+>pfk6n?t?o%}m9X<_~ zB5f&<0Z17%4sEyvtmR-3K22ktS)o%IsUF8ZY`KklX?D}=VJ*Dn6Ozty8VmTdEl zcp`6J!f@1E?~slS$^fT>N}vhxI^2of%Mg@K;73 zZ3XbT^7WkORwRbgdfBxYJ?>QLdwRIT1fwnH1-;A8 zMkdZFrr%0FPiY$nmQ_W)2=FL)r`rrGJ&Y`qp>uH!M7%9U93U#qFQpd`Y_e2p^KhGl z@C9iifeYny8EkYLJcf+;aITUVUG3YK4c1|I@^WzG<7Xc}y#U^<{zM?Zk6?OZ{iFM? zcHbtw3p&iOFVHE>o7nI_V_G84`D?k1IZ~H#>RUl2!+6rJ#7gsyRwXqlgz!$*E6U>! z$pH8>Z5pg9>z$0T`ITIY*L;6)PyhsN0YP5j`BS=9E^cd?onJGzByLBeyIfK6=m;gu z>YfQ#X{EOCqrgAz|KEv4W<;D~IA2=Y-au;`k@Too4?%NY?mesq!u-U|sep%+L z+jX5-)ZFDM71J#J*;CwDPAeIlE+UY-K_r9x4c;nX0KV^;m#nk7`%mykK zya7SSo$kihgFw8+gb^`V7C)~hSz-GdLCfXs+g}}@p5xijdD~39Q3}Vi|5!FOQ94bz z?9krEtOyUHBDszzdo0**@93Ew09-gP(d2Qf=WC`APpqE})WZ~x&OqLZ2GDr~YF8hC;8B}BT zK8$fe{#uGC()f28Gkpv+3x))IPt<%u^Wv-Cn&(H9aS;>#RSR32ra;%>P>JA)v&$>m zm|c7%gau1*}{$w&7W>j{D}UgXN0lg}t&Es17)mfJDFS zqdCw}^^T-qddK;QD5k(rDw!0n?D&@y)|(pN*@Nl)Dm)7{`Gmn`IwS}1{Amz<>#CXo z{=@&tlY`Ix3dSXP<0mE%$y@%RqRP=z09KyTGruz$E*Ze&TU|e7$fXp-UhC5J{xqIh z@47_E{;{W>V<_c9NyyvsK#R&Z`&=DaW7AwgVHmtgFs&y+RBVvzeWk3v0>)(XbtU4_ zFUA`&#tYH$?C`!W&?C!KsfEe{5%i1G8TkacM7D9GFYO(?YoSH^o#NPVZc#s|ubwL%a<@Z>-Wl{Cl66X+;Q4GPR7za^C^x1c_j;Swz&`%pCTE+hMGD?ez1 z?-4voboc(qJAnQvb~PT^BQHFBi#d`ZkJv@?0IO;vl+T2?4|O^T?u3IQU;)TIO zs~bEKzf&;#c@)R>k?MheIO>uqt!#+DLqd+Rezx8Ic*M>AdVqG?GJ#8JFUIy`qB(i1 z`j&+(nbhpOE4MfW#zNinIcG;kJF3Xc;`Lli(N8u{4Ppk*fQm^d>kkBs$CLFj;NCwy zcBc#Qu@l*mYitpZCaHb%ZlpSww%INzNFZ9a_3*%>$a3S*V$bv3P8eum#oYb9p8Mst zk5uE2S$fPS<~Rf`%8#^3NUhXrb={jc88`cG&5ctuDH{TkLcNQHYBu9dN&#x$$S;q!TWWkGG zF=f+AAVBNmv8kO6;dO!vIxLMs>hKYMf@#;oWf*P6_uel10)X#$Nl~v35eT~#N+T%_ zmL-pz3v4Hbi+%0?VwdBu^6|)nD#jYDFfl`Qh+pk6<+%;kg+Pg$PA9US?Wwgv?C^&P z0#kocpIXkR{^rk`KnW_$sn>qZDCizDjie!muc>lzVFEefe2wBn+WSz4wos*$>nV4W zXg1f+4ue%NS1U`?RB7=NFt(9blyYtmR7N)wj89x3>#^hmZwZfNvbmp5G9@K_I97EXis~6Y0{&rOW~2 zi6k)UpF^r8+)HBri6XX{?B4GVvgKTkTmtkYZ zXKmx(0JFu*Us7=I0SCRd7F;f}yOfWArn3BZm#7o!6d}K|=M5WC0-t)bgDy%)1Z!3^JVf=)#!UlN(6Un(65Td-dxUR)@;9SmAjWGQh@qPLU>jgJ zVZ!tM>&&bKtb>WeAO3VQT!$~|CmSjHXBc_ak6(k zgVA?!N!p#R^~IdX6KfwahmnGp;SA*x%-w9YsSXkI%92rUNEtD+-u+^;I!mrp1b)g zH_U9Ka%gpZ)@Nfu{B8Knx2f*XRgb}2oK)k2M5NofGKlq<6XhU7Hka-1ioc+C$n}qH zLExAN#dN0LIiO+(T8hpn=;)4=f2(iEUDSu}8_$~C#tAnklQB@7$+qBw4*8`y%6hkq z6gsmDso6|#$3cV4(s_7Y9c}P37JezFVC6taJ;M&VLe0P!CvT{+zd_$+f@J;akKItN zF$^mCsUt72C!Zg?Z&2AV&D|&$)$G+QYIV+8Q|lZ&-Z9}~qmNoW*~O=`wII1+Vn;WK z;vQ_v=-Hlay15-xUZ!Hk3W^V zm;o%IBG1b{j$cFtXpTgBhUG<}d(E)tXq65{3XnJgIAfR|@3(k`77emK)Qyr|7H~Gq zNeX@6}cqujuXYFvEv4c+W}# z#BAwu`NqwcmJwu4wIWg89j}x&@T{W@ckvn_O0@WyR0j+14#IlsZ*VHHZ4;DfH_9*B zAp}G}1c#}FU5M>c&AKr7h9W&_!CRo%o;T=hIL2!Vm1#sU^O;{89KSrWCcsRPtI+o4 z3ys$UixjIAv8CxAJ($|l#`Qa{L0Z^IM^BXG4eG#V=jXEroFr)Dz>h&}xaW9W#w;K@ z^H*Tinxp4B&>0r`=pgSz50!w4M(-mRD@eS!hyI%jg7=fIS;vtRv#LS+QlihrPdNI~ zTsC(^0uDUxuxagXx!~x!4~c)iC_8Uj*kjhc-xfuH`vc}VQZ@D2>4PdlA{a}srQ#j& zeS@^!X9v>m87}O`=ab4p$H-*BXz&458V>?F!uqBc!w_5CN|6G{=KK=^AhByy+pIEJ zep1;|LQ6!Q!=QqRkwP-2d)AF@|1>7hg_!Lhl5Y@^#J)7GEGI^0#Bg!L>e`(kGp)s2 z4qwXg&L6Y$KC6v{$ITd=#_!>|N~v-UR`pURWRH6-59SXVsq%%SI8WT|~S1_1_`!NJ!P&%2y0eRPVAu=qjqd`MGs5z{HI{=#ajG>>)u?xMwMWIW5h%F z3F0gko|s-%670r<&f5pS70g=06mb6^xZ>4j!7>{+JLBSMBKR}j%E6(IY=u*D-5Xds z&f=SE_63u`#ccaN}u-bDF&fsSFZT>(z- zF5bPNZvIj>OEzw%R9~%$nIg`1g=CKL_j$dRHr6;kS(=tpHi!kwT71m);`jHL1V{J^ zt8Wm3EQDYXfsFSKRCgL2q2T+{idVeIs1*6&x-0ZHR~WBX#5Y54hwn%)c3e*+)=m+t%w`fFE=mFX?N_Y9T)vMqLB!^YQNDg4Vng{N-dof&nh zx!ofTd>bQmp;W~Jd{@&DQmBY2K|0R(1rCTm*d0)#u?HA?38sJ(mG&kGH)Gn;u({1A2Z@(ficdaLIvo$?e?mic=M5noo2Gp;vWXajH zrFLhSU2O8hoZE@-yS_`R2L5uH?l=ebL_28+VW6&6y~-cTB~}1IaWePpqdM{ZR(-F_ zg;?$3JW0j%yBZ3cp*Jgx@zb|I{^r|^hOei}8#8JrGKf#F3dT6zy!*5d`4+ku&ait)EEOk*JMgWwHbG2?UTvyqa4t7rzgt3r{@K?# zTHp2+@OU+LRNiQ4u=W)VQQ`-C_Y$$r>(@@f@bIUlK|q6vk5q&ZvVwfP7v?4%O^p)4F>EK4iJoSr4c^(aFF zk2OZLYqsCq)w$Sf-Do#vtgk>FpBa+Pe%Fu=^Cp@(2CWZT&t^?-4V;xf6)B#vp`2b? zd2;nT_G5!ci+Aqjjj|&S5McElin1$OyttMmizI>ZwZuW^7Y54mV3CGac>-m{0cJgv zKcNl&Iwlv)(WiFC`{c8T8_GA_iY?4n9eG9f1rEaG3<(qj{vhVBXM@RoDMR&-Ed9t- z_C#J@pWyq_RA^1-tdXj+!`2}tkOuH_6LH38rg28r$A5R|s+QmKDAv`GE98TLyBCjZ z#g6aNVTU`Af$$FA|U$$obAPdvfR zU01UBwgq7{I3PFw@{$0^kp6IqKeV+aFC*VCvhfK@c67b?Na23{su$h=nzelw7~fn? zUZwQ0^(sFJ5~Sh8uW_S@OaZId#>UY$ zG8xF0wnB-!sE@l}at~P@GM0Nc9{FiiRp?&c=%8#)#a6i3;W5f@4jJPmaJY+uroa7* zEKS*vAk*x}H`R9USJ!+;u?UJ974maCBwHo->x}AfKS|7&-y>H$KCN_Q?}i`Q^M;{* zXU_Vr)u?mzU0aRgS#dkrAkL9koq%cr)}t2BUZ1x3Fj*g5IVho25ibM>H~Cr#n7vo=plDUib>anpJ1bMf@Mnx#7}DFzuz7D- zFPVo$@jV4M$(^k3*=EmlL{opYDjto`%nMEP$*A7@bfBwtAeT$>F&sW+g>W?ohY3BeJMWr+dswEMzpzLrPvyUyRW&q&3#;nEo87b=6Bz(&U{6ka>vxnR+R;^ zW-n~Xw-zCxSqobrN4o zb*S3CjnVjN+lPmy&D@#zqqh}3@+@<2Wxh4Yj_<7N_Lml_vJM5}``o_R5!qmmYH~1d zOl@5PHFU;KQ=#99=kV@yG!4z^hm|Dw3s$+_CJg?QRkR5fXa0B?*ys2Mh?4PmY(|v@ z)esk#rbs`j)@i-h)+M0g? z2))l~s96W{8g7o&S>0b$%ukK-$6iFp6Rs6&h=t7B(aW=p}|PQf^5+{=}pSm~Drn#6a6W%^UDCuDC*+6Nj^8q;4T zRy}o^V{&L~Dn`vJ^~++DMs`sX2qQv0wfz&BnD4+4mmZLBHSIOxQ=nhpE)E-6WV44m z`YmGFzLmKP#^H4F4txr;p0gyeOI2-l6Rd4J8XXI{d{jsCHo3u~vy(8t9HGuiMigXR zkJ<+$UCvZ*H5c}Kyy`|iudPPX*LqAFYJ5GFDESwk`S+Y)-g+f85KqHaG3~dHj?s*n zdc4zm)xz7)H|*8zanO%N$N|m#m=7QjDn;-m^E<{rs)KIErPSqh@+N%Dsnn$e%Vlm7 zfrxZWEZpYww|UXEOm`(#(JesPjcgj}Wr7~gk}E_JMa;x;8LM~=se12K=U$~C8|~7X)#V-7eeCZ7Pj4n!Pa&Xto9+;(}2dw&RdtC*$q%=S^AJJ8*m-4PhQ1 zAX8}`n>BLwiUMahUGt1f!$$UKYiua$n8_os#hnf|oXp+q1}j|bLCO|^rNpIvOny36`$Q>ZPc?lzZO9FgkxUbgvsg^YS%gY||Yj z%BGA3J2@!;^Mp!+(lS0eiIOa0(7B@yS&9#b^m>3WExAWdHsTF4d-lfLEci<)yHT>Y z!5IZ3H!l~h>U(b<$C9z$lih|X_l9@7FqTtDQVPMjVOSP=HyTG~pIPkjfFnz5DdqILR%TvJ@|o>-d>^(; zWtP>1rbKaY|64j@ga|D2e~0rhVdvu6f@Kc3c8Z!>*(><-^w&QY9gD+Lf+t;^xk-ls z9k>y+SB$>7A@90G8qSx8FDenNhNP6L9G>)BiPL%Qo?5xO%PhdK)LbRea#X)3VGk z?N7>&FDq<*NI204;6g6PAP?AIkz20aeB?=-f!;L0U%f&`8oHc6KHOyAxOt)-F4Nc) zT7#8)ZG^hb4axj4FUq}@&C2DGYckUt1^=#jx|ys1c#RBM5KbGpeP`=><*JBHrL_vp zS)1%F*d)SzTlq-i&)e0cjc$jJ{5}P*oPYDk?*T3FzF*)wLSG~>q+xcvkE(*QnK|C7 zYvxsprgH2obUbt@d=Vm0zVv|vB7S**?8&+uH!k|h>;+CC6RlJ>%dKpC8`SW&D4}B< z-`kj^EbjTYbHKQ15zm!0e4Z# z^Ukd5n3;&u4pq*`DYMPMD8hyLBt0_1>PqH~>{*=5{*!g(0k58B{hB7}O?{lG7#W(U z-}S#aXyzT>FOtwNF;^)l0$6g8TY(9)EU8QS#4hK2rk^`Cof#IzU~&Cyu|TO{^ zBZaytZk6xlg|YqcpEbTiE_t6iD@-@aFa_$7Qae;8nZjFVX4E+W%h_t1%EXgA6%_l^ zxqgg>=OB$ty*?^$@&#O>2c$>{&S+DGHcJXXnplh)BbXP4ez-H2HB2j}|mt z*hHVh&{gB}Mmix?ib0LcnlS6Op=tYIh-qxx0AjiTzlk>2zToL9VaGQ5zDORZ&{j6Vo@qMRyS8H z?&k&N>bvWJQ8Y9JtgLnL45f>*HI3}J_}+WbY8@ICd1&ThI4M3`B=ewvEk}GCX`OSK z9CG>-H`s!et6A`- ze+!Q8tthreI1rA0LzqZ?KfZoqNPfSF2=VQuabmmPLdI=rMyLV#!W>7}XH2(p`?b;p zDd;!SA>==CBFIy94^ZFXguW0lun5=AR~O!%=z&v4p;$tMJ^~xzjBrp(yT;fz-1ALd z8)XP#`uJD+{u&o!K4As|91aJducT0aNN+Qb(VHP(j1)k_`T3KMF-k-SqO(hyRBGBn zbt;%J>gSY2)+%VaXN=m8%szIHMEOe-NZcYlmJ&p^ZErZ1%U$Ukc20j#{DwHhPL|Cb z;y)>UL|b==O$cHJMlBP7V~seT4&JR)vBN&uThzlAQVl%5(hwoB74b3*JWmg;?e~6^ z!a^B)hI|rxDhf?yeQ6fQ@Pm>j<6l>ozJbI0J-u+K8VCDX`k{8`QB}yo30d? zXAL@{>5nx~eUiE@4-6Pgk8Yth?Z|%KMPsoCeHVG*8zHod|9V1G-reQ zP5Pw4MFGgr>NeWu$1_TL!onDuHbHJ&MU!OA^n6%;+?@AQ!o1XlZfB;7MD)8M&*fD# z8Tb2{!}nGdh0`_&F+_3Mj|5I;W%wa(qH{V414IarPwX}HNVC`cSa2y_<0u&@BmUb$ zuT&i?pHSxcEVfBRU_`q_?XY(N@Hoz7v0`3HuQ+!FN_^gJ!FPSu1JezIY3Jxdle?8l z$@(#JF+Mu6 zXu1|)_*~J8LJs&CBnMyKX;_bTFdK{-(`U?uFbs0un=Sy6jQ52$5&Kz?daabiPYJQ4UmtH41C5zS z-&=lMecopBeC%n#Eae6nY6%lp+AW>!RnY26H=S`Z;;&4xiggTYoaIYg_zpPF@j+f* zSQ*%>xhuQN+?Bt`a4#dKpA-a{W_pM@GYn~h`e)lk#y@4!xt!@S^*6IBcQtzqwzqd} z2S%=k>&0iM6sc$uFi+$o7>H$(Sb+V6%>tRuEk*viey(RvB z-BqlGP|Uvg?ZV`&k1xc(&b*sjxWD~mH}!9ORuBKvocW)z&L=Ym=fqPs?XoTfVLlp`Iczg3PfS567MHzL?_i`*oZgmXgmN7F=GvxGcBhOPK<1Vq3cI$*rq{f zIY+PKKUeU-H5?LhSY+pBpG80)pe|l`b$_Ub6kinmayPY+Z%<#=KMFt8I%o>WUn;v! zG5sieP5^VLUfmexj2WS|V^HsbSC%^bxClc14A5U??yjB4^()1uD{!0E7d8v#G~sr( z3#brCkMsCYAz+^b7bM{0RM>1eCG@FzfE?D^O9bBW=>Fat~wA9qVXkU9CZz~f3$cp!oGK+04g zG(+*o=@-=GFmyIZ@M1iz(l?@B#=^<&%uxKXP7)tDi`j`<(v3?au=Eaw?mVb~znb)NS6N1$I z2lG;ZHxrrVfeE2LGJ&1v%tK8UG45$TJfAL2~J5fL7F;T1JMq~6Py zQNHQKVj;DERWlLBIAxj7bHK08M67E)w47BHctA8diiL z4%nACPzflZ3h?x21C*QL60aKXg35`H;&HMn_`2?1jr-ZUfv^bpb+%ehBUTk2=CP7F z8p;f3)bt;Odg-@dh&kYtVs(!!oi9(HzOcp<&X7!`QYp2lgS^JeBI`3JXp~5!^5)W0y`)F7(&Ja>T8t(cY%{m zaDJ)(%2RfjH$a$t=I%G*wY_wy{^CGfzm+CLgc$uR(c{|%dK&W z+*DSQ;3v}=SkCR}|MwvzA3s9|BnZ^t1Sg@jBxXma8L8GyL{fN|Ka|q`YQjeQx-boy+e`+k{KRg6{(9+lNXe146|FF z+T$yy3`GsAX0iUS7yMBFDa6!Vd-($CEmpd38UBU3_{wC?bgv7wb*3AMckm3DIHXlB z9}@&N5rmczxSByX!KuoO$J8j6Pb64A80^o z3T3!$77c+x$i1w*b7Zl;z8!WIt&jV+JQ|hzQ%8Q`s8_|Z>hGaSsjPh_za|EYVv}&) zJe>*Q)E)fWpSmumq>ugujE48Q6~ESRamG|!tdvv5IX;B_(1B078P_nDCl*zkmKOht z9AkY)@|NlGTXj>R*#B(JJ^cFo7Nb8N8&?V0JrM38zCB-N-e0QdYfG`iN=h>>coW$e z50n?Tt`If}RdFrqV8*YbF_uOAS5~80!N0(iBmy%&FHj=>LO@9d3vG#M(>qj;)u^6m z6|;c?%(xlf^S)2XMrB&zLlKn->aOk8vDfFVUUr{pXWCY=6+Z4V$?NkmCjNa?PwD(V zp`lF-l5_d`#7_%pH!w%E*6m%FYHd^KPPgGeTpnmrW~7j>F;c0=R6bFH_WbhJyng22 zZELFZvfBmMOS)Y{F$CewS^V?gALvrBE9fM++9tAJ zq)>IoAhnxt#HlO$)ZJ-Xr~}f%YXG)2jLlTdT}~={n2aMg2KX4(5Exe3b+;f_W7dad zPDektBrE`=#|*SbZ!HL7br3AIH;zV<>|{^uTJ>zZxwmIxVLpl+?`^aUCHL=NqsW8@ zqC3;oSBO7lCZsu-lDLGwFFQ%aY}aZ=l_qoJMk^K89=VNw2r^7v9IuiSum z4D;14yd~5x{@oHP+BGsBb2@UN&_ELXoD$$UmM<<)ZjxvIB`l1ig?2{k_WT*OjdTM4 zd%Qq-dv4+IW*Kh!@2`)5~Pu4>2BBsq@+WT zmU4-u7m!?jARr~`(zPJnNGhPu_5XaH=f%E(d+#}C&di*N@0kHskq1l0QOeXmO7jkB zH%r&mVvn;#onOAwj`jw!5ie&f_oMx~Fe6pdr?OdtSzQ|mY}K8;ytoi~$QD4d`8qO} zV4!dUd&!?R>5`KvOS*xclFvrh#7M|UI&o&}iym9j>GH;D}@Nr8+aQ@2jrrV3s<%*F|Fc5nV5Mv$VA3p|tgD z7v6d=9;lEyLcRbEYhF5R6kD;Z735qsV*QB)bIum=#vJZ>4bYc%{Sp;D{G=J;M7hl; z)e-ybtL6S2HZ(G@O8V8irG>E%IY)O>am&yPAZVH66-+LfQio^oR4QdjBQ`u@ED@EP z!mM76mtC927)4P2^es%&_=~;8oWH@`AxA3_GzOP*K#Ahi;KD0m!Bfau?l@82?;5Vc zLx}^hZ^eiy>c~r~GCkG6%B9=<eqZDTM%*rPQ;e=@!_MI3|uZHs}A5c6q)2zBh&`$R0xu1#}b>)(lEQ z)a?WVgeu9oT7r~eUT_G58bTmWTE@T zog>oQJ_aB2fbch|FWbRZtc{acEX3>pEOlW=?_3|mcD>}9N!f^pGgg85!XXHiEq^1a z29ui2M0=~I9a~vXdSq7qCw2&@`bcbmcOB94RiB{cF>S`24p6a@W^jhU3nYPvW}FZF zuP>Tdd;zqQIUP3jws6oJrgyxLOseXWu)(ri*7nltD0*pJpF{G@2HxTnCV9qz{s!4v zN)kdc!CZ_>T9yi^;{JZK@u}oN%py6_96(VQfP*Ww;c@hv)(my;ml%%jzRPP=uGF4%4(I1@bpdU3RHvP!v-oF@x(6#aaX}>2 z;YL4Vq8Tz*LN{5pj%3n9TaqFa$=xDa#N@hxC>?o!=jnMQiejsT6QWI8n-(_MBUf_q z$DXgY1j`x}NxGnzOjO}5Rc$%t(;=%n-&y-Az{}56d9>rQ{^ zY>0WkY;4>k;4AIRo~cu(gkQlCOzF12K?StZB2%+G1VeAI?AV}bfeuJ|v@(>3{mQP; z6-;t1m4=*$@Bw?z{Ug?x@xFYdOyvXhgx@~4!i8#K!IM)CW|idF&vs z9p%%3*JczHGb=Ph>F^&0uG^LyMFJ zL&)XEwng0U(5)jtwWy~e0n-BiF<`cM!&Vh4<8EIvmX|8z)_3T0& z)k*2{JZ9M=++qU8Zoq0nDC? z!-(lyDv5PqV6<3vr540Ph`rq)V0@LP3tyI~z`nZlbFsm>oxGPCP;MWkiMhKP(m{5B zTI!cp{8QX8ugG(_O4LB|DMs#>w$R&UpIGM^oJfWOfRpSgxv{=Kl`>wY){9zR6v2rG z`oSJ~F{RP(Q!NQsGb*A4L$fTZgYgQ**L0eN=%E~tA2jnl5h9HtaChD-%RVd2-X!_# zUZW$n%?N$7-YzO%dcU-2fZj<2H1Bu1Uu!WC^WYk-`ApvYo&ro1@sf*fFQaR}5?c{p z+PeO^ehsrq`?X-YXRfzNrFMlH8n)&|ZWgl3*+enRtbeJHOvnhK6ig;G4-B`W@6}>n zaqb&4TsGSt2HB(6njxhCZ(idUYDP)ss(8@$82Ya?3qq0d=*LBueL#2;Z17PTmz46b z6E!W!bKULCUx~i~Z?eemUK$i7D8QX;tA1xHx_qsV(p#R*HTF3it|w|$N=VT`iNG3eQS9N51w$yZl%Rsv~m3nVhTk zYUe5T)5^9(OaB^`_VT+Sf7Ox7l7lmss)md$K#MG*M^ z>URDLWS_5)`M@|q6PFLVNLhxsMWA}`n93Iaj22!4&-L=`EUDjm9;`-QSxqXh)tz`I z3OKu0aXy>g=M&IkGU9lWI|$6s@nGTv{dwbH3-1s@cX~W||4QWyqOY?C1gQbz^Bt!X ze%O(^_D-(OkRTfxU>uIJJXREj7Kr6(kbVbF2yna5mRylxr|;mgKsv^B%=@oVWx!4b z16oF_GT0S6Sni+`vi>2!_Jc-+60;Pfpa1KYZs7dyU7C;MJL$s1whFRCt!;7mev-ww z3$ikYHaLN#{Lis~i~)Mc@yX6QMkE=n(6CuKhj2B-@f{ZZU(wdL^6BXF3&C`45_`Ol z*F;DefCMZZykP<359D11S8S` z=&<{8aw=;CzJWy03I+&V z7un&4mu1TSd_8ijWdodDxjNu_$QO*B{G+PkOk%rE6 zlLh0z&Mh?rl?NmNYkeUPzvT`Vo_XaGH5h2Uxc@nZmPc#oK07u=2f)H2DQ6Dgon~Vy zNqwv0GeRcyuNgZ8@(K5s5XeM2b}{>x!?%yl6zu)_X=j3e)>aY|z6@~zDdS!PVYeB~ z9}vX}4Hd*H;Y@i)FnJ_Jmt@I>v{l8A57<>5pGWL%TM^+n8X(0$mBJB%->y{Y;UQw(#6F0BC^4Njip|R_~r$g=GWd&Y$2)+y9-z?LB$dKAFYTQFGK2L zmUJ6d)hb{{9hN-C0`GL7(^b+SS>z)-uhLSGUdz_iU!s?dY0Pd19+W#iWYO=xdI3W7 zjK3C+E9?ky9HVqnw==iGrEAg*QuCH7o{^v8yHP}5A#so}&citGsu6OlXOj;pO?i&D zM&l~aygd7BsDnV>{ah|R1YOgKTAyMp0tR?61MJ)awSf2nCk4s2FVfiDN}5g(*IRG5 zH}RWX)2Q!iquMO0)U9$&^YP3fH`ek)z5xS+JWjlEO8Krl^H8lY9xc%k0=5RXGCe(s zT^zghl>@i+a_yfA%!RIk)-)L_BL*~9T#ViX8hXo=K?qzT=@I~aqhK6 z`@kqvnwC3+4}zQ6HaH0j90mX79FK60tS{A!HVty;woFd-gplFr(!gn}SKY>dz8&Am zji3j|=S8V&izDVHkiia36Bj^?1b-vMfn#9>jW# z>f~Cjk|B(P57<$MbJd?to?H+KN*T;AmMUN%=8d;PoJt^Zo62533q@J7uxj1jv&Xr4 zsz`^#qqwmXF(M?8pJl(lwX-KmxH%M!o16d})L_9Q!i^SlyoGOK_0=^Kv4 zdW7)LB?U}7j5V@m*qW68oxAPG#jf)cmaarf@s1@K9zEXLG(%jaI_;%B-cOcXx;^&1 zKzxPNm%NUeJzLO=k;rUoUibE!Njz~W$0iekvs`X_8dta_3#D^o{s8i3Dz$5!b-I%K8Q&Bl zYUV3mANl9A#^FIbiFptt$k%S-Yojj4932A9??Sa}q}61TJKG+hZBXtZeODr1f#xO2 zyT?Zm1N(tphE;8Vz}q9GDrvNTFy2&JDE!T+39wDv@HtjPD--OaQiM4a8_JB5o%T7c z81!vwQL}{mNywNqEG5vS%!&{KvlEkOqJ?|7rgMlkiY}knVWF6b#9BXI8wcPrHlz6; zSJ~8AJbbvH)0k75Zg?(N}xM{lnjH$*A#AfpaXsU-|LNKmg0$sIN%; zg%2PcCt-9VM7>D|xt{T4`8m{KO>&e4*q(qX#mitRu&M}ge>yiOzr%1qI*%%E?7*jM z2ifWG_DY)s$?e5PvJsrbHaHGF7V@0`>f_SnS-7Bk6qExs+oNf6`+1U%9c*WMTDW$% z`3mh78!g=3ls0!)IQX~677*>?TPBLxc^w-s2S$4`U!EC{u9pXfLAviVNlU<=D`dm@ zq^dUuJeiLlRqF-GCx`?gvX(#DB0nh!hE93<-?5)@5z1y4JJ|^oW#eoN0|W+)5S$i( zgI6aKZw^oda@1ORXWdJbPR;aP>_9Sy*nIyNGB9qf$Vgqgd;P$~gujTK5((z9)3Pdg zhFON&k2x6wUxQ1YM}3(HWx5bwV^TpF1#<@>fFxHrpo&<{oCH?s(e*|`c*ft!SN--W z&)ojGzIDO?p$m6%4?zPs!7Y3R^RH);j+aVmA6GEGx30E8No!?Dm9!jUjAF5NNqD_pAjEw-p16u@!^?P)X7@qQEBR%bytlXb4#qm( z4%a(gKvpU_uZ&IHpNi8kMzdLs*xWCv{_2dTpG=>q7 z!XYL3Lg_K>NYDV_YW|hB&L_k8Mmed2_A2_@`VO@ijjfm-VQ?RHIL`|frBgsMBcq#U zdl1~e=fmi};4K+Vy_OIBYQ>a62n5kcU^Q+Q0H4WJl+eO-Vh zYJW>R<5szGNb8ozo5*A27@hhwU_7YMIJ*K%{u-|Mp4zE6?;qs1+oFAdEh7IE5ew`jj*=u8igQEPRRB9G)- z4}c-u>pX$;$p-f0(hSGS!Sy#e{o(?7pIRVmq=l!sdA-0ZW>A2U&7X`&U=h+{#3g0t z{kTuqJStyx^vo&=K$BtOEm;638)YxyqJMY}?3!*0=gz%JG2tG{_(Sm*=YGaX(c9po z7FNVE`OGzwLT>kxTWcO=yIbG@h4W$5@^*?-KGpRfO$@E_-&%T-ULD8xsq<8kzd$qf zpY#>3f4wH3At}a)m%jc$2({Om#P*-l9bB2zlJV67P{f|R?}H$I$l1YNbs5GQ%Vv!1&yPY)^IHFyU2TB+pLwp z6QUmcknS+=&)g1tXwVlfvra~ZD=GC~^2k45GJ;2mS{|#vz5yY$C12`lo~efoDEU&^ z|6Ey$gI?soI;HV^jZNri zi07MYIn_LzI*s*HB28JyzfWhE0c%D*b~VAH*%I%}MWN0cNQ+G`+iwm@0U8u?VQ67> zK|@35?w}Z0%ZG?}qV1GUVU+ynnmA3DydZf}jFP-2A0>+=E(DBPNN z@)fzlnXRxYjxciWP4HV4M(+Th^=u}Lp~`E4Gd31;m3PV{>6agapC7#z)a_6bmy->@ zD}1$_FocgvIJvX+5N&-b4&bq`kR{09!?(@xGH-MyEl-HUrU=VNL|PIoli>Ee_itYX z@_hdd^TlriQ!yjq*wOBFo6^9aCkO;c?$sVQ z3)JcU}`y@)f|5lzz-o%1ZahwTwqmX36VcgDXpTfYT}Hv$L)xNfJ@zi-kn2#Fa`XEJKR2B4QifwQzzK?nQXrwZ3xQf5c;uUtOV~eLOp?6< z#-qr5vACQ(f{IP}M@6pKuDi#O8EE5gd8PwtOkO%X4q)nSo~uPXCBj4Oo8H}e67Mv3 zj|V^yC6s@_ai~E|xldiG7DV~|Iu3IMvGAm>U3~!UD%wmXy4hVD(@q7BF?HnlkCaIDbW?t0;1Eos z5+bK~#6skK6q^&V+W|-42>0skZ0_&nJ81OHQkwi%F@m6BAFfPL4c3Gq!YcyAV8|i! zhyH%$E^a-7B53mi=B>GXe$+*kD@Xt`g;Y`@YL>rU)E-pN z-|)B*5%qQ~+jE#Vdf=N#$h_7^pqkr_C5Bm=|0wo+0Xa+~V!)#v@2@$-%Dmj*x=y9e ztKWa3<-5v+*OO~pW@s2P<<+p9#E?;^#O-}c=(*{sP_Kl(x&)-F9865>>-cvHg(SL4 zfK$>}Tm#%c5OZ0RV`Rep^D!jG`$I?lY)HW1r~TJiKpeI_IefX;-wuzP+hCNEdFFr< zYq@Mdo$j*PYapHr*<>`DNQN688I@!hk{C1WDd+SLdi0{yibPPkr{UyO*NOBj`tfOP0KL3VCRVCLN&>0CGP`UaRnAIT=R7g?l7>8q| zi;0PL^gyfSp338VLB z7WZZy*Tu^RFPialL~FB!DM%a<1;Y{sm8yDK0*B$F*EU8>g0E49L92|uCi1)6#IwtB zpk3D^cE^_x=c9{J&iPU_2T=o#H}L$6O7Vg`U{CRYEiFk_mEfTgtDf>8Q)27$nQ7=qx=1DUX^Fu( zR)ox2LXdp)6Jpc%;eP`2e@}pV{OohzM6(mGPam02hrIMYyO^p@>ZZ4me(w3j^nf=G zzbr`ni2Ym@j8U7r}d*WrFQ)K9qa9^7|40ckyOuWg{(kky_aE>{|Wt zpn5~5d%#vt8KFaZj|e9ac+);UZwsL~$GGqZTun0^d4=b(UE)-RZ_1Q6!^ed%G4Hqz zVCQ=1gyiEj9ms5*hZt2{Q4N;tp7)Kb*o9Dy1crGKb97Ka@{ssc1SP_laG&!wEf|)?`g`V3j9Urt z*5FR^u`N&Rt5?o&E2-+KL)-V@fE&DPEK)M1Y-g*E5S8gRZ!2@$ZFT>LUC4LHHh0>e zu-d_(*aCZF%1w=Z2;)*;2S^#md&#w}v%SDBHx*t!#L0npu)W(z#LZsn*K|!!J{3BG zn0cD_q@^i9u3$$;9<7qE6ZyQrCnqRrpNAC78)g)K)hHyUQaV_<7=QU&CMtoHr}XZM z>d!sJ%7q}>*tG5AF0uG2KT7P7%-H_BZ0(zjbW}nT1@adR*I0vMnJ^47S2_0x>#9>m ziRcRlHuP%|(vCQ?_Z*^&$)VWJ9+ZyCv%J4&Lbf6EA#b=lBJ8M)8H9jKPJd9+r%dSN zTCcTv$OP2f@M_YA5=rW~IxA+@9EXYpvtRLJnJ2r81Cp} zSFIk6J|?yfY7VRI=uB05cenCehx=cCg9VLn5@+K7_>ix*2{!}3i?yt(+XY~qN!Hok z$JUUZ(&#g-X=3|Pu3V!h5&>|{F6d2cMt_c8U&~$|N7|3yIYc%LM!$xl{-q5%V zETL=kTYdllG@4l_*jqLO)&qJL&Wc=^-e-2Z5?Jjcz*CP$nPI;P>pK}?c~N5~K<7!4 zI)_1||9yTZw}iR7v0{Mk29{rf^nv=| zooXYXK2$$lpvYW`e>0qgr`IIbb?X-VJp+M^Y0hO?%qyflX)AXAM%sz_Vhs7MK;(C zdVG!1RN2~Y{$7)21xL{RK(y5qi5=TRVXpy?AgbHxz=EB>pvuv)rzx5rnQ1yMV9RKB zCV%>)0n3oVoBI_}o!Hz4lFe_gRMIV#il!k%KY=@korFyv-Zz`19s~+qAF1 zy#N>WuASVit1Ic4I^zmS0{aHhDw6Ldsiz7^Bn)Ybm9ZnER2eio2`xYN7RpM+#8?GLABT%{GM^+t$hc%6i*(0sN=r5UHuhl zR$PhAad70?Y5M-pIR;o$S=AW*8}%Fwt+KC5V*7CSJ%yJ2NS)Tu;MbM0aZ|D=RloDM1s^8D<(BZ(%D!6wC zLylJv*6tI9rPaA?izT@)S~!>YUdYaG?d9GwNU!W()=+ zEf)QuCL=`h5}t5(5XRgmZp!SeFrqG4?NCn_@O$wL{uMh!;_PR;^r;Mt+k`~>tWVs; zjN|Wi?h9ri-~wkf5ZzHGmi!t44H=WDn~*ksL)S5z5AhPdropBL{E}$Of_f&gq$CtQ z#1?g%Nu9%7C%0V#anxfCG;((1w6eM0jbWHI+#^Ik-%M#>>+~ATe*^KU7y;R&$QM4T zVeD67P)56jum8Sl9W~NF@-E9iUm}U#szy>NMP~kqa-uWb;109*$l517#^u^rhoJDm2c@_2i zI`u3nje3;!5PWBdCCKu9``r%5x^5Q2Lt03*|4(>*yS`QdZ^cZx6R z!Rt#QZJofFtSsH?*qR&W$a-!?LjVtmXP_bVQPfZ3KYmJYa(^UYEJu_YP|9!v6Q%j% zqiSTe&F74{KV}>bEQ5+oIE`41MMdXtm%$Jsad4aatGMMig-;c~aVtnHbWGzh<0No) ze0wr(fI9rv5}N2jXz=q?hR|OUTlM#!0^uKEmwpJn_6xZx1N``f(SWJ9tiJcuzOE*T zo!XLGGc3Rj5d@IvwE$`cBt|6$$^VWs^qTytaAt5;_&x5R$&X#s&wHe2*u}VqDLQdz zyz1};JKBvcPSgH-TjeSnRcm$&0)LUeb3CyvYGLXnmXIsCUFoRB>o5cYgU7weHGTWq z-VATg04ExTIFT1dhr7*ch=@Az^nq29j}Ms%gJjEq|b3nU`t;GpozOK zPE`x!{x?RIF$NgHGEseqa;;}1K<@Zor0>rjZe5TV_xh#>^|MTQsB*@>xGU7d;NxSY zE5vU}SX2#+_&i7LJ7opgg{;d2g`SR4vh(5sNM#`a-d$EMA6|;9hhczukamM*@Z`o5 zv(_fQZvSS-#mNzl-wsm7Bo)qEpoiBR{5ttK?2)dL7IVL3sLVS&C!DG#rK}xn*svHh z@r+m=((p=Np3?WnnZ9`ai)Rn43mEt0x7sF&JjwopzGKIA&OzR@mu9EmoP$mxV$lt2 zxG}7}bWE^si5@#Hy`$=kpByu&n_OR2-r;g_2MjY)^2GJ;IgIUes(Bv&#}@z6?r;=7 z-RibW)Za;atw#dm;IZtNi4)Ho5ovsCeM5#kjYkoxv3ITx=GQ|6AaRgNzMn5!)5qO3 zE=t%P-m;zil0(y@Yd+F7X$ZP5Y;{Dust43G+*VX;ACp+p z>yeuOdRFSljtFafkgW^8P6rmH-@rkc3Odm$0TsFTNnWl;o???m0QIMx*QeIR0o2j6 zP{kUb^z%;|q<`dU4p&vQBY+dZ?{Ycvyz-j}8)7bdNp%Kug&eyOq>94sbhIeBV?78& z>H%H7Y2n&%(&4uIn?ANP3G**gp-tlqX|M64Xo3hmYqZ0+m))&qk=00gl_WR@{;OdK zYKLojO#eS^l|F3$*n;FJfwKp|j>2OPQ%&9KAi3RWmA_HJEm($=R1rIh(%r&{A7+s@ z0TQ+!@CBHUzHV+q-o8#dX&j75dSOyc0p7c@#5n?aG9DyiQ?r_E8$4x-(CPT5@LA?Q zJ}~Ejp^hS%0zfe0VYnVXV&8vTeJK_8M_h2J6LWr?pN*GlO{L^f0d}PIE=1v*l<`1> zEz$j2qQ|aF?{>w`wyL4)9c42Q4$76jC%vfc7wQvvNtS^6F?^86kjXWN!53^FO0dXx zh}$n&GvOiiO!+zXbtc7=Z#Z(A%TYwP^1enUi8me3o*8oYD)!CZ5uOboFQQb7n%=J- zgnk*i&X|^N(Io?a|D|rfS)6(k#D>`Z#4Kbh0={Tn)KTyqr?JY{#Rc>d#yfrhy)5lc zSofoX>9o<4X`X@0B;$79XLwEfR^4cM?zK=wuTcmgP zj(ya+b`2Q+#L8>_nJG@47vL{`c}Z!qCT`RM2QZT8?mXnEAp_KhpansrghMPPEO1Qy zD1{k4%_=LSAx9R>UeF}?Zair%zq0S)z86?edat%>wrJn%1@r{a2eUv+v8NBQ{sI#t zlsa!|aGb73x^hA%fd3c?!2`w&RHibo$+K3Bl+t6^d*Pun-qszr<0)e34`K zlN@QL4=KrDa&r0KlSfklQ{F(Up}(`J4fxwmzGt$9uCN5-{G4_PeX&)2HR`Ti=ohRX zyH0%)uTkJPX%X$A$~a3-*coE_{CI++IjL}_1sYoC3aBN1CA}8h{0dJqzqtC%vH#t6KIvw2h`PnuZi?tNcdeyjW$Eq$yuCQeARqt(VFPFmK+H+ z_HeN|zFxp?h;eDRYFl^lc|&fcU{uxx`L5ls%9YD#L(uDq55NnQCW1={Ng`d)I5bS0jf2U3weX!Y#0h1>>g;Dj0K!fkN1R<`uE@P!*m)&==5iEI3lo zUgzTjRFx@Hrd+C((8n)bGi`sv zQsbr6zdEc6jb033S_@a1*<%dakTkbXdl5yt=)~?+L=9P*YFz^I)wf;o!mNUxmhUjM z^|UkT&pv2kfd;U=Jr2$|-;0QXbPrbu(LT^G zjB$m5&20_4VJ(DRbAZ-!>XWKajK#1)#$e@R;JN*k#AQ|${`O^STUvZ{F0zX9eev{J znqiM4{f2yr%VaJ5cxZ3tN^o#`snf(~;=J^P=$ThrR}7S|;OoKFwA+t-4FdDND?enuoph7wdywIB^iW#* zVLH=0-`3D5UEw)DL2Ss|#4-0_C5yOiPQ%#Ga?eZ7^Tvz~0g59yDMA(j>oF^*fh7&o z$U7r89GdZiPzy!C6^J(p_=L#4s+A;`tSC!0Og+hxh2*u7rTsv$vnbRP9Vjwz1&@(1mFMVth{0ut!lXw?d25^bm+A1ok6w^J zN}*w}!3(8YAaFzdWMd4=z^th>0J9Fyft>2B@nrEA5T2L~v~~rdE_(U%9%F5$SXw;E zoOHSH_B_E5EE&n5(9$kKDA%oo;qlN%Zh$(SrFcnuE+)YC&iORu)Kof%n?|_)dKIc@NBNK{+z}bDj z%a&DL1ux{L(~hxZivheR?#mv4(e%sy+e)ANuVSOc;(E=>DE9AG4+^Tvq)&Lf0YHmO zdw)c%D_`>>(*BwN{T+D%TrZLXtp8W`U#OdC#@FRq6Jp zu!Xa-o94ga*3^4R->bpo&iC zELEa9TOHPBx~2;GUT;z*nv+$BJ;)P`xmGEK9&6k8teThQ-QZIx@|M|Zi`;YQ5*mi7 z1hSs{TV(9$fmxfTu`dOypM69MHXp}tc>dAdKHniwZ%8oWCjrbco_GygShY}-0NV;8 zg4v0cJQ4bPnKGpZN(I#h==}+xx1S?GZ-!e2v2?>+OVotz=iNb3~wvr-C)cQAfRwGIN0IF zt{&n6^>B6VllnP=O~Bg8VCxwe;J2Wf`_9tFVMq3dFI&e>MQKvP^NFm9mkRs+?zBGg zlcB$Lwfo`;ZR z9mXMlY;NPkdi^6TLBDmnJmC|EA{P7@vtuIIQG<-YA!3Yy+>JWt9&>@NpezYtExoS$ zH~>)MgJ)@`ah`DDs$hH+eS4CieNu^0E#It`&jc%$GHbh?+d*cyBGjII1(y*t$^OM< zQ`AcaYlYBSPT){cpn}>hg%r(=j^|B+Gd@oDs?ZSeo&2uw@$W)R&J7`OE!ZQ}4VG!c zRbMhI+U~-W6}R`FXsI&Z${K1zh)SOVA9rNZ?3541+wkc$e0`&7`8h@zW^hs7)ii}M z0M?D@2(C>sU3{QBTD?C^=|C*mMuU69wn=uQCnH4*yJ( z_X+K??_mH88vEba@dKcX1QNsEr6Ea>vu&;X4D95z2|5(ex%1RG`MjU$6K8*KaZIj65baq3gW7h(@=`6R?}VnM*>U&Q&IMx!tO z07bw0kS~ymz+4SDd76oRKzO;%UV`6o+xMxM;ui`N!T*)o?G}8vEzFGbyR2uJVN_N_ z%x0K%d|Q|tHkf$>^?AnQ1TE)mz_7*T#-fTn?Ms&jN3J$B+|(pJvlsKmyw)lKCy`Os zt5bggDjt%Nii)>mNN-flojKBTf9&UfvsQE*&TuVNhPy^RFHD~6E z>T6~uoq`QQ8=x7g$(OU|HF!1;muV93Q~>j^?Q2duLu=o@0m02u(eRBdal1Ps?E&WK z*z0D7uFBdW51LM4@<$mK7EMGiJG#~s9nI!ED3bB9m+jRXtYMJbZ?PGjwKrD@E5m(AnU77Cw^bu3k)&b2;yD$4}7reT^c- zR`@T)PdQ=qS_=6KDa=Y|HK>x=z2vVHLFP-7fSLz3@*=4@`V+Fy*n+q-{Qba$6*)dO z2zsq+L)VJvcZn4cE3L;R<)mHZqyvEAs=YYxwuO*(qrqV|xS5uCvN*KcZ_?PrdFe_1 zy`@6F+A7()V3z~{(uX&O{_8n41Tv(YSc3VRTJi~F+NS0q4z}iPPC}`aFz|-(Ews zv`N)`U)LDQu*{~|5E&o7S>xXB?nBD^?f&m0m{;5Eh;E!fAVcrx$X-3E9CTzDs-O8^ zG4W94VA+^t2d2TTjEf4Mk| z_q*Kc1*(GH{61-=E|PqN&lb-MfmZxgD>IPZafxH3-skch`VnbAl2p8Q-ZwZIr&1?2 z5Apz=k4k&;UBB!vF{gqIwcJ7F6!(SW$<>nX>FmDC2@+^Qew%Tq|0n&Vl!%cf^~WgP z{b|WknK#)m%Pyvg14DE2cOQ={pp|>mr8Dr>BlS&m&M>dxIqXcf@jzX|2t!^cL}g(6 zF|l84IXEl#)*Q#8BFyv>bXxK~hdGz;-z&p*kf5hKlj*y-Ei_(v%_RAy;@P(apI?>N zk&QjcNbxHEN>M51NB*+gk$~vzK%M;+1N^qz4$YOWpmcIGPWhsx zlX_jq<$Xc^x;%YP;*1<6TRb_A|J+(2Q3v6S0eqES{|Rs_Is*m`g)M12`9_{f?r5?g&RCys-`dl zcI5ko!{&xU;>1R<{xYYhBLRwY+J5|eAr7~mZ9#026WIg#{*)T=bGc9)0~P`&2jXRB)=Sa z{BU!86cBNxt9bW16=qbb@dGg*l=6Y+rao40mrw8bbEy7j7XSD@n#EBcqWzOJ`O{c* z4DLNnm)06rJo$gx`j71I`UJZ(c<;IXTU}D&|Ew8uYNLSoy3C3dUC4Fx6)6-?UV#l% z!@<+4Pcy}r`a4zaiOpghKLjN=&l@M@et-IQdAQoa0;6;K*no_W{olqQF`9`N4zpoX zm9(A-WeSMd{nZz&5Ylu0lfw~6yJAk{?m#KjAb9q_1Ylt@vcN^8Wq&_kTloE0TgY3Wfy1bF zD1iuWo#@F^B7o`s3!pyHmq4SZ;4bQm$>u?BPbPLX-^6>p)Jx+lx0btR{Tig#Yj>Et zevtbb5H@`6@rnKRXUgFW&lVCi2Hrrcbo{=O8Yh2=)f8wcv<4pGjW9adAmeA|dQ{%3 zI`wWXpIP?jhuuDtcl$+hr=4+itp7%(M1+0m8Ac3NFLG8bJ!9gF|&ldji8$d(#Ql4iE zgfuy!i}olz(%~wCGt+X#=dV5}O$-hXokA5PDGAu(lib&?S|8GXOw3Sr5E{mm7Ge9u z^+1!MUGtw!PtNM?O;=j1KHbEuuAE$Yr;P!l=dujvCF(8^;zV~z-x4(okV^#aO5uZ5 zxw{sQzr%nrK<7|=8Z z7ZQ5n+L#xTQt==?|1z_g1{k83X0o64RlU9cUDS`ID-Xi|Mzgyd*_+mz79RgwK7N>* z?J55&feO9u*Y~>7|CWlsJ-z|F0rCI&vE}qPf%3pRpB_Yt&A*L2EuQZD_(bc@1sKlw zCfh3+i)|o}1);+o51&Hv0Q%szKy zo&wd8|IHvS%p9SX{@_VqWfYAb?e?f$wImSz)cEgl>zd)+1j&5e1^)8b$Bg}ptZ`3& zTKxj9v}MBnE%lye0&|fgt2ysS{#|3Yxx#G}&$!QaC-9$mLnRJ{R7S)d#S6Kb*miOT zy=A$@)ck6xk6p|?OYna$r+ilUIXM(n{3Wq9F&>`1@N-Qjc^P*RYyAdP&P5)gx7AsB z9k&1^AT@n}SyCeY>~1(OtNmw|yIG(FCx6V_TZ*kmG8{DW`gW?_#3F#<2(QM|Q*?Bq z_22OAaq;jZIWb|&$n?_qh#Rqt^F|5CZxy8rW;A3Xu1p}BA?zr90!>8s#FV2FSgGCX zVxJe8Q8qA^X=cifiW%0l;1ANZ{JcQ89Ard3kwv!;-#S>}Y<-2s|u#nr)}5U3Srw^~CBwX~rd>THa0p zZjPSnDd+OxBsTJHPNT*A#7q!aCpqR;d6uWJ_Cf+szK6p1@MWCjn8YzVf4`zP<*f8}Sv~|~?;J#(i2>=QcFOgN*AjcJ{^eY?KteNg5DaP>r@tqc* z*UnO?p|2WlJXMv38~4n%(@k!fel=;w(y>?@MBYa}+RXF0pj}5DyzlKPAF1 zy=CxCBQc(q+n^fdiz!@xu~Sch0io>(E@W;G{bZ;{D)6~%H{S5IsTZu_U5my<5ziJ< z3h|7OZZ1YdZ@G}F$xD>+75CDe+M@N-r)8>-wUGa2P)v)zowy}e)>AqUJnx2MtY16D z`VA-WxY(2aatcJALb#f>fZj(+TIc~}^tdRXu2md+$L}T0<(cOz&!qQ`Od7U&%1jnX zFRL2>-K>YXDzsWD;w@BWSpXuw7Z7GkVBG$&i}&D7u#6uknL}c|YV?G(E7Lc92o)hV z$obO>Zvp4YeIu@fU1j?}Q7VqCsxbS{Or3`mtSP=%wnWqv0ctjk&{#N0p7L?Dl^xeq z)|SF5!{hV>1QlEH`J8;l=fka8+TAM$|8tH%RDe9^d?)a)iYL#L?M*+RP5I42#x`!C2B%a8&LsYOmSfS@^K|U$CdewC8Qpcdn`Y$ zQrKs7(gfu~q5NG2YRZ)?(Q)M_#_hnssCM&jp^qlIh=1qJhp~b)N=6$nUuckKP4)M8 zeIG0{+!EW$y!1MI;|eZ&Ve(tt4VaE3m>1B$Ml(;O9~YcV-Hn7+gKwVzf+wxlh;=eY zXhf2s#r=Ajl@s31;gq#EMG!Y!l%O?X)vq@^T9xGJb zB4#Ff5qfb{sihR0Rj5lCN)MKh%mxfJFR19~enKV9T5b$QT8tJt8hG4+9s1zCKz|U? zV{o$SrNd8CbD|AgL#f9=G!F-ax~ikg&#`UgcH2DU2`ImfnwzfHbCzP&2TXOfZFzeW zmn-bkxEtRCP_im@8vpqe*)i^eO*3*OHQLp$NpDVSXi0`2s#P#Z(A2y=CS`e1hYmdL z+xWQjYXn@0BS)(N?6k{JoSOp}`>@9>YHh>(DMAx1?oBaJ0sW5N8IYKPSx

VWY6P22xEkp9t=KuTuv$` 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%0DNXAzK2=zfN<$Nt%5$fzawNghqIBaj0wV- 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 D`!Nq6 literal 0 HcmV?d00001 diff --git a/day03-global-shotcut/index.html b/day03-global-shotcut/index.html new file mode 100644 index 0000000..f43d276 --- /dev/null +++ b/day03-global-shotcut/index.html @@ -0,0 +1,11 @@ + + + + + 全局快捷键 + + +

全局快捷键

+ + + \ No newline at end of file diff --git a/day03-global-shotcut/index.js b/day03-global-shotcut/index.js new file mode 100644 index 0000000..4d15c24 --- /dev/null +++ b/day03-global-shotcut/index.js @@ -0,0 +1,3 @@ +window.onload = () => { + +} \ No newline at end of file diff --git a/day03-global-shotcut/main.js b/day03-global-shotcut/main.js new file mode 100644 index 0000000..1c23bda --- /dev/null +++ b/day03-global-shotcut/main.js @@ -0,0 +1,44 @@ +const { app, BrowserWindow, globalShortcut } = require('electron') + +const createWindow = () => { + let mainWin = new BrowserWindow({ + width: 800, + height: 400, + show: false, + webPreferences: { + enableRemoteModule: true, + nodeIntegration: true + } + }) + + mainWin.loadFile('index.html') + mainWin.on('ready-to-show', mainWin.show) + mainWin.on('close', () => { + mainWin = null + }) +} + +app.on('ready', createWindow) + +app.on('ready', () => { + // 注册 + let ret = globalShortcut.register('ctrl + q', () => { + console.log("快捷键注册成功") + }) + + if (!ret) { + console.log('注册失败') + } + + console.log(globalShortcut.isRegistered('ctrl + q')) + + console.log(ret, '~~~~~') + +}) + +app.on('will-quit', () => { + globalShortcut.unregister('ctrl + q') + globalShortcut.unregisterAll() +}) + +app.on('window-all-closed', app.quit) diff --git a/day03-global-shotcut/package-lock.json b/day03-global-shotcut/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day03-global-shotcut/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day03-global-shotcut/package.json b/day03-global-shotcut/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day03-global-shotcut/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day03-notification/c.png b/day03-notification/c.png new file mode 100644 index 0000000000000000000000000000000000000000..c5989e790fe7ebe3bfd23c3332c927925e8d9545 GIT binary patch literal 107252 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

VWY6P22xEkp9t=KuTuv$` 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%0DNXAzK2=zfN<$Nt%5$fzawNghqIBaj0wV- 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 D`!Nq6 literal 0 HcmV?d00001 diff --git a/day03-notification/index.html b/day03-notification/index.html new file mode 100644 index 0000000..1f48f18 --- /dev/null +++ b/day03-notification/index.html @@ -0,0 +1,12 @@ + + + + + 消息通知 + + +

基于 H5 实现消息通知

+ + + + \ No newline at end of file diff --git a/day03-notification/index.js b/day03-notification/index.js new file mode 100644 index 0000000..41a4569 --- /dev/null +++ b/day03-notification/index.js @@ -0,0 +1,17 @@ +window.onload = () => { + let oBtn = document.getElementById('btn') + + oBtn.addEventListener('click', () => { + let option = { + title: '啦啦啦', + body: 'ok,哈哈哈哈', + icon: 'c.png' + } + + let mayNotification = new window.Notification(option.title, option) + + mayNotification.onclick = () => { + alert("点击了消息页卡") + } + }) +} \ No newline at end of file diff --git a/day03-notification/main.js b/day03-notification/main.js new file mode 100644 index 0000000..45f6867 --- /dev/null +++ b/day03-notification/main.js @@ -0,0 +1,22 @@ +const { app, BrowserWindow } = require('electron') + +const createWindow = () => { + let mainWin = new BrowserWindow({ + width: 800, + height: 400, + show: false, + webPreferences: { + enableRemoteModule: true, + nodeIntegration: true + } + }) + + mainWin.loadFile('index.html') + mainWin.on('ready-to-show', mainWin.show) + mainWin.on('close', () => { + mainWin = null + }) +} + +app.on('ready', createWindow) +app.on('window-all-closed', app.quit) diff --git a/day03-notification/package-lock.json b/day03-notification/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day03-notification/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day03-notification/package.json b/day03-notification/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day03-notification/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +} diff --git a/day03-shell-and-iframe/index.html b/day03-shell-and-iframe/index.html new file mode 100644 index 0000000..20baded --- /dev/null +++ b/day03-shell-and-iframe/index.html @@ -0,0 +1,29 @@ + + + + + shell && iframe + + + + + + + + \ No newline at end of file diff --git a/day03-shell-and-iframe/index.js b/day03-shell-and-iframe/index.js new file mode 100644 index 0000000..f466401 --- /dev/null +++ b/day03-shell-and-iframe/index.js @@ -0,0 +1,27 @@ +const { shell, ipcRenderer } = require("electron") +const path = require('path') + +// window.onload = () => { +// // 1 获取元素 +// let oBtn1 = document.getElementById('openUrl') +// let oBtn2 = document.getElementById('openFolder') + +// oBtn1.addEventListener('click', (ev) => { +// ev.preventDefault() + +// let urlPath = oBtn1.getAttribute('href') + +// // 打开外部浏览器 +// shell.openExternal(urlPath) +// }) + +// oBtn2.addEventListener('click', () => { +// // 打开当前目录 +// shell.showItemInFolder(path.resolve(__filename)) +// }) +// } + +ipcRenderer.on('open', () => { + let iframe = document.getElementById('webview') + iframe.src = 'https://cantyonion.site/git/' +}) \ No newline at end of file diff --git a/day03-shell-and-iframe/main.js b/day03-shell-and-iframe/main.js new file mode 100644 index 0000000..721e269 --- /dev/null +++ b/day03-shell-and-iframe/main.js @@ -0,0 +1,45 @@ +const { app, BrowserWindow, shell, Menu } = require('electron') + +const createWindow = () => { + let mainWin = new BrowserWindow({ + width: 800, + height: 400, + show: false, + webPreferences: { + enableRemoteModule: true, + nodeIntegration: true + } + }) + + let tmp = [ + { + label: '菜单', + submenu: [ + { + label: '关于', + click() { + shell.openExternal('https://cantyonion.site') + } + }, + { + label: '打开', + click() { + BrowserWindow.getFocusedWindow().webContents.send('open') + } + }, + ] + } + ] + + let menu = Menu.buildFromTemplate(tmp) + Menu.setApplicationMenu(menu) + + mainWin.loadFile('index.html') + mainWin.on('ready-to-show', mainWin.show) + mainWin.on('close', () => { + mainWin = null + }) +} + +app.on('ready', createWindow) +app.on('window-all-closed', app.quit) diff --git a/day03-shell-and-iframe/package-lock.json b/day03-shell-and-iframe/package-lock.json new file mode 100644 index 0000000..98ee013 --- /dev/null +++ b/day03-shell-and-iframe/package-lock.json @@ -0,0 +1,1396 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-life-cycle", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmmirror.com/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/day03-shell-and-iframe/package.json b/day03-shell-and-iframe/package.json new file mode 100644 index 0000000..ec29896 --- /dev/null +++ b/day03-shell-and-iframe/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron-life-cycle", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "nodemon --watch main.js --exec npm run build", + "build": "electron ." + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "electron": "^11.2.1", + "nodemon": "^3.1.9" + } +}