diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..267b326
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,19 @@
+node_modules
+out/
+logs/
+run/
+.idea/
+data/
+.vscode/launch.json
+public/electron/
+pnpm-lock.yaml
+.yalc/
+yalc.lock
+go/public/
+go/go.sum
+build/extraResources/java-app.jar
+build/extraResources/jre1.8.0_201/
+python/.venv/
+python/*.spec
+python/build/
+python/dist/
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..968e0d8
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 安徽烁景智能科技有限公司
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/README.zh-CN.md b/README.zh-CN.md
new file mode 100644
index 0000000..2701687
--- /dev/null
+++ b/README.zh-CN.md
@@ -0,0 +1,173 @@
+# EE框架 v3
+[](https://gitee.com/dromara/electron-egg/stargazers)
+
+
+
+
+
+
+
一个入门简单、跨平台、企业级桌面软件开发框架
+
+
+
+## 🌏 [English](https://www.yuque.com/u34495/ee-doc) | [中文](https://www.kaka996.com/)
+
+## 📋 介绍
+- 🍩 **为什么使用?** 桌面软件(办公方向、 个人工具),仍然是未来十几年PC端需求之一,提高工作效率
+- 🍉 **简单:** 只需懂 JavaScript
+- 🍑 **愿景:** 所有开发者都能学会桌面软件研发
+- 🍰 **gitee:** https://gitee.com/dromara/electron-egg **4100+**
+- 🍨 **github:** https://github.com/dromara/electron-egg **1200+**
+- 🏆 码云最有价值开源项目
+ 
+
+## 📚 文档
+- [教程文档](https://www.kaka996.com/)
+
+## 📦 特性
+1. 🍄 跨平台:一套代码,可以打包成windows版、Mac版、Linux版、国产UOS、Deepin、麒麟等
+2. 🌹 架构:单业务进程/模块化/多任务(进程,线程,渲染进程),让开发大型项目变的简单。
+3. 🌱 简单高效:只需学习 js 语言
+4. 🌴 前端独立:理论上支持任何前端技术,如:vue、react、html等等
+5. 🍁 工程化:可以用前端、服务端的开发思维,来编写桌面软件
+6. 🌷 高性能:事件驱动、非阻塞式IO
+7. 🌰 功能丰富:配置、通信、插件、数据库、升级、打包、工具... 应有尽有
+8. 💐 安全:支持字节码加密、压缩混淆加密
+9. 🌻 功能demo:桌面软件常见功能,框架集成或提供demo
+
+## ✈️ 使用场景
+
+### 1. 🚀 常规桌面软件
+- 🚖 windows平台
+
+ 
+
+- 🚍 macOS平台
+ 
+
+- 🚔 linux平台 - 国产UOS、Deepin
+ 
+
+- 🚔 linux平台 - ubuntu
+ 
+
+### 🚐 2. vue、react、angular、web 转换成桌面软件
+- 🚙 vue-ant-design(本地)
+
+ 
+
+- 🚙 禅道项目管理(web项目地址)
+
+ 
+
+### 🚂 3. 游戏(h5相关技术开发)
+- 🚊 忍者100层
+
+ 
+
+
+## 📒 开始使用
+
+- ✒️ [安装文档](https://www.kaka996.com/pages/e64ff6/)
+
+## 🐶 项目案例
+- 🐟 EE框架已经应用于医疗、学校、政务、股票交易、ERP、娱乐、视频、企业等领域客户端
+
+- 🐸 英雄联盟助手
+ 
+
+- [更多项目](https://www.kaka996.com/pages/eadf46/)
+
+## 💬 交流
+1. [讨论](https://www.kaka996.com/pages/c2720e/)
+
+## 📌 关于pr
+请前往[GitHub项目](https://github.com/dromara/electron-egg)提pr(避免代码同步后,pr被覆盖掉),感谢!
+
+地址:https://github.com/dromara/electron-egg
+
+## 📔 框架核心包 ee-core
+ee-core:[https://github.com/wallace5303/ee-core](https://github.com/wallace5303/ee-core)
+
+## 📚 Dromara 成员项目
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/extraResources/NirCmd.chm b/build/extraResources/NirCmd.chm
new file mode 100644
index 0000000..52af31f
Binary files /dev/null and b/build/extraResources/NirCmd.chm differ
diff --git a/build/extraResources/config.json b/build/extraResources/config.json
new file mode 100644
index 0000000..17df0ba
--- /dev/null
+++ b/build/extraResources/config.json
@@ -0,0 +1,5 @@
+{
+ "deviceId":"A0-29-42-42-F6-3F",
+ "deviceType":1,
+ "deptId":101
+}
\ No newline at end of file
diff --git a/build/extraResources/dll/myDllDemo.dll b/build/extraResources/dll/myDllDemo.dll
new file mode 100644
index 0000000..ffd5446
Binary files /dev/null and b/build/extraResources/dll/myDllDemo.dll differ
diff --git a/build/extraResources/nircmd.exe b/build/extraResources/nircmd.exe
new file mode 100644
index 0000000..5d575ff
Binary files /dev/null and b/build/extraResources/nircmd.exe differ
diff --git a/build/extraResources/nircmdc.exe b/build/extraResources/nircmdc.exe
new file mode 100644
index 0000000..847c69a
Binary files /dev/null and b/build/extraResources/nircmdc.exe differ
diff --git a/build/extraResources/read.txt b/build/extraResources/read.txt
new file mode 100644
index 0000000..9417ffd
--- /dev/null
+++ b/build/extraResources/read.txt
@@ -0,0 +1,5 @@
+建议第三方软件放置在此目录中,打包时会将资源加入安装包内。
+
+1 config.json 放一个配置文件, 可以读取,
+ 手动设置设备的唯一id
+ 设备类型
diff --git a/build/icons/128x128.png b/build/icons/128x128.png
new file mode 100644
index 0000000..56b37e1
Binary files /dev/null and b/build/icons/128x128.png differ
diff --git a/build/icons/16x16.png b/build/icons/16x16.png
new file mode 100644
index 0000000..fc40055
Binary files /dev/null and b/build/icons/16x16.png differ
diff --git a/build/icons/256x256.png b/build/icons/256x256.png
new file mode 100644
index 0000000..89c31a1
Binary files /dev/null and b/build/icons/256x256.png differ
diff --git a/build/icons/32x32.png b/build/icons/32x32.png
new file mode 100644
index 0000000..c92cb13
Binary files /dev/null and b/build/icons/32x32.png differ
diff --git a/build/icons/48x48.png b/build/icons/48x48.png
new file mode 100644
index 0000000..a85fc93
Binary files /dev/null and b/build/icons/48x48.png differ
diff --git a/build/icons/512x512.png b/build/icons/512x512.png
new file mode 100644
index 0000000..4cb6d92
Binary files /dev/null and b/build/icons/512x512.png differ
diff --git a/build/icons/64x64.png b/build/icons/64x64.png
new file mode 100644
index 0000000..0d76ebb
Binary files /dev/null and b/build/icons/64x64.png differ
diff --git a/build/icons/favicon.ico b/build/icons/favicon.ico
new file mode 100644
index 0000000..febdc21
Binary files /dev/null and b/build/icons/favicon.ico differ
diff --git a/build/icons/icon.icns b/build/icons/icon.icns
new file mode 100644
index 0000000..aa79460
Binary files /dev/null and b/build/icons/icon.icns differ
diff --git a/build/icons/icon.ico b/build/icons/icon.ico
new file mode 100644
index 0000000..2599623
Binary files /dev/null and b/build/icons/icon.ico differ
diff --git a/build/icons/icon.png b/build/icons/icon.png
new file mode 100644
index 0000000..cb2b380
Binary files /dev/null and b/build/icons/icon.png differ
diff --git a/build/script/installer.nsh b/build/script/installer.nsh
new file mode 100644
index 0000000..e69de29
diff --git a/electron/addon/autoUpdater/index.js b/electron/addon/autoUpdater/index.js
new file mode 100644
index 0000000..63baf58
--- /dev/null
+++ b/electron/addon/autoUpdater/index.js
@@ -0,0 +1,170 @@
+const { app: electronApp } = require('electron');
+const { autoUpdater } = require("electron-updater");
+const is = require('ee-core/utils/is');
+const Log = require('ee-core/log');
+const Conf = require('ee-core/config');
+const CoreWindow = require('ee-core/electron/window');
+const Electron = require('ee-core/electron');
+
+/**
+ * 自动升级插件
+ * @class
+ */
+class AutoUpdaterAddon {
+
+ constructor() {
+ }
+
+ /**
+ * 创建
+ */
+ create () {
+ Log.info('[addon:autoUpdater] load');
+ const cfg = Conf.getValue('addons.autoUpdater');
+ if ((is.windows() && cfg.windows)
+ || (is.macOS() && cfg.macOS)
+ || (is.linux() && cfg.linux))
+ {
+ // continue
+ } else {
+ return
+ }
+
+ // 是否检查更新
+ if (cfg.force) {
+ this.checkUpdate();
+ }
+
+ const status = {
+ error: -1,
+ available: 1,
+ noAvailable: 2,
+ downloading: 3,
+ downloaded: 4,
+ }
+
+ const version = electronApp.getVersion();
+ Log.info('[addon:autoUpdater] current version: ', version);
+
+ // 设置下载服务器地址
+ let server = cfg.options.url;
+ let lastChar = server.substring(server.length - 1);
+ server = lastChar === '/' ? server : server + "/";
+ //Log.info('[addon:autoUpdater] server: ', server);
+ cfg.options.url = server;
+
+ // 是否后台自动下载
+ autoUpdater.autoDownload = cfg.force ? true : false;
+
+ try {
+ autoUpdater.setFeedURL(cfg.options);
+ } catch (error) {
+ Log.error('[addon:autoUpdater] setFeedURL error : ', error);
+ }
+
+ autoUpdater.on('checking-for-update', () => {
+ //sendStatusToWindow('正在检查更新...');
+ })
+ autoUpdater.on('update-available', (info) => {
+ info.status = status.available;
+ info.desc = '有可用更新';
+ this.sendStatusToWindow(info);
+ })
+ autoUpdater.on('update-not-available', (info) => {
+ info.status = status.noAvailable;
+ info.desc = '没有可用更新';
+ this.sendStatusToWindow(info);
+ })
+ autoUpdater.on('error', (err) => {
+ let info = {
+ status: status.error,
+ desc: err
+ }
+ this.sendStatusToWindow(info);
+ })
+ autoUpdater.on('download-progress', (progressObj) => {
+ let percentNumber = parseInt(progressObj.percent);
+ let totalSize = this.bytesChange(progressObj.total);
+ let transferredSize = this.bytesChange(progressObj.transferred);
+ let text = '已下载 ' + percentNumber + '%';
+ text = text + ' (' + transferredSize + "/" + totalSize + ')';
+
+ let info = {
+ status: status.downloading,
+ desc: text,
+ percentNumber: percentNumber,
+ totalSize: totalSize,
+ transferredSize: transferredSize
+ }
+ Log.info('[addon:autoUpdater] progress: ', text);
+ this.sendStatusToWindow(info);
+ })
+ autoUpdater.on('update-downloaded', (info) => {
+ info.status = status.downloaded;
+ info.desc = '下载完成';
+ this.sendStatusToWindow(info);
+
+ // 托盘插件默认会阻止窗口关闭,这里设置允许关闭窗口
+ Electron.extra.closeWindow = true;
+
+ autoUpdater.quitAndInstall();
+ // const mainWindow = CoreWindow.getMainWindow();
+ // if (mainWindow) {
+ // mainWindow.destroy()
+ // }
+ // electronApp.appQuit()
+ });
+ }
+
+ /**
+ * 检查更新
+ */
+ checkUpdate () {
+ autoUpdater.checkForUpdates();
+ }
+
+ /**
+ * 下载更新
+ */
+ download () {
+ autoUpdater.downloadUpdate();
+ }
+
+ /**
+ * 向前端发消息
+ */
+ sendStatusToWindow(content = {}) {
+ const textJson = JSON.stringify(content);
+ const channel = 'app.updater';
+ const win = CoreWindow.getMainWindow();
+ win.webContents.send(channel, textJson);
+ }
+
+ /**
+ * 单位转换
+ */
+ bytesChange (limit) {
+ let size = "";
+ if(limit < 0.1 * 1024){
+ size = limit.toFixed(2) + "B";
+ }else if(limit < 0.1 * 1024 * 1024){
+ size = (limit/1024).toFixed(2) + "KB";
+ }else if(limit < 0.1 * 1024 * 1024 * 1024){
+ size = (limit/(1024 * 1024)).toFixed(2) + "MB";
+ }else{
+ size = (limit/(1024 * 1024 * 1024)).toFixed(2) + "GB";
+ }
+
+ let sizeStr = size + "";
+ let index = sizeStr.indexOf(".");
+ let dou = sizeStr.substring(index + 1 , index + 3);
+ if(dou == "00"){
+ return sizeStr.substring(0, index) + sizeStr.substring(index + 3, index + 5);
+ }
+
+ return size;
+ }
+}
+
+AutoUpdaterAddon.toString = () => '[class AutoUpdaterAddon]';
+module.exports = AutoUpdaterAddon;
\ No newline at end of file
diff --git a/electron/addon/awaken/index.js b/electron/addon/awaken/index.js
new file mode 100644
index 0000000..e4c8a35
--- /dev/null
+++ b/electron/addon/awaken/index.js
@@ -0,0 +1,67 @@
+const { app: electronApp } = require('electron');
+const Log = require('ee-core/log');
+const Conf = require('ee-core/config');
+
+/**
+ * 唤醒插件
+ * @class
+ */
+class AwakenAddon {
+
+ constructor() {
+ this.protocol = '';
+ }
+
+ /**
+ * 创建
+ */
+ create () {
+ Log.info('[addon:awaken] load');
+
+ const cfg = Conf.getValue('addons.awaken');
+ this.protocol = cfg.protocol;
+
+ electronApp.setAsDefaultProtocolClient(this.protocol);
+
+ this.handleArgv(process.argv);
+ electronApp.on('second-instance', (event, argv) => {
+ if (process.platform === 'win32') {
+ this.handleArgv(argv)
+ }
+ })
+
+ // 仅用于macOS
+ electronApp.on('open-url', (event, urlStr) => {
+ this.handleUrl(urlStr)
+ })
+ }
+
+ /**
+ * 参数处理
+ */
+ handleArgv(argv) {
+ const offset = electronApp.isPackaged ? 1 : 2;
+ const url = argv.find((arg, i) => i >= offset && arg.startsWith(this.protocol));
+ this.handleUrl(url)
+ }
+
+ /**
+ * url解析
+ */
+ handleUrl(awakeUrlStr) {
+ if (!awakeUrlStr || awakeUrlStr.length === 0) {
+ return
+ }
+ const {hostname, pathname, search} = new URL(awakeUrlStr);
+ let awakeUrlInfo = {
+ urlStr: awakeUrlStr,
+ urlHost: hostname,
+ urlPath: pathname,
+ urlParams: search && search.slice(1)
+ }
+ Log.info('[addon:awaken] awakeUrlInfo:', awakeUrlInfo);
+ }
+}
+
+AwakenAddon.toString = () => '[class AwakenAddon]';
+module.exports = AwakenAddon;
\ No newline at end of file
diff --git a/electron/addon/chromeExtension/index.js b/electron/addon/chromeExtension/index.js
new file mode 100644
index 0000000..28ec636
--- /dev/null
+++ b/electron/addon/chromeExtension/index.js
@@ -0,0 +1,94 @@
+const { app, session } = require('electron');
+const _ = require('lodash');
+const fs = require('fs');
+const path = require('path');
+const Log = require('ee-core/log');
+
+/**
+ * 扩展插件 (electron自身对该功能并不完全支持,官方也不建议使用)
+ * @class
+ */
+class ChromeExtensionAddon {
+
+ constructor() {
+ }
+
+ /**
+ * 创建
+ */
+ async create () {
+ Log.info('[addon:chromeExtension] load');
+
+ const extensionIds = this.getAllIds();
+ for (let i = 0; i < extensionIds.length; i++) {
+ await this.load(extensionIds[i]);
+ }
+ }
+
+ /**
+ * 获取扩展id列表(crx解压后的目录名,即是该扩展的id)
+ */
+ getAllIds () {
+ const extendsionDir = this.getDirectory();
+ const ids = this.getDirs(extendsionDir);
+
+ return ids;
+ }
+
+ /**
+ * 扩展所在目录
+ */
+ getDirectory () {
+ let extensionDirPath = '';
+ let variablePath = 'build'; // 打包前路径
+ if (app.isPackaged) {
+ variablePath = '..'; // 打包后路径
+ }
+ extensionDirPath = path.join(app.getAppPath(), variablePath, "extraResources", "chromeExtension");
+
+ return extensionDirPath;
+ }
+
+ /**
+ * 加载扩展
+ */
+ async load (extensionId = '') {
+ if (_.isEmpty(extensionId)) {
+ return false
+ }
+
+ try {
+ const extensionPath = path.join(this.getDirectory(), extensionId);
+ Log.info('[addon:chromeExtension] extensionPath:', extensionPath);
+ await session.defaultSession.loadExtension(extensionPath, { allowFileAccess: true });
+ } catch (e) {
+ Log.info('[addon:chromeExtension] load extension error extensionId:%s, errorInfo:%s', extensionId, e.toString());
+ return false
+ }
+
+ return true
+ }
+
+ /**
+ * 获取目录下所有文件夹
+ */
+ getDirs(dir) {
+ if (!dir) {
+ return [];
+ }
+
+ const components = [];
+ const files = fs.readdirSync(dir);
+ files.forEach(function(item, index) {
+ const stat = fs.lstatSync(dir + '/' + item);
+ if (stat.isDirectory() === true) {
+ components.push(item);
+ }
+ });
+
+ return components;
+ };
+}
+
+ChromeExtensionAddon.toString = () => '[class ChromeExtensionAddon]';
+module.exports = ChromeExtensionAddon;
\ No newline at end of file
diff --git a/electron/addon/security/index.js b/electron/addon/security/index.js
new file mode 100644
index 0000000..4d87e94
--- /dev/null
+++ b/electron/addon/security/index.js
@@ -0,0 +1,33 @@
+const Log = require('ee-core/log');
+const EE = require('ee-core/ee');
+
+/**
+ * 安全插件
+ * @class
+ */
+class SecurityAddon {
+
+ constructor() {
+ }
+
+ /**
+ * 创建
+ */
+ create () {
+ Log.info('[addon:security] load');
+ const { CoreApp } = EE;
+ const runWithDebug = process.argv.find(function(e){
+ let isHasDebug = e.includes("--inspect") || e.includes("--inspect-brk") || e.includes("--remote-debugging-port");
+ return isHasDebug;
+ })
+
+ // 不允许远程调试
+ if (runWithDebug) {
+ Log.error('[error] Remote debugging is not allowed, runWithDebug:', runWithDebug);
+ CoreApp.appQuit();
+ }
+ }
+}
+
+SecurityAddon.toString = () => '[class SecurityAddon]';
+module.exports = SecurityAddon;
\ No newline at end of file
diff --git a/electron/addon/tray/index.js b/electron/addon/tray/index.js
new file mode 100644
index 0000000..45bf3a2
--- /dev/null
+++ b/electron/addon/tray/index.js
@@ -0,0 +1,85 @@
+const { Tray, Menu, app ,BrowserWindow} = require('electron');
+const path = require('path');
+const Ps = require('ee-core/ps');
+const Log = require('ee-core/log');
+const Electron = require('ee-core/electron');
+const CoreWindow = require('ee-core/electron/window');
+const Conf = require('ee-core/config');
+const EE = require('ee-core/ee');
+
+/**
+ * 托盘插件
+ * @class
+ */
+class TrayAddon {
+
+ constructor() {
+ this.tray = null;
+ }
+
+ /**
+ * 创建托盘
+ */
+ create () {
+ // 开发环境,代码热更新开启时,会导致托盘中有残影
+ if (Ps.isDev() && Ps.isHotReload()) return;
+
+ Log.info('[addon:tray] load');
+ const { CoreApp } = EE;
+ const cfg = Conf.getValue('addons.tray');
+ const mainWindow = CoreWindow.getMainWindow();
+
+ // 托盘图标
+ let iconPath = path.join(Ps.getHomeDir(), cfg.icon);
+
+ // 托盘菜单功能列表
+ let trayMenuTemplate = [
+ {
+ label: '显示',
+ click: function () {
+ mainWindow.show();
+ }
+ },
+ {
+ label: '退出',
+ click: function () {
+ console.log('exit click 事件')
+ // CoreApp.appQuit();
+ app.quit()
+ }
+ }
+ ]
+
+ // 点击关闭,最小化到托盘 这里要是阻止关闭就完全无法关闭了
+ mainWindow.on('close', (event) => {
+ console.log('close 事件')
+ console.log(event.sender)
+ // if (Electron.extra.closeWindow == true) {
+ // return;
+ // }
+ // mainWindow.hide();
+ // 禁止关闭
+ // event.preventDefault();
+ //todo: 这个变量控制的方法来区分是否退出 还是不退出
+ if(global.isUserExit == false){
+ event.preventDefault();
+ }else{
+ app.quit()
+ }
+
+ });
+
+ // 实例化托盘
+ this.tray = new Tray(iconPath);
+ this.tray.setToolTip(cfg.title);
+ const contextMenu = Menu.buildFromTemplate(trayMenuTemplate);
+ this.tray.setContextMenu(contextMenu);
+ // 左键单击的时候能够显示主窗口
+ this.tray.on('click', () => {
+ mainWindow.show()
+ })
+ }
+}
+
+TrayAddon.toString = () => '[class TrayAddon]';
+module.exports = TrayAddon;
\ No newline at end of file
diff --git a/electron/config/bin.js b/electron/config/bin.js
new file mode 100644
index 0000000..54120aa
--- /dev/null
+++ b/electron/config/bin.js
@@ -0,0 +1,144 @@
+/**
+ * ee-bin 配置
+ * 仅适用于开发环境
+ */
+module.exports = {
+ /**
+ * development serve ("frontend" "electron" )
+ * ee-bin dev
+ */
+ dev: {
+ frontend: {
+ directory: './frontend',
+ cmd: 'npm',
+ args: ['run', 'dev'],
+ protocol: 'http://',
+ hostname: 'localhost',
+ port: 17680,
+ indexPath: 'index.html'
+ },
+ electron: {
+ directory: './',
+ cmd: 'electron',
+ args: ['.', '--env=local'],
+ loadingPage: '/public/html/loading.html',
+ }
+ },
+
+ /**
+ * 构建
+ * ee-bin build
+ */
+ build: {
+ frontend: {
+ directory: './frontend',
+ cmd: 'npm',
+ args: ['run', 'build'],
+ },
+ go_w: {
+ directory: './go',
+ cmd: 'go',
+ args: ['build', '-o=../build/extraResources/goapp.exe'],
+ },
+ go_m: {
+ directory: './go',
+ cmd: 'go',
+ args: ['build', '-o=../build/extraResources/goapp'],
+ },
+ go_l: {
+ directory: './go',
+ cmd: 'go',
+ args: ['build', '-o=../build/extraResources/goapp'],
+ },
+ python: {
+ directory: './python',
+ cmd: 'python',
+ args: ['./setup.py', 'build'],
+ },
+ },
+
+ /**
+ * 移动资源
+ * ee-bin move
+ */
+ move: {
+ frontend_dist: {
+ dist: './frontend/dist',
+ target: './public/dist'
+ },
+ go_static: {
+ dist: './frontend/dist',
+ target: './go/public/dist'
+ },
+ go_config: {
+ dist: './go/config',
+ target: './go/public/config'
+ },
+ go_package: {
+ dist: './package.json',
+ target: './go/public/package.json'
+ },
+ go_images: {
+ dist: './public/images',
+ target: './go/public/images'
+ },
+ python_dist: {
+ dist: './python/dist',
+ target: './build/extraResources/py'
+ },
+ },
+
+ /**
+ * 预发布模式(prod)
+ * ee-bin start
+ */
+ start: {
+ directory: './',
+ cmd: 'electron',
+ args: ['.', '--env=prod']
+ },
+
+ /**
+ * 加密
+ */
+ encrypt: {
+ type: 'confusion',
+ files: [
+ 'electron/**/*.(js|json)',
+ '!electron/config/encrypt.js',
+ '!electron/config/nodemon.json',
+ '!electron/config/builder.json',
+ '!electron/config/bin.json',
+ ],
+ fileExt: ['.js'],
+ confusionOptions: {
+ compact: true,
+ stringArray: true,
+ stringArrayEncoding: ['none'],
+ deadCodeInjection: false,
+ }
+ },
+
+ /**
+ * 执行自定义命令
+ * ee-bin exec
+ */
+ exec: {
+ node_v: {
+ directory: './',
+ cmd: 'node',
+ args: ['-v'],
+ },
+ npm_v: {
+ directory: './',
+ cmd: 'npm',
+ args: ['-v'],
+ },
+ python: {
+ directory: './python',
+ cmd: 'python',
+ args: ['./main.py', '--port=7074'],
+ stdio: "inherit", // ignore
+ },
+ },
+};
\ No newline at end of file
diff --git a/electron/config/builder.json b/electron/config/builder.json
new file mode 100644
index 0000000..93dd5fe
--- /dev/null
+++ b/electron/config/builder.json
@@ -0,0 +1,56 @@
+{
+ "productName": "appCtr",
+ "appId": "com.electron.appCtr",
+ "copyright": "© 2023 安徽烁景智能科技有限公司 Technology Co., Ltd.",
+ "directories": {
+ "output": "out"
+ },
+ "asar": true,
+ "files": [
+ "**/*",
+ "!frontend/",
+ "!run/",
+ "!logs/",
+ "!go/",
+ "!python/",
+ "!data/"
+ ],
+ "extraResources": {
+ "from": "build/extraResources/",
+ "to": "extraResources"
+ },
+ "nsis": {
+ "oneClick": false,
+ "allowElevation": true,
+ "allowToChangeInstallationDirectory": true,
+ "installerIcon": "build/icons/icon.ico",
+ "uninstallerIcon": "build/icons/icon.ico",
+ "installerHeaderIcon": "build/icons/icon.ico",
+ "createDesktopShortcut": true,
+ "createStartMenuShortcut": true,
+ "shortcutName": "appCtr"
+ },
+ "mac": {
+ "icon": "build/icons/icon.icns",
+ "artifactName": "${productName}-${os}-${version}-${arch}.${ext}",
+ "darkModeSupport": true,
+ "hardenedRuntime": false
+ },
+ "win": {
+ "icon": "build/icons/icon.ico",
+ "artifactName": "${productName}-${os}-${version}-${arch}.${ext}",
+ "target": [
+ {
+ "target": "nsis"
+ }
+ ]
+ },
+ "linux": {
+ "icon": "build/icons",
+ "artifactName": "${productName}-${os}-${version}-${arch}.${ext}",
+ "target": [
+ "deb"
+ ],
+ "category": "Utility"
+ }
+}
\ No newline at end of file
diff --git a/electron/config/config.default.js b/electron/config/config.default.js
new file mode 100644
index 0000000..f214b01
--- /dev/null
+++ b/electron/config/config.default.js
@@ -0,0 +1,215 @@
+'use strict';
+
+const path = require('path');
+
+/**
+ * 默认配置
+ */
+module.exports = (appInfo) => {
+
+ const config = {};
+
+ /**
+ * 开发者工具
+ */
+ config.openDevTools = true;
+
+ /**
+ * 应用程序顶部菜单
+ */
+ config.openAppMenu = true;
+
+ /**
+ * 主窗口
+ */
+ config.windowsOption = {
+ title: 'appCtr',
+ width: 980,
+ height: 650,
+ minWidth: 400,
+ minHeight: 300,
+ // 禁止缩小
+ resizable: false,
+ // 禁止最小化
+ minimizable: false,
+ webPreferences: {
+ //webSecurity: false,
+ contextIsolation: false, // false -> 可在渲染进程中使用electron的api,true->需要bridge.js(contextBridge)
+ nodeIntegration: true,
+ //preload: path.join(appInfo.baseDir, 'preload', 'bridge.js'),
+ },
+ frame: true,
+ show: false,
+ icon: path.join(appInfo.home, 'public', 'images', 'logo-32.png'),
+ };
+
+ /**
+ * ee框架日志
+ */
+ config.logger = {
+ encoding: 'utf8',
+ level: 'INFO',
+ outputJSON: false,
+ buffer: true,
+ enablePerformanceTimer: false,
+ rotator: 'day',
+ appLogName: 'appCtr.log',
+ coreLogName: 'appCtr-core.log',
+ errorLogName: 'appCtr-error.log'
+ }
+
+ /**
+ * 远程模式-web地址
+ */
+ config.remoteUrl = {
+ enable: false,
+ url: 'http://electron-egg.kaka996.com/'
+ };
+
+ /**
+ * 内置socket服务
+ */
+ config.socketServer = {
+ enable: false,
+ port: 7070,
+ path: "/socket.io/",
+ connectTimeout: 45000,
+ pingTimeout: 30000,
+ pingInterval: 25000,
+ maxHttpBufferSize: 1e8,
+ transports: ["polling", "websocket"],
+ cors: {
+ origin: true,
+ }
+ };
+
+ /**
+ * 内置http服务
+ */
+ config.httpServer = {
+ enable: false,
+ https: {
+ enable: false,
+ key: '/public/ssl/localhost+1.key',
+ cert: '/public/ssl/localhost+1.pem'
+ },
+ host: '127.0.0.1',
+ port: 7071,
+ cors: {
+ origin: "*"
+ },
+ body: {
+ multipart: true,
+ formidable: {
+ keepExtensions: true
+ }
+ },
+ filterRequest: {
+ uris: [
+ 'favicon.ico'
+ ],
+ returnData: ''
+ }
+ };
+
+ /**
+ * 主进程
+ */
+ config.mainServer = {
+ protocol: 'file://',
+ indexPath: '/public/dist/index.html',
+ host: '127.0.0.1',
+ port: 7072,
+ };
+
+
+ /**
+ * Cross-language service
+ * 跨语言服务
+ * 例如:执行go的二进制程序,默认目录为 ./extraResources/
+ */
+ config.cross = {
+ go: {
+ enable: false,
+ name: 'goapp',
+ args: ['--port=7073'],
+ appExit: true,
+ },
+ python: {
+ enable: false,
+ name: 'pyapp',
+ cmd: './py/pyapp',
+ directory: './py',
+ args: ['--port=7074'],
+ appExit: true,
+ },
+ };
+
+ /**
+ * 硬件加速
+ */
+ config.hardGpu = {
+ enable: true
+ };
+
+ /**
+ * 异常捕获
+ */
+ config.exception = {
+ mainExit: false,
+ childExit: true,
+ rendererExit: true,
+ };
+
+ /**
+ * jobs
+ */
+ config.jobs = {
+ messageLog: true
+ };
+
+ /**
+ * 插件功能
+ */
+ config.addons = {
+ window: {
+ enable: true,
+ },
+ tray: {
+ enable: true,
+ title: 'appCtr',
+ icon: '/public/images/tray.png'
+ },
+ security: {
+ enable: true,
+ },
+ awaken: {
+ enable: true,
+ protocol: 'appCtr',
+ args: []
+ },
+ autoUpdater: {
+ enable: true,
+ windows: false,
+ macOS: false,
+ linux: false,
+ options: {
+ provider: 'generic',
+ url: 'http://kodo.qiniu.com/'
+ },
+ force: false,
+
+ },
+ javaServer: {
+ enable: false,
+ port: 117680,
+ jreVersion: 'jre1.8.0_201',
+ opt: '-server -Xms512M -Xmx512M -Xss512k -Dspring.profiles.active=prod -Dserver.port=${port} -Dlogging.file.path="${path}" ',
+ name: 'java-app.jar'
+ }
+ };
+
+ return {
+ ...config
+ };
+}
diff --git a/electron/config/config.local.js b/electron/config/config.local.js
new file mode 100644
index 0000000..71649c8
--- /dev/null
+++ b/electron/config/config.local.js
@@ -0,0 +1,60 @@
+'use strict';
+
+/**
+ * 开发环境配置,覆盖 config.default.js
+ */
+module.exports = (appInfo) => {
+ const config = {};
+
+ /**
+ * 开发者工具
+ */
+ config.openDevTools = {
+ mode: 'undocked'
+ };
+
+ /**
+ * 应用程序顶部菜单
+ */
+ config.openAppMenu = true;
+
+ /**
+ * jobs
+ */
+ config.jobs = {
+ messageLog: true
+ };
+
+ /**
+ * Cross-language service
+ * 跨语言服务
+ * 如果有cmd参数,则执行该命令且需要指定 directory
+ */
+ config.cross = {
+ go: {
+ // 应用运行时启动
+ enable: false,
+ // 程序名
+ name: 'goapp',
+ // 可执行程序
+ cmd: 'go',
+ // 程序目录
+ directory: './go',
+ args: ['run', './main.go', '--env=dev','--basedir=../', '--port=7073'],
+ appExit: true,
+ },
+ python: {
+ enable: false,
+ name: 'pyapp',
+ cmd: 'python',
+ directory: './python',
+ args: ['./main.py', '--port=7074'],
+ stdio: "ignore",
+ appExit: true,
+ },
+ };
+
+ return {
+ ...config
+ };
+};
diff --git a/electron/config/config.prod.js b/electron/config/config.prod.js
new file mode 100644
index 0000000..5c5218d
--- /dev/null
+++ b/electron/config/config.prod.js
@@ -0,0 +1,29 @@
+'use strict';
+
+/**
+ * 生产环境配置,覆盖 config.default.js
+ */
+module.exports = (appInfo) => {
+ const config = {};
+
+ /**
+ * 开发者工具
+ */
+ config.openDevTools = false;
+
+ /**
+ * 应用程序顶部菜单
+ */
+ config.openAppMenu = false;
+
+ /**
+ * jobs
+ */
+ config.jobs = {
+ messageLog: false
+ };
+
+ return {
+ ...config
+ };
+};
diff --git a/electron/config/nodemon.json b/electron/config/nodemon.json
new file mode 100644
index 0000000..735e7fb
--- /dev/null
+++ b/electron/config/nodemon.json
@@ -0,0 +1,12 @@
+{
+ "watch": [
+ "electron/"
+ ],
+ "ignore": [],
+ "ext": "js,json",
+ "verbose": true,
+ "exec": "ee-bin dev",
+ "restartable": "hr",
+ "colours": true,
+ "events": {}
+}
\ No newline at end of file
diff --git a/electron/controller/cross.js b/electron/controller/cross.js
new file mode 100644
index 0000000..b67f85a
--- /dev/null
+++ b/electron/controller/cross.js
@@ -0,0 +1,100 @@
+'use strict';
+
+const { Controller } = require('ee-core');
+const Cross = require('ee-core/cross');
+const Log = require('ee-core/log');
+const HttpClient = require('ee-core/httpclient');
+const Services = require('ee-core/services');
+
+/**
+ * Cross
+ * @class
+ */
+class CrossController extends Controller {
+
+ constructor(ctx) {
+ super(ctx);
+ }
+
+ /**
+ * View process service information
+ */
+ info() {
+ const pids = Cross.getPids();
+ Log.info('cross pids:', pids);
+
+ let num = 1;
+ pids.forEach(pid => {
+ let entity = Cross.getProc(pid);
+ Log.info(`server-${num} name:${entity.name}`);
+ Log.info(`server-${num} config:`, entity.config);
+ num++;
+ })
+
+ return 'hello electron-egg';
+ }
+
+ /**
+ * Get service url
+ */
+ async getUrl(args) {
+ const { name } = args;
+ const serverUrl = Cross.getUrl(name);
+ return serverUrl;
+ }
+
+ /**
+ * kill service
+ * By default (modifiable), killing the process will exit the electron application.
+ */
+ async killServer(args) {
+ const { type, name } = args;
+ if (type == 'all') {
+ Cross.killAll();
+ } else {
+ Cross.killByName(name);
+ }
+
+ return;
+ }
+
+ /**
+ * create service
+ */
+ async createServer(args) {
+ const { program } = args;
+ if (program == 'go') {
+ Services.get('cross').createGoServer();
+ } else if (program == 'java') {
+ Services.get('cross').createJavaServer();
+ } else if (program == 'python') {
+ Services.get('cross').createPythonServer();
+ }
+
+ return;
+ }
+
+ /**
+ * Access the api for the cross service
+ */
+ async requestApi(args) {
+ const { name, urlPath, params} = args;
+ const hc = new HttpClient();
+ const serverUrl = Cross.getUrl(name);
+ console.log('Server Url:', serverUrl);
+
+ const apiHello = serverUrl + urlPath;
+ const options = {
+ method: 'GET',
+ data: params || {},
+ dataType: 'json',
+ timeout: 1000,
+ };
+ const result = await hc.request(apiHello, options);
+
+ return result.data;
+ }
+}
+
+CrossController.toString = () => '[class CrossController]';
+module.exports = CrossController;
\ No newline at end of file
diff --git a/electron/controller/effect.js b/electron/controller/effect.js
new file mode 100644
index 0000000..039850d
--- /dev/null
+++ b/electron/controller/effect.js
@@ -0,0 +1,71 @@
+'use strict';
+
+const { Controller } = require('ee-core');
+const { dialog } = require('electron');
+const _ = require('lodash');
+const CoreWindow = require('ee-core/electron/window');
+
+/**
+ * 特效 - 功能demo
+ * @class
+ */
+class EffectController extends Controller {
+
+ constructor(ctx) {
+ super(ctx);
+ }
+
+ /**
+ * 选择文件
+ */
+ selectFile() {
+ const filePaths = dialog.showOpenDialogSync({
+ properties: ['openFile']
+ });
+
+ if (_.isEmpty(filePaths)) {
+ return null
+ }
+
+ return filePaths[0];
+ }
+
+ /**
+ * login window
+ */
+ loginWindow(args) {
+ const { width, height } = args;
+ const win = CoreWindow.getMainWindow();
+
+ const size = {
+ width: width || 400,
+ height: height || 300
+ }
+ win.setSize(size.width, size.height);
+ win.setResizable(true);
+ win.center();
+ win.show();
+ win.focus();
+ }
+
+ /**
+ * restore window
+ */
+ restoreWindow(args) {
+ const { width, height } = args;
+ const win = CoreWindow.getMainWindow();
+
+ const size = {
+ width: width || 980,
+ height: height || 650
+ }
+ win.setSize(size.width, size.height);
+ win.setResizable(true);
+ win.center();
+ win.show();
+ win.focus();
+ }
+}
+
+EffectController.toString = () => '[class EffectController]';
+module.exports = EffectController;
\ No newline at end of file
diff --git a/electron/controller/example.js b/electron/controller/example.js
new file mode 100644
index 0000000..a527486
--- /dev/null
+++ b/electron/controller/example.js
@@ -0,0 +1,75 @@
+'use strict';
+
+const { Controller } = require('ee-core');
+const Log = require('ee-core/log');
+const Services = require('ee-core/services');
+const Addon = require('ee-core/addon');
+
+/**
+ * example
+ * @class
+ */
+class ExampleController extends Controller {
+
+ constructor(ctx) {
+ super(ctx);
+ }
+
+
+ /**
+ * 所有方法接收两个参数
+ * @param args 前端传的参数
+ * @param event - ipc通信时才有值。详情见:控制器文档
+ */
+
+ /**
+ * test
+ */
+ async test () {
+
+ // const result1 = await Services.get('example').test('electron');
+ // Log.info('service result1:', result1);
+
+ // Services.get('framework').test('electron');
+
+ return 'hello electron-egg';
+ }
+
+ /**
+ * test
+ */
+ async testUtils () {
+ let mid = await Utils.machineIdSync(true);
+ Log.info('mid 11111111:', mid);
+
+ Utils.machineId().then((id) => {
+ Log.info('mid 222222222:', id);
+ });
+
+ return;
+ }
+
+ /**
+ * test
+ */
+ async testService () {
+ const serviceResult2 = await Services.get('example').test('electron');
+ Log.info('service result2:', serviceResult2);
+
+ return;
+ }
+
+ /**
+ * test
+ */
+ async testAddon () {
+ const trayResult2 = Addon.get('tray').hello();
+ Log.info('addon result2:', trayResult2);
+
+ return;
+ }
+
+}
+
+ExampleController.toString = () => '[class ExampleController]';
+module.exports = ExampleController;
\ No newline at end of file
diff --git a/electron/controller/framework.js b/electron/controller/framework.js
new file mode 100644
index 0000000..90ae21b
--- /dev/null
+++ b/electron/controller/framework.js
@@ -0,0 +1,547 @@
+'use strict';
+
+const path = require('path');
+const fs = require('fs');
+const { exec } = require('child_process');
+const { Controller } = require('ee-core');
+const { app: electronApp, shell } = require('electron');
+const dayjs = require('dayjs');
+const Ps = require('ee-core/ps');
+const Log = require('ee-core/log');
+const Services = require('ee-core/services');
+const Conf = require('ee-core/config');
+const Addon = require('ee-core/addon');
+const EE = require('ee-core/ee');
+const { getNetworkIFaceOne, getMac, getAllMac, getAllPhysicsMac } = require('@lzwme/get-physical-address');
+const os = require('os');
+// 网络
+const net = require('net');
+// 串口
+const { SerialPort } = require('serialport')
+// 保存串口实例
+var GlobalSeriaPortIns = undefined;
+/**
+ * electron-egg framework - 功能demo
+ * @class
+ */
+class FrameworkController extends Controller {
+
+ constructor(ctx) {
+ super(ctx);
+ }
+
+ /**
+ * 所有方法接收两个参数
+ * @param args 前端传的参数
+ * @param event - ipc通信时才有值。详情见:控制器文档
+ */
+
+
+
+
+ /**
+ * 发送串口消息
+ * @param {*} seriaPort 串口实例
+ */
+ sendSeriaPort(args) {
+ const port = GlobalSeriaPortIns;
+ const msg = args.msg;
+ port.write(msg, 'hex')
+ // console.log('测试发送消息'+msg);
+ }
+ /**
+ * 连接串口 只执行一次
+ * @param {*} options 串口参数
+ * @param {*} event 回调.
+ */
+ connectSeriaPort(options, event) {
+
+ // 保证执行一次
+ if (GlobalSeriaPortIns != undefined) {
+ console.log("SerialPort is have");
+ return;
+ }
+ const channel = 'controller.hardware.connectSeriaPort';
+ const port = new SerialPort(options, (e) => {
+ console.log("SerialPort open");
+ console.log(e);
+ if (e === null) {
+ // 打开成功 把串口发送出去
+ let data2 = {
+ type: 'connect'
+ }
+ event.reply(`${channel}`, data2)
+ }
+
+ })
+
+ port.on('data', (data) => {
+ let data2 = {
+ type: 'received',
+ data: data
+ }
+ console.log(`Received data: ${data2}`)
+ event.reply(`${channel}`, data2)
+ })
+ setInterval(() => {
+ // console.log('setInterval')
+ if (!port.isOpen) {
+ // console.log('setInterval open')
+ port.open();
+ }
+
+ }, 1000)
+ port.on('close', () => {
+ let data2 = {
+ type: 'close'
+ }
+ console.log(`SerialPort close: ${data2}`)
+ event.reply(`${channel}`, data2)
+ })
+ port.on('error', (e) => {
+ let data2 = {
+ type: 'error'
+ }
+ console.log(`SerialPort error: ${e}`)
+ event.reply(`${channel}`, data2)
+ })
+
+ GlobalSeriaPortIns = port;
+
+ }
+
+ /**
+ * 发送tcp 消息
+ * @param {*} args 包含host port msg type { 1 hex, 2 ascii}
+ * @param {*} event
+ */
+ sendTcpSocket(args, event) {
+ const channel = 'controller.example.sendTcpSocket';
+ console.log("tcp params")
+ console.log(args);
+ const client = new net.Socket();
+ // client.setEncoding('ascii');
+ const HOST = args.host;
+ const PORT = args.port;
+ const msg = args.msg;
+
+ // const HOST = '192.168.5.134';
+ // const PORT = 9080;
+ client.connect(PORT, HOST, function () {
+ console.log('Connected to: ' + HOST + ':' + PORT);
+ });
+
+ client.on('data', function (data) {
+ console.log('Received: ' + data);
+ event.sender.send(`${channel}`, data);
+ });
+ //两种码的发送 ok
+ // client.write('Hello, server!','ascii');
+ if (args.type == 1) {
+ client.write(msg, 'hex');
+ } else {
+ client.write(msg, 'ascii');
+ }
+
+ client.on('close', function () {
+ console.log('Connection closed');
+ });
+ client.end();
+
+ }
+
+
+
+ /**
+ * 获取extraResources 目录下的json 配置文件
+ * @param {*} name 配置文件名
+ * @returns 返回json 字符传
+ */
+ getExResConfig(name) {
+ let configPath = path.join(Ps.getExtraResourcesDir(), name);;
+
+ console.log(configPath)
+ // let configJSON = null;
+ let dataString = null;
+ try {
+ // 同步读取配置文件
+ dataString = fs.readFileSync(configPath, 'utf8');
+
+ // 解析 JSON 格式的配置数据
+ // configJSON = JSON.parse(data);
+ // console.log('读取到的配置:', configJSON);
+
+ // 在这里可以根据需要使用配置数据进行操作
+ } catch (err) {
+ console.error('无法读取配置文件:', err);
+ }
+ return dataString;
+ }
+
+
+
+ /**
+ * json数据库操作
+ */
+ async jsondbOperation(args) {
+ const { action, info, delete_name, update_name, update_age, search_age, data_dir } = args;
+
+ const data = {
+ action,
+ result: null,
+ all_list: []
+ };
+
+ switch (action) {
+ case 'add':
+ data.result = await Services.get('database.jsondb').addTestData(info);
+ break;
+ case 'del':
+ data.result = await Services.get('database.jsondb').delTestData(delete_name);
+ break;
+ case 'update':
+ data.result = await Services.get('database.jsondb').updateTestData(update_name, update_age);
+ break;
+ case 'get':
+ data.result = await Services.get('database.jsondb').getTestData(search_age);
+ break;
+ case 'getDataDir':
+ data.result = await Services.get('database.jsondb').getDataDir();
+ break;
+ case 'setDataDir':
+ data.result = await Services.get('database.jsondb').setCustomDataDir(data_dir);
+ break;
+ }
+
+ data.all_list = await Services.get('database.jsondb').getAllTestData();
+
+ return data;
+ }
+
+ /**
+ * sqlite数据库操作
+ */
+ async sqlitedbOperation(args) {
+ const { action, info, delete_name, update_name, update_age, search_age, data_dir } = args;
+
+ const data = {
+ action,
+ result: null,
+ all_list: [],
+ code: 0
+ };
+
+ try {
+ // test
+ Services.get('database.sqlitedb').getDataDir();
+ } catch (err) {
+ console.log(err);
+ data.code = -1;
+ return data;
+ }
+
+ switch (action) {
+ case 'add':
+ data.result = await Services.get('database.sqlitedb').addTestDataSqlite(info);;
+ break;
+ case 'del':
+ data.result = await Services.get('database.sqlitedb').delTestDataSqlite(delete_name);;
+ break;
+ case 'update':
+ data.result = await Services.get('database.sqlitedb').updateTestDataSqlite(update_name, update_age);
+ break;
+ case 'get':
+ data.result = await Services.get('database.sqlitedb').getTestDataSqlite(search_age);
+ break;
+ case 'getDataDir':
+ data.result = await Services.get('database.sqlitedb').getDataDir();
+ break;
+ case 'setDataDir':
+ data.result = await Services.get('database.sqlitedb').setCustomDataDir(data_dir);
+ break;
+ }
+
+ data.all_list = await Services.get('database.sqlitedb').getAllTestDataSqlite();
+
+ return data;
+ }
+
+ /**
+ * 调用其它程序(exe、bash等可执行程序)
+ */
+ openSoftware(softName) {
+ if (!softName) {
+ return false;
+ }
+
+ let softwarePath = path.join(Ps.getExtraResourcesDir(), softName);
+ Log.info('[openSoftware] softwarePath:', softwarePath);
+
+ // 检查程序是否存在
+ if (!fs.existsSync(softwarePath)) {
+ return false;
+ }
+ // 命令行字符串 并 执行
+ let cmdStr = 'start ' + softwarePath;
+ exec(cmdStr);
+
+ return true;
+ }
+
+ /**
+ * 检查是否有新版本
+ */
+ checkForUpdater() {
+ Addon.get('autoUpdater').checkUpdate();
+ return;
+ }
+
+ /**
+ * 下载新版本
+ */
+ downloadApp() {
+ Addon.get('autoUpdater').download();
+ return;
+ }
+
+ /**
+ * 检测http服务是否开启
+ */
+ async checkHttpServer() {
+ const httpServerConfig = Conf.getValue('httpServer');
+ const url = httpServerConfig.protocol + httpServerConfig.host + ':' + httpServerConfig.port;
+
+ const data = {
+ enable: httpServerConfig.enable,
+ server: url
+ }
+ return data;
+ }
+
+ /**
+ * 一个http请求访问此方法
+ */
+ async doHttpRequest() {
+ const { CoreApp } = EE;
+ // http方法
+ const method = CoreApp.request.method;
+ // http get 参数
+ let params = CoreApp.request.query;
+ params = (params instanceof Object) ? params : JSON.parse(JSON.stringify(params));
+ // http post 参数
+ const body = CoreApp.request.body;
+
+ const httpInfo = {
+ method,
+ params,
+ body
+ }
+ Log.info('httpInfo:', httpInfo);
+
+ if (!body.id) {
+ return false;
+ }
+ const dir = electronApp.getPath(body.id);
+ shell.openPath(dir);
+
+ return true;
+ }
+
+ /**
+ * 一个socket io请求访问此方法
+ */
+ async doSocketRequest(args) {
+ if (!args.id) {
+ return false;
+ }
+ const dir = electronApp.getPath(args.id);
+ shell.openPath(dir);
+
+ return true;
+ }
+
+ /**
+ * 异步消息类型
+ */
+ async ipcInvokeMsg(args, event) {
+ let timeNow = dayjs().format('YYYY-MM-DD HH:mm:ss');
+ const data = args + ' - ' + timeNow;
+
+ return data;
+ }
+
+ /**
+ * 同步消息类型
+ */
+ async ipcSendSyncMsg(args) {
+ let timeNow = dayjs().format('YYYY-MM-DD HH:mm:ss');
+ const data = args + ' - ' + timeNow;
+
+ return data;
+ }
+
+ /**
+ * 双向异步通信
+ */
+ async ipcSendMsg(args, event) {
+ const { type, content } = args;
+ const data = await Services.get('framework').bothWayMessage(type, content, event);
+
+ return data;
+ }
+
+ /**
+ * 不建议使用,请使用electron的api来获取文件的本机路径,然后读取并上传
+ * 使用http的files属性,实际上多余拷贝一次文件
+ */
+
+ async uploadFile() {
+ const { CoreApp } = EE;
+ let tmpDir = Ps.getLogDir();
+ const files = CoreApp.request.files;
+ let file = files.file;
+
+ let tmpFilePath = path.join(tmpDir, file.originalFilename);
+ try {
+ let tmpFile = fs.readFileSync(file.filepath);
+ fs.writeFileSync(tmpFilePath, tmpFile);
+ } finally {
+ await fs.unlink(file.filepath, function () { });
+ }
+ const fileStream = fs.createReadStream(tmpFilePath);
+ const uploadRes = await Services.get('framework').uploadFileToSMMS(fileStream);
+
+ return uploadRes;
+ }
+
+ /**
+ * 启动java项目
+ */
+ async startJavaServer() {
+ let data = {
+ code: 0,
+ msg: '',
+ server: ''
+ }
+ const javaCfg = Conf.getValue('addons.javaServer') || {};
+ if (!javaCfg.enable) {
+ data.code = -1;
+ data.msg = 'addon not enabled!';
+ return data;
+ }
+
+ await Addon.get('javaServer').createServer();
+
+ data.server = 'http://localhost:' + javaCfg.port;
+
+ return data;
+ }
+
+ /**
+ * 关闭java项目
+ */
+ async closeJavaServer() {
+ let data = {
+ code: 0,
+ msg: '',
+ }
+ const javaCfg = Conf.getValue('addons.javaServer') || {};
+ if (!javaCfg.enable) {
+ data.code = -1;
+ data.msg = 'addon not enabled!';
+ return data;
+ }
+
+ await Addon.get('javaServer').kill();
+
+ return data;
+ }
+
+ /**
+ * java运行状态
+ */
+ async runStatus() {
+ let data = {
+ code: 0,
+ msg: '',
+ flag: false
+ }
+ const flag = await Addon.get('javaServer').check();
+ //Log.info("[FrameworkController:runStatus] flag-----------"+flag);
+ data.flag = flag;
+
+ return data;
+ }
+
+ /**
+ * 任务
+ */
+ someJob(args, event) {
+ let jobId = args.id;
+ let action = args.action;
+
+ let result;
+ switch (action) {
+ case 'create':
+ result = Services.get('framework').doJob(jobId, action, event);
+ break;
+ case 'close':
+ Services.get('framework').doJob(jobId, action, event);
+ break;
+ default:
+ }
+
+ let data = {
+ jobId,
+ action,
+ result
+ }
+ return data;
+ }
+
+ /**
+ * 创建任务池
+ */
+ async createPool(args, event) {
+ let num = args.number;
+ Services.get('framework').doCreatePool(num, event);
+
+ // test monitor
+ Services.get('framework').monitorJob();
+
+ return;
+ }
+
+ /**
+ * 通过进程池执行任务
+ */
+ someJobByPool(args, event) {
+ let jobId = args.id;
+ let action = args.action;
+
+ let result;
+ switch (action) {
+ case 'run':
+ result = Services.get('framework').doJobByPool(jobId, action, event);
+ break;
+ default:
+ }
+
+ let data = {
+ jobId,
+ action,
+ result
+ }
+ return data;
+ }
+
+ /**
+ * 测试接口
+ */
+ hello(args) {
+ Log.info('hello ', args);
+ }
+}
+
+FrameworkController.toString = () => '[class FrameworkController]';
+module.exports = FrameworkController;
\ No newline at end of file
diff --git a/electron/controller/hardware.js b/electron/controller/hardware.js
new file mode 100644
index 0000000..97ff8e8
--- /dev/null
+++ b/electron/controller/hardware.js
@@ -0,0 +1,72 @@
+'use strict';
+
+const { Controller } = require('ee-core');
+const path = require('path');
+const Ps = require('ee-core/ps');
+const CoreWindow = require('ee-core/electron/window');
+const Addon = require('ee-core/addon');
+
+/**
+ * 硬件设备 - 功能demo
+ * @class
+ */
+class HardwareController extends Controller {
+
+ constructor(ctx) {
+ super(ctx);
+ }
+
+ /**
+ * 获取打印机列表
+ */
+ async getPrinterList () {
+
+ //主线程获取打印机列表
+ const win = CoreWindow.getMainWindow();
+ const list = await win.webContents.getPrintersAsync();
+
+ return list;
+ }
+
+ /**
+ * 打印
+ */
+ print (args, event) {
+ const { view, deviceName } = args;
+ let content = null;
+ if (view.type == 'html') {
+ content = path.join('file://', Ps.getHomeDir(), view.content)
+ } else {
+ content = view.content;
+ }
+
+ let opt = {
+ title: 'printer window',
+ x: 10,
+ y: 10,
+ width: 980,
+ height: 650
+ }
+ const name = 'window-printer';
+ const printWindow = Addon.get('window').create(name, opt);
+
+ printWindow.loadURL(content);
+ printWindow.webContents.once('did-finish-load', () => {
+ // 页面完全加载完成后,开始打印
+ printWindow.webContents.print({
+ silent: false, // 显示打印对话框
+ printBackground: true,
+ deviceName,
+ }, (success, failureReason) => {
+ const channel = 'controller.hardware.printStatus';
+ event.reply(`${channel}`, { success, failureReason });
+ printWindow.close();
+ });
+ });
+
+ return true;
+ }
+}
+
+HardwareController.toString = () => '[class HardwareController]';
+module.exports = HardwareController;
\ No newline at end of file
diff --git a/electron/controller/os.js b/electron/controller/os.js
new file mode 100644
index 0000000..43a43ac
--- /dev/null
+++ b/electron/controller/os.js
@@ -0,0 +1,634 @@
+'use strict';
+
+const _ = require('lodash');
+const path = require('path');
+const { Controller } = require('ee-core');
+const {
+ app: electronApp, dialog, shell, Notification,
+ powerMonitor, screen, nativeTheme
+} = require('electron');
+const Conf = require('ee-core/config');
+const Ps = require('ee-core/ps');
+const Services = require('ee-core/services');
+const Addon = require('ee-core/addon');
+const { getNetworkIFaceOne, getMac, getAllMac, getAllPhysicsMac } = require('@lzwme/get-physical-address');
+const os = require('os');
+const shutdown = require('electron-shutdown-command');
+// 终端命令
+const { exec, execSync, execFile } = require("child_process");
+// 声音控制库 https://github.com/LinusU/node-loudness
+const loudness = require("loudness");
+// 文件处理
+const fs = require('fs');
+/**
+ * 操作系统 - 功能demo
+ * @class
+ */
+class OsController extends Controller {
+
+ constructor(ctx) {
+ super(ctx);
+ }
+
+ /**
+ * 所有方法接收两个参数
+ * @param args 前端传的参数
+ * @param event - ipc通信时才有值。详情见:控制器文档
+ */
+
+
+ // 获取所有的网卡-无参数
+ async getAllMac(args) {
+ // 文档说明 https://github.com/lzwme/get-physical-address/blob/main/.github/README_zh-CN.md
+ const list = getAllPhysicsMac();
+ return list;
+ }
+ // 查找到指定进程并关闭? 注意 进程要全, 不然容易误杀
+ deviceKillName(name) {
+ // 最新 taskkill /F /IM program.exe 这个命令一句话能直接杀掉进程
+ const self = this;
+ let rebootShell = "tasklist|findstr " + name;
+ let command = exec(rebootShell, function (err, stdout, stderr) {
+ if (err || stderr) {
+ console.log("tasklist failed" + err + stderr);
+ } else {
+ const lines = stdout.split('\n')
+ console.log(lines);
+ for (let index = 0; index < lines.length; index++) {
+ const element = lines[index];
+ const strs = element.split(' ')
+ const firstNumber = strs.find(item => !isNaN(Number(item)) && item != '')
+ console.log('jincheng id :' + firstNumber);
+ self.deviceKillPid(firstNumber)
+ }
+ }
+ });
+ command.stdin.end();
+ command.on("close", function (code) {
+ console.log("tasklist", code);
+ });
+ }
+ // 杀掉pid 进程
+ deviceKillPid(pid) {
+ let rebootShell = "tskill " + pid;
+ let command = exec(rebootShell, function (err, stdout, stderr) {
+ if (err || stderr) {
+ console.log("tskill failed" + err + stderr);
+ }
+ })
+ command.stdin.end();
+ command.on("close", function (code) {
+ console.log("tskill", code);
+ });
+ }
+
+ // 启动指定目录的程序 可能有权限问题, 方案1 打包后管理员权限执行, 2 按照egg 的方案把需要执行的程序拷贝到安装包
+ deviceStarExe(path) {
+
+ let rebootShell = 'start ' + path;
+ exec(rebootShell);
+
+ }
+ /**
+ * 设备关机
+ */
+ deviceShutdown() {
+ // 关机
+ // let shutdownShell = "shutdown -s -t 00";
+ console.log('deviceShutdown=============')
+ shutdown.shutdown();
+ return true;
+ }
+ deviceRestart(args) {
+ // 重启
+ let rebootShell = "shutdown -r -t 0";
+ let command = exec(rebootShell, function (err, stdout, stderr) {
+ if (err || stderr) {
+ console.log("shutdown failed" + err + stderr);
+ }
+ });
+ command.stdin.end();
+ command.on("close", function (code) {
+ console.log("shutdown", code);
+ });
+ }
+ // 同步执行 声音设置 支持0-100
+ async deviceLoudness(args) {
+ const value = args.value;
+ //操作系统平台
+ const pf = os.platform();
+ console.log("OS: " + pf)
+ // 特殊处理以下
+ if (pf == "linux") {
+ let shellStr = "amixer -D pulse set Master " + value + "% unmute"
+ if (value == 0) {
+ shellStr = "amixer -D pulse set Master mute"
+
+ }
+
+ // else{
+ // shellStr = "amixer -c 0 set Master,0 100%,80% unmute"
+ // }
+
+ let command = exec(shellStr, function (err, stdout, stderr) {
+ if (err || stderr) {
+ console.log("amixer failed" + err + stderr);
+ }
+ });
+ command.stdin.end();
+ command.on("close", function (code) {
+ console.log("amixer", code);
+ });
+
+ return;
+ } else {
+ /// 兼容模式, try catch 如果第一种方式报错, 在采用第二种
+ try {
+ //0 为静音
+ if (value == 0) {
+ await loudness.setMuted(true)
+ return await loudness.getMuted()
+ }
+ // 设置声音改为不静音 且设置声音
+ await loudness.setMuted(false)
+ await loudness.setVolume(value)
+ const newValue = await loudness.getVolume();
+ return newValue;
+ } catch {
+ const maxVolume = 65535;
+ let volumeValue = Math.round((value / 100) * maxVolume);
+
+ // 确保音量值在有效范围内
+ volumeValue = Math.max(0, Math.min(maxVolume, volumeValue));
+
+ // 将音量值转换为字符串
+ const valueStr = volumeValue.toString();
+
+ let excPath = path.join(Ps.getExtraResourcesDir(), 'nircmd.exe');
+
+ execFile(excPath, ['setsysvolume', valueStr], (error, stdout, stderr) => {
+ if (error) {
+ console.error(' Nircmd error: ', error);
+ return;
+ }
+ console.log('Nircmd ok ');
+ });
+
+ return value;
+ }
+
+
+ }
+ }
+ // 获取电脑信息
+ async getOSMessage(args) {
+ var OSDic = {};
+ var dealTime = (seconds) => {
+ var seconds = seconds | 0;
+ var day = (seconds / (3600 * 24)) | 0;
+ var hours = ((seconds - day * 3600) / 3600) | 0;
+ var minutes = ((seconds - day * 3600 * 24 - hours * 3600) / 60) | 0;
+ var second = seconds % 60;
+ (day < 10) && (day = '0' + day);
+ (hours < 10) && (hours = '0' + hours);
+ (minutes < 10) && (minutes = '0' + minutes);
+ (second < 10) && (second = '0' + second);
+ return [day, hours, minutes, second].join(':');
+ };
+
+ var dealMem = (mem) => {
+ var G = 0,
+ M = 0,
+ KB = 0;
+ (mem > (1 << 30)) && (G = (mem / (1 << 30)).toFixed(2));
+ (mem > (1 << 20)) && (mem < (1 << 30)) && (M = (mem / (1 << 20)).toFixed(2));
+ (mem > (1 << 10)) && (mem > (1 << 20)) && (KB = (mem / (1 << 10)).toFixed(2));
+ return G > 0 ? G + 'G' : M > 0 ? M + 'M' : KB > 0 ? KB + 'KB' : mem + 'B';
+ };
+
+ //cpu架构
+ const arch = os.arch();
+ // console.log("cpu架构:" + arch);
+ OSDic["arch"] = arch;
+
+ //操作系统内核
+ const kernel = os.type();
+ // console.log("操作系统内核:" + kernel);
+ OSDic["kernel"] = kernel;
+
+ //操作系统平台
+ const pf = os.platform();
+ // console.log("平台:" + pf);
+ OSDic["pf"] = pf;
+
+ //系统开机时间
+ const uptime = os.uptime();
+ // console.log("开机时间:" + dealTime(uptime));
+ OSDic["uptime"] = uptime;
+ //主机名
+ const hn = os.hostname();
+ // console.log("主机名:" + hn);
+ OSDic["hostname"] = hn;
+ // //主目录
+ // const hdir = os.homedir();
+ // console.log("主目录:" + hdir);
+ // OSDic["homedir"] = hdir;
+
+ //内存
+ const totalMem = os.totalmem();
+ const freeMem = os.freemem();
+ // console.log("内存大小:" + dealMem(totalMem) + ' 空闲内存:' + dealMem(freeMem));
+ OSDic["totalmem"] = totalMem;
+ OSDic["freeMem"] = freeMem;
+ //cpu
+ const cpus = os.cpus();
+ OSDic["cpuModel"] = cpus[0]["model"];
+ // OSDic["cpus"] = cpus;
+ // console.log('*****cpu信息*******');
+ // cpus.forEach((cpu, idx, arr) => {
+ // var times = cpu.times;
+ // console.log(`cpu${idx}:`);
+ // console.log(`型号:${cpu.model}`);
+ // console.log(`频率:${cpu.speed}MHz`);
+ // console.log(`使用率:${((1 - times.idle / (times.idle + times.user + times.nice + times.sys + times.irq)) * 100).toFixed(2)}%`);
+ // });
+
+ try {
+ const volumeValue = await loudness.getVolume()
+
+ OSDic["volume"] = volumeValue;
+ console.log('volumeValue' + volumeValue);
+
+ } catch (error) {
+ console.log(error)
+ }
+
+ return OSDic;
+ }
+ // const volume = await loudness.getVolume()
+ // OSDic["volume"] = volume;
+ // return OSDic;
+ // }
+ /**
+ * 获取当前目录的配置
+ * @param {*} name 配置文件名
+ * @returns
+ */
+ getCurrentDirectoryConfig(name) {
+ let configPath = '';
+ configPath = path.join(Ps.getExtraResourcesDir(), name);
+ console.log(configPath)
+ // let configJSON = null;
+ let dataString = null;
+ try {
+ // 同步读取配置文件
+ dataString = fs.readFileSync(configPath, 'utf8');
+
+ // 解析 JSON 格式的配置数据
+ // configJSON = JSON.parse(data);
+ // console.log('读取到的配置:', configJSON);
+
+ // 在这里可以根据需要使用配置数据进行操作
+ } catch (err) {
+ console.error('无法读取配置文件:', err);
+ }
+ return dataString;
+ }
+ /**
+ * 消息提示对话框
+ */
+ messageShow() {
+ dialog.showMessageBoxSync({
+ type: 'info', // "none", "info", "error", "question" 或者 "warning"
+ title: '自定义标题-message',
+ message: '自定义消息内容',
+ detail: '其它的额外信息'
+ })
+
+ return '打开了消息框';
+ }
+
+ /**
+ * 消息提示与确认对话框
+ */
+ messageShowConfirm() {
+ const res = dialog.showMessageBoxSync({
+ type: 'info',
+ title: '自定义标题-message',
+ message: '自定义消息内容',
+ detail: '其它的额外信息',
+ cancelId: 1, // 用于取消对话框的按钮的索引
+ defaultId: 0, // 设置默认选中的按钮
+ buttons: ['确认', '取消'], // 按钮及索引
+ })
+ let data = (res === 0) ? '点击确认按钮' : '点击取消按钮';
+
+ return data;
+ }
+
+ /**
+ * 选择目录
+ */
+ selectFolder() {
+ const filePaths = dialog.showOpenDialogSync({
+ properties: ['openDirectory', 'createDirectory']
+ });
+
+ if (_.isEmpty(filePaths)) {
+ return null
+ }
+
+ return filePaths[0];
+ }
+
+ /**
+ * 打开目录
+ */
+ openDirectory(args) {
+ if (!args.id) {
+ return false;
+ }
+ let dir = '';
+ if (path.isAbsolute(args.id)) {
+ dir = args.id;
+ } else {
+ dir = electronApp.getPath(args.id);
+ }
+
+ shell.openPath(dir);
+ return true;
+ }
+
+ /**
+ * 选择图片
+ */
+ selectPic() {
+ const filePaths = dialog.showOpenDialogSync({
+ title: 'select pic',
+ properties: ['openFile'],
+ filters: [
+ { name: 'Images', extensions: ['jpg', 'png', 'gif'] },
+ ]
+ });
+ if (_.isEmpty(filePaths)) {
+ return null
+ }
+
+ return filePaths[0];
+ }
+
+ /**
+ * 加载视图内容
+ */
+ loadViewContent(args) {
+ const { type, content } = args;
+ let contentUrl = content;
+ if (type == 'html') {
+ contentUrl = path.join('file://', electronApp.getAppPath(), content);
+ }
+
+ Services.get('os').createBrowserView(contentUrl);
+
+ return true
+ }
+
+ /**
+ * 移除视图内容
+ */
+ removeViewContent() {
+ Services.get('os').removeBrowserView();
+ return true
+ }
+
+ /**
+ * 打开新窗口
+ */
+ createWindow(args) {
+ const { type, content, windowName, windowTitle } = args;
+ let contentUrl = null;
+ if (type == 'html') {
+ contentUrl = path.join('file://', electronApp.getAppPath(), content)
+ } else if (type == 'web') {
+ contentUrl = content;
+ } else if (type == 'vue') {
+ let addr = 'http://localhost:17680'
+ if (Ps.isProd()) {
+ const mainServer = Conf.getValue('mainServer');
+ if (Conf.isFileProtocol(mainServer)) {
+ addr = mainServer.protocol + path.join(Ps.getHomeDir(), mainServer.indexPath);
+ } else {
+ addr = mainServer.protocol + mainServer.host + ':' + mainServer.port;
+ }
+ }
+
+ contentUrl = addr + content;
+ } else {
+ // some
+ }
+
+ console.log('contentUrl: ', contentUrl);
+ let opt = {
+ title: windowTitle
+ }
+ const win = Addon.get('window').create(windowName, opt);
+ const winContentsId = win.webContents.id;
+
+ // load page
+ win.loadURL(contentUrl);
+
+ return winContentsId;
+ }
+
+ /**
+ * 获取窗口contents id
+ */
+ getWCid(args) {
+ // 主窗口的name默认是main,其它窗口name开发者自己定义
+ const name = args;
+ const id = Addon.get('window').getWCid(name);
+
+ return id;
+ }
+
+ /**
+ * 加载扩展程序
+ */
+ // async loadExtension (args) {
+ // const crxFile = args[0];
+ // if (_.isEmpty(crxFile)) {
+ // return false;
+ // }
+ // const extensionId = path.basename(crxFile, '.crx');
+ // const chromeExtensionDir = chromeExtension.getDirectory();
+ // const extensionDir = path.join(chromeExtensionDir, extensionId);
+
+ // Log.info("[api] [example] [loadExtension] extension id:", extensionId);
+ // unzip(crxFile, extensionDir).then(() => {
+ // Log.info("[api] [example] [loadExtension] unzip success!");
+ // chromeExtension.load(extensionId);
+ // });
+
+ // return true;
+ // }
+
+ /**
+ * 创建系统通知
+ */
+ sendNotification(args, event) {
+ const { title, subtitle, body, silent } = args;
+
+ if (!Notification.isSupported()) {
+ return '当前系统不支持通知';
+ }
+
+ let options = {};
+ if (!_.isEmpty(title)) {
+ options.title = title;
+ }
+ if (!_.isEmpty(subtitle)) {
+ options.subtitle = subtitle;
+ }
+ if (!_.isEmpty(body)) {
+ options.body = body;
+ }
+ if (!_.isEmpty(silent)) {
+ options.silent = silent;
+ }
+
+ Services.get('os').createNotification(options, event);
+
+ return true
+ }
+
+ /**
+ * 电源监控
+ */
+ initPowerMonitor(args, event) {
+ const channel = 'controller.os.initPowerMonitor';
+ powerMonitor.on('on-ac', (e) => {
+ let data = {
+ type: 'on-ac',
+ msg: '接入了电源'
+ }
+ event.reply(`${channel}`, data)
+ });
+
+ powerMonitor.on('on-battery', (e) => {
+ let data = {
+ type: 'on-battery',
+ msg: '使用电池中'
+ }
+ event.reply(`${channel}`, data)
+ });
+
+ powerMonitor.on('lock-screen', (e) => {
+ let data = {
+ type: 'lock-screen',
+ msg: '锁屏了'
+ }
+ event.reply(`${channel}`, data)
+ });
+
+ powerMonitor.on('unlock-screen', (e) => {
+ let data = {
+ type: 'unlock-screen',
+ msg: '解锁了'
+ }
+ event.reply(`${channel}`, data)
+ });
+
+ return true
+ }
+
+ /**
+ * 获取屏幕信息
+ */
+ getScreen(args) {
+ let data = [];
+ let res = {};
+ if (args == 0) {
+ let res = screen.getCursorScreenPoint();
+ data = [
+ {
+ title: '横坐标',
+ desc: res.x
+ },
+ {
+ title: '纵坐标',
+ desc: res.y
+ },
+ ]
+
+ return data;
+ }
+ if (args == 1) {
+ res = screen.getPrimaryDisplay();
+ }
+ if (args == 2) {
+ let resArr = screen.getAllDisplays();
+ // 数组,只取一个吧
+ res = resArr[0];
+ }
+ // Log.info('[electron] [ipc] [example] [getScreen] res:', res);
+ data = [
+ {
+ title: '分辨率',
+ desc: res.bounds.width + ' x ' + res.bounds.height
+ },
+ {
+ title: '单色显示器',
+ desc: res.monochrome ? '是' : '否'
+ },
+ {
+ title: '色深',
+ desc: res.colorDepth
+ },
+ {
+ title: '色域',
+ desc: res.colorSpace
+ },
+ {
+ title: 'scaleFactor',
+ desc: res.scaleFactor
+ },
+ {
+ title: '加速器',
+ desc: res.accelerometerSupport
+ },
+ {
+ title: '触控',
+ desc: res.touchSupport == 'unknown' ? '不支持' : '支持'
+ },
+ ]
+
+ return data;
+ }
+
+ /**
+ * 获取系统主题
+ */
+ getTheme() {
+ let theme = 'system';
+ if (nativeTheme.shouldUseHighContrastColors) {
+ theme = 'light';
+ } else if (nativeTheme.shouldUseInvertedColorScheme) {
+ theme = 'dark';
+ }
+
+ return theme;
+ }
+
+ /**
+ * 设置系统主题
+ */
+ setTheme(args) {
+
+ // TODO 好像没有什么明显效果
+ nativeTheme.themeSource = args;
+
+ return args;
+ }
+}
+
+OsController.toString = () => '[class OsController]';
+module.exports = OsController;
\ No newline at end of file
diff --git a/electron/index.js b/electron/index.js
new file mode 100644
index 0000000..4bdc502
--- /dev/null
+++ b/electron/index.js
@@ -0,0 +1,69 @@
+const { Application } = require('ee-core');
+const { app, globalShortcut } = require('electron')
+const EE = require('ee-core/ee');
+// 是否用户关闭
+global.isUserExit = false;
+const { app: electronApp } = require("electron");
+
+class Index extends Application {
+
+ constructor() {
+ super();
+ // this === eeApp;
+ }
+
+ /**
+ * core app have been loaded
+ */
+ async ready () {
+ // do some things
+ electronApp.commandLine.appendSwitch('enable-webgl');
+ electronApp.commandLine.appendSwitch("disable-web-security");
+ }
+
+ /**
+ * electron app ready
+ */
+ async electronAppReady () {
+ // do some things
+ }
+
+ /**
+ * main window have been loaded
+ */
+ async windowReady () {
+ // todo: 注册一个全局快捷键退出
+ globalShortcut.register('CommandOrControl+Shift+Z', () => {
+ console.log("Shift+Alt+Z+M is click")
+ // const { CoreApp } = EE;
+ // CoreApp.appQuit();
+ global.isUserExit = true;
+ app.quit();
+ // const channel = 'shortcut-key';
+ // this.electron.mainWindow.webContents.send(channel, "Shift+Alt+Z+M");
+ })
+ // do some things
+ // 延迟加载,无白屏
+ const winOpt = this.config.windowsOption;
+ if (winOpt.show == false) {
+ const win = this.electron.mainWindow;
+ win.once('ready-to-show', () => {
+ win.show();
+ win.focus();
+ })
+ }
+
+
+ }
+
+ /**
+ * before app close
+ */
+ async beforeClose () {
+ // do some things
+ console.log(" index.js beforeClose")
+ }
+}
+
+Index.toString = () => '[class Index]';
+module.exports = Index;
\ No newline at end of file
diff --git a/electron/jobs/example/hello.js b/electron/jobs/example/hello.js
new file mode 100644
index 0000000..66dc1dc
--- /dev/null
+++ b/electron/jobs/example/hello.js
@@ -0,0 +1,5 @@
+const Log = require('ee-core/log');
+
+exports.welcome = function () {
+ Log.info('[child-process] [jobs/example/hello] welcome ! ');
+}
\ No newline at end of file
diff --git a/electron/jobs/example/timer.js b/electron/jobs/example/timer.js
new file mode 100644
index 0000000..f2bae91
--- /dev/null
+++ b/electron/jobs/example/timer.js
@@ -0,0 +1,55 @@
+const Job = require('ee-core/jobs/baseJobClass');
+const Loader = require('ee-core/loader');
+const Log = require('ee-core/log');
+const Ps = require('ee-core/ps');
+const { childMessage } = require('ee-core/message');
+const Hello = Loader.requireJobsModule('./example/hello');
+
+/**
+ * example - TimerJob
+ * @class
+ */
+class TimerJob extends Job {
+
+ constructor(params) {
+ super();
+ this.params = params;
+ }
+
+ /**
+ * handle()方法是必要的,且会被自动调用
+ */
+ async handle () {
+ Log.info("[child-process] TimerJob params: ", this.params);
+
+ // 计时器任务
+
+ let number = 0;
+ let jobId = this.params.jobId;
+ let eventName = 'job-timer-progress-' + jobId;
+ let timer = setInterval(function() {
+ Hello.welcome();
+
+ childMessage.send(eventName, {jobId, number, end: false});
+ number++;
+ }, 1000);
+
+ // 用 setTimeout 模拟任务运行时长
+ setTimeout(() => {
+ // 关闭定时器
+ clearInterval(timer);
+
+ // 任务结束,重置前端显示
+ childMessage.send(eventName, {jobId, number:0, pid:0, end: true});
+
+ // 如果是childJob任务,必须调用 Ps.exit() 方法,让进程退出,否则会常驻内存
+ // 如果是childPoolJob任务,常驻内存,等待下一个业务
+ if (Ps.isChildJob()) {
+ Ps.exit();
+ }
+ }, 10 * 1000)
+ }
+}
+
+TimerJob.toString = () => '[class TimerJob]';
+module.exports = TimerJob;
diff --git a/electron/preload/bridge.js b/electron/preload/bridge.js
new file mode 100644
index 0000000..c9b86db
--- /dev/null
+++ b/electron/preload/bridge.js
@@ -0,0 +1,10 @@
+/*
+ * 如果启用了上下文隔离,渲染进程无法使用electron的api,
+ * 可通过contextBridge 导出api给渲染进程使用
+ */
+
+const { contextBridge, ipcRenderer } = require('electron')
+
+contextBridge.exposeInMainWorld('electron', {
+ ipcRenderer: ipcRenderer,
+})
\ No newline at end of file
diff --git a/electron/preload/index.js b/electron/preload/index.js
new file mode 100644
index 0000000..85d732a
--- /dev/null
+++ b/electron/preload/index.js
@@ -0,0 +1,19 @@
+/*************************************************
+ ** preload为预加载模块,该文件将会在程序启动时加载 **
+ *************************************************/
+const Addon = require('ee-core/addon');
+const Services = require('ee-core/services');
+
+/**
+ * 预加载模块入口
+ */
+module.exports = async () => {
+
+ // 已实现的功能模块,可选择性使用和修改
+ Addon.get('tray').create();
+ Addon.get('security').create();
+ Addon.get('awaken').create();
+ Addon.get('autoUpdater').create();
+
+ //Services.get('cross').createGoServer();
+}
\ No newline at end of file
diff --git a/electron/service/cross.js b/electron/service/cross.js
new file mode 100644
index 0000000..d188ed2
--- /dev/null
+++ b/electron/service/cross.js
@@ -0,0 +1,104 @@
+'use strict';
+
+const { Service } = require('ee-core');
+const Cross = require('ee-core/cross');
+const Log = require('ee-core/log');
+const Ps = require('ee-core/ps');
+const path = require("path");
+const Is = require('ee-core/utils/is');
+
+/**
+ * cross(service层为单例)
+ * @class
+ */
+class CrossService extends Service {
+
+ constructor(ctx) {
+ super(ctx);
+ }
+
+ /**
+ * create go service
+ * In the default configuration, services can be started with applications.
+ * Developers can turn off the configuration and create it manually.
+ */
+ async createGoServer() {
+ // method 1: Use the default Settings
+ //const entity = await Cross.run(serviceName);
+
+ // method 2: Use custom configuration
+ const serviceName = "go";
+ const opt = {
+ name: 'goapp',
+ cmd: path.join(Ps.getExtraResourcesDir(), 'goapp'),
+ directory: Ps.getExtraResourcesDir(),
+ args: ['--port=7073'],
+ appExit: true,
+ }
+ const entity = await Cross.run(serviceName, opt);
+ Log.info('server name:', entity.name);
+ Log.info('server config:', entity.config);
+ Log.info('server url:', entity.getUrl());
+
+ return;
+ }
+
+ /**
+ * create java server
+ */
+ async createJavaServer() {
+ const serviceName = "java";
+ const jarPath = path.join(Ps.getExtraResourcesDir(), 'java-app.jar');
+ const opt = {
+ name: 'javaapp',
+ cmd: path.join(Ps.getExtraResourcesDir(), 'jre1.8.0_201/bin/javaw.exe'),
+ directory: Ps.getExtraResourcesDir(),
+ args: ['-jar', '-server', '-Xms512M', '-Xmx512M', '-Xss512k', '-Dspring.profiles.active=prod', `-Dserver.port=18080`, `-Dlogging.file.path=${Ps.getLogDir()}`, `${jarPath}`],
+ appExit: false,
+ }
+ if (Is.macOS()) {
+ // Setup Java program
+ opt.cmd = path.join(Ps.getExtraResourcesDir(), 'jre1.8.0_201/Contents/Home/bin/java');
+ }
+ if (Is.linux()) {
+ // Setup Java program
+ }
+
+ const entity = await Cross.run(serviceName, opt);
+ Log.info('server name:', entity.name);
+ Log.info('server config:', entity.config);
+ Log.info('server url:', Cross.getUrl(entity.name));
+
+ return;
+ }
+
+ /**
+ * create python service
+ * In the default configuration, services can be started with applications.
+ * Developers can turn off the configuration and create it manually.
+ */
+ async createPythonServer() {
+ // method 1: Use the default Settings
+ //const entity = await Cross.run(serviceName);
+
+ // method 2: Use custom configuration
+ const serviceName = "python";
+ const opt = {
+ name: 'pyapp',
+ cmd: path.join(Ps.getExtraResourcesDir(), 'py', 'pyapp'),
+ directory: path.join(Ps.getExtraResourcesDir(), 'py'),
+ args: ['--port=7074'],
+ windowsExtname: true,
+ appExit: true,
+ }
+ const entity = await Cross.run(serviceName, opt);
+ Log.info('server name:', entity.name);
+ Log.info('server config:', entity.config);
+ Log.info('server url:', entity.getUrl());
+
+ return;
+ }
+}
+
+CrossService.toString = () => '[class CrossService]';
+module.exports = CrossService;
\ No newline at end of file
diff --git a/electron/service/database/jsondb.js b/electron/service/database/jsondb.js
new file mode 100644
index 0000000..7c6cc6d
--- /dev/null
+++ b/electron/service/database/jsondb.js
@@ -0,0 +1,138 @@
+'use strict';
+
+const { Service } = require('ee-core');
+const Storage = require('ee-core/storage');
+const _ = require('lodash');
+const path = require('path');
+
+/**
+ * json数据存储
+ * @class
+ */
+class JsondbService extends Service {
+
+ constructor (ctx) {
+ super(ctx);
+
+ // jsondb数据库
+ this.jsonFile = 'demo';
+ this.demoDB = Storage.connection(this.jsonFile);
+ this.demoDBKey = {
+ test_data: 'test_data'
+ };
+ }
+
+ /*
+ * 增 Test data
+ */
+ async addTestData(user) {
+ const key = this.demoDBKey.test_data;
+ if (!this.demoDB.db.has(key).value()) {
+ this.demoDB.db.set(key, []).write();
+ }
+
+ const data = this.demoDB.db
+ .get(key)
+ .push(user)
+ .write();
+
+ return data;
+ }
+
+ /*
+ * 删 Test data
+ */
+ async delTestData(name = '') {
+ const key = this.demoDBKey.test_data;
+ const data = this.demoDB.db
+ .get(key)
+ .remove({name: name})
+ .write();
+
+ return data;
+ }
+
+ /*
+ * 改 Test data
+ */
+ async updateTestData(name= '', age = 0) {
+ const key = this.demoDBKey.test_data;
+ const data = this.demoDB.db
+ .get(key)
+ .find({name: name}) // 修改找到的第一个数据,貌似无法批量修改 todo
+ .assign({age: age})
+ .write();
+
+ return data;
+ }
+
+ /*
+ * 查 Test data
+ */
+ async getTestData(age = 0) {
+ const key = this.demoDBKey.test_data;
+ let data = this.demoDB.db
+ .get(key)
+ //.find({age: age}) 查找单个
+ .filter(function(o) {
+ let isHas = true;
+ isHas = age === o.age ? true : false;
+ return isHas;
+ })
+ //.orderBy(['age'], ['name']) 排序
+ //.slice(0, 10) 分页
+ .value();
+
+ if (_.isEmpty(data)) {
+ data = []
+ }
+
+ return data;
+ }
+
+ /*
+ * all Test data
+ */
+ async getAllTestData() {
+ const key = this.demoDBKey.test_data;
+ if (!this.demoDB.db.has(key).value()) {
+ this.demoDB.db.set(key, []).write();
+ }
+ let data = this.demoDB.db
+ .get(key)
+ .value();
+
+ if (_.isEmpty(data)) {
+ data = []
+ }
+
+ return data;
+ }
+
+ /*
+ * get data dir (sqlite)
+ */
+ async getDataDir() {
+ const dir = this.demoDB.getStorageDir();
+
+ return dir;
+ }
+
+ /*
+ * set custom data dir (sqlite)
+ */
+ async setCustomDataDir(dir) {
+ if (_.isEmpty(dir)) {
+ return;
+ }
+
+ // the absolute path of the db file
+ const dbFile = path.join(dir, this.jsonFile);
+ this.demoDB = Storage.connection(dbFile);
+
+ return;
+ }
+}
+
+JsondbService.toString = () => '[class JsondbService]';
+module.exports = JsondbService;
diff --git a/electron/service/database/sqlitedb.js b/electron/service/database/sqlitedb.js
new file mode 100644
index 0000000..7a18d12
--- /dev/null
+++ b/electron/service/database/sqlitedb.js
@@ -0,0 +1,163 @@
+'use strict';
+
+const { Service } = require('ee-core');
+const Storage = require('ee-core/storage');
+const _ = require('lodash');
+const path = require('path');
+
+/**
+ * sqlite数据存储
+ * @class
+ */
+class SqlitedbService extends Service {
+
+ constructor (ctx) {
+ super(ctx);
+
+ this.sqliteFile = 'sqlite-demo.db';
+ let sqliteOptions = {
+ driver: 'sqlite',
+ default: {
+ timeout: 6000,
+ verbose: console.log // 打印sql语法
+ }
+ }
+ this.demoSqliteDB = Storage.connection(this.sqliteFile, sqliteOptions);
+ }
+
+ /*
+ * 检查并创建表 (sqlite)
+ */
+ async checkAndCreateTableSqlite(tableName = '') {
+ if (_.isEmpty(tableName)) {
+ throw new Error(`table name is required`);
+ }
+ // 检查表是否存在
+ const userTable = this.demoSqliteDB.db.prepare('SELECT * FROM sqlite_master WHERE type=? AND name = ?');
+ const result = userTable.get('table', tableName);
+ //console.log('result:', result);
+ if (result) {
+ return;
+ }
+
+ // 创建表
+ const create_table_user =
+ `CREATE TABLE ${tableName}
+ (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ name CHAR(50) NOT NULL,
+ age INT
+ );`
+ this.demoSqliteDB.db.exec(create_table_user);
+
+ }
+
+ /*
+ * 增 Test data (sqlite)
+ */
+ async addTestDataSqlite(data) {
+ //console.log("add data:", data);
+
+ let table = 'user';
+ await this.checkAndCreateTableSqlite(table);
+
+ const insert = this.demoSqliteDB.db.prepare(`INSERT INTO ${table} (name, age) VALUES (@name, @age)`);
+ insert.run(data);
+
+ return true;
+ }
+
+ /*
+ * 删 Test data (sqlite)
+ */
+ async delTestDataSqlite(name = '') {
+ //console.log("delete name:", name);
+
+ let table = 'user';
+ await this.checkAndCreateTableSqlite(table);
+
+ const delUser = this.demoSqliteDB.db.prepare(`DELETE FROM ${table} WHERE name = ?`);
+ delUser.run(name);
+
+ return true;
+ }
+
+ /*
+ * 改 Test data (sqlite)
+ */
+ async updateTestDataSqlite(name= '', age = 0) {
+ //console.log("update :", {name, age});
+
+ let table = 'user';
+ await this.checkAndCreateTableSqlite(table);
+
+ const updateUser = this.demoSqliteDB.db.prepare(`UPDATE ${table} SET age = ? WHERE name = ?`);
+ updateUser.run(age, name);
+
+ return true;
+ }
+
+ /*
+ * 查 Test data (sqlite)
+ */
+ async getTestDataSqlite(age = 0) {
+ //console.log("select :", {age});
+
+ let table = 'user';
+ await this.checkAndCreateTableSqlite(table);
+
+ const selectUser = this.demoSqliteDB.db.prepare(`SELECT * FROM ${table} WHERE age = @age`);
+ const users = selectUser.all({age: age});
+ //console.log("select users:", users);
+ return users;
+ }
+
+ /*
+ * all Test data (sqlite)
+ */
+ async getAllTestDataSqlite() {
+ //console.log("select all user");
+
+ let table = 'user';
+ await this.checkAndCreateTableSqlite(table);
+
+ const selectAllUser = this.demoSqliteDB.db.prepare(`SELECT * FROM ${table} `);
+ const allUser = selectAllUser.all();
+ //console.log("select allUser:", allUser);
+ return allUser;
+ }
+
+ /*
+ * get data dir (sqlite)
+ */
+ async getDataDir() {
+ const dir = this.demoSqliteDB.getStorageDir();
+
+ return dir;
+ }
+
+ /*
+ * set custom data dir (sqlite)
+ */
+ async setCustomDataDir(dir) {
+ if (_.isEmpty(dir)) {
+ return;
+ }
+
+ // the absolute path of the db file
+ const dbFile = path.join(dir, this.sqliteFile);
+ const sqliteOptions = {
+ driver: 'sqlite',
+ default: {
+ timeout: 6000,
+ verbose: console.log
+ }
+ }
+ this.demoSqliteDB = Storage.connection(dbFile, sqliteOptions);
+
+ return;
+ }
+}
+
+SqlitedbService.toString = () => '[class SqlitedbService]';
+module.exports = SqlitedbService;
diff --git a/electron/service/effect.js b/electron/service/effect.js
new file mode 100644
index 0000000..4fa1b2d
--- /dev/null
+++ b/electron/service/effect.js
@@ -0,0 +1,30 @@
+'use strict';
+
+const { Service } = require('ee-core');
+
+/**
+ * effect(service层为单例)
+ * @class
+ */
+class EffectService extends Service {
+
+ constructor(ctx) {
+ super(ctx);
+ }
+
+ /**
+ * test
+ */
+ async test(args) {
+ let obj = {
+ status:'ok',
+ params: args
+ }
+
+ return obj;
+ }
+
+}
+
+EffectService.toString = () => '[class EffectService]';
+module.exports = EffectService;
\ No newline at end of file
diff --git a/electron/service/example.js b/electron/service/example.js
new file mode 100644
index 0000000..78074fe
--- /dev/null
+++ b/electron/service/example.js
@@ -0,0 +1,35 @@
+'use strict';
+
+const { Service } = require('ee-core');
+const Services = require('ee-core/services');
+const Log = require('ee-core/log');
+
+/**
+ * 示例服务(service层为单例)
+ * @class
+ */
+class ExampleService extends Service {
+
+ constructor(ctx) {
+ super(ctx);
+ }
+
+ /**
+ * test
+ */
+ async test(args) {
+ let obj = {
+ status:'ok',
+ params: args
+ }
+
+ Log.info('ExampleService obj:', obj);
+
+ Services.get('framework').test('egg');
+
+ return obj;
+ }
+}
+
+ExampleService.toString = () => '[class ExampleService]';
+module.exports = ExampleService;
\ No newline at end of file
diff --git a/electron/service/framework.js b/electron/service/framework.js
new file mode 100644
index 0000000..cdf5696
--- /dev/null
+++ b/electron/service/framework.js
@@ -0,0 +1,195 @@
+'use strict';
+
+const { Service } = require('ee-core');
+const Log = require('ee-core/log');
+const { ChildJob, ChildPoolJob } = require('ee-core/jobs');
+const HttpClient = require('ee-core/httpclient');
+const Ps = require('ee-core/ps');
+
+/**
+ * framework
+ * @class
+ */
+class FrameworkService extends Service {
+
+ constructor(ctx) {
+ super(ctx);
+
+ // 在构造函数中初始化一些变量
+ this.myTimer = null;
+ this.myJob = new ChildJob();
+ this.myJobPool = new ChildPoolJob();
+ this.taskForJob = {};
+ }
+
+ /**
+ * test
+ */
+ async test(args) {
+ let obj = {
+ status:'ok',
+ params: args
+ }
+ Log.info('FrameworkService obj:', obj);
+ return obj;
+ }
+
+ /**
+ * ipc通信(双向)
+ */
+ bothWayMessage(type, content, event) {
+ // 前端ipc频道 channel
+ const channel = 'controller.framework.ipcSendMsg';
+
+ if (type == 'start') {
+ // 每隔1秒,向前端页面发送消息
+ // 用定时器模拟
+ this.myTimer = setInterval(function(e, c, msg) {
+ let timeNow = Date.now();
+ let data = msg + ':' + timeNow;
+ e.reply(`${c}`, data)
+ }, 1000, event, channel, content)
+
+ return '开始了'
+ } else if (type == 'end') {
+ clearInterval(this.myTimer);
+ return '停止了'
+ } else {
+ return 'ohther'
+ }
+ }
+
+ /**
+ * 执行任务
+ */
+ doJob(jobId, action, event) {
+ let res = {};
+ let oneTask;
+ const channel = 'controller.framework.timerJobProgress';
+ if (action == 'create') {
+ // 执行任务及监听进度
+ let eventName = 'job-timer-progress-' + jobId;
+ const timerTask = this.myJob.exec('./jobs/example/timer', {jobId});
+ timerTask.emitter.on(eventName, (data) => {
+ Log.info('[main-process] timerTask, from TimerJob data:', data);
+ // 发送数据到渲染进程
+ event.sender.send(`${channel}`, data)
+ })
+
+ // 执行任务及监听进度 异步
+ // myjob.execPromise('./jobs/example/timer', {jobId}).then(task => {
+ // task.emitter.on(eventName, (data) => {
+ // Log.info('[main-process] timerTask, from TimerJob data:', data);
+ // // 发送数据到渲染进程
+ // event.sender.send(`${channel}`, data)
+ // })
+ // });
+
+ res.pid = timerTask.pid;
+ this.taskForJob[jobId] = timerTask;
+ }
+ if (action == 'close') {
+ oneTask = this.taskForJob[jobId];
+ oneTask.kill();
+ event.sender.send(`${channel}`, {jobId, number:0, pid:0});
+ }
+
+ return res;
+ }
+
+ /**
+ * 创建pool
+ */
+ doCreatePool(num, event) {
+ const channel = 'controller.framework.createPoolNotice';
+ this.myJobPool.create(num).then(pids => {
+ event.reply(`${channel}`, pids);
+ });
+ }
+
+ /**
+ * 通过进程池执行任务
+ */
+ doJobByPool(jobId, action, event) {
+ let res = {};
+ const channel = 'controller.framework.timerJobProgress';
+ if (action == 'run') {
+ // 异步-执行任务及监听进度
+ this.myJobPool.runPromise('./jobs/example/timer', {jobId}).then(task => {
+
+ // 监听器名称唯一,否则会出现重复监听。
+ // 任务完成时,需要移除监听器,防止内存泄漏
+ let eventName = 'job-timer-progress-' + jobId;
+ task.emitter.on(eventName, (data) => {
+ Log.info('[main-process] [ChildPoolJob] timerTask, from TimerJob data:', data);
+
+ // 发送数据到渲染进程
+ event.sender.send(`${channel}`, data)
+
+ // 如果收到任务完成的消息,移除监听器
+ if (data.end) {
+ task.emitter.removeAllListeners(eventName);
+ }
+ });
+
+ res.pid = task.pid;
+ });
+ }
+ return res;
+ }
+
+ /**
+ * test
+ */
+ monitorJob() {
+ setInterval(() => {
+ let jobPids = this.myJob.getPids();
+ let jobPoolPids = this.myJobPool.getPids();
+ Log.info(`[main-process] [monitorJob] jobPids: ${jobPids}, jobPoolPids: ${jobPoolPids}`);
+ }, 5000)
+ }
+
+ /**
+ * 上传到smms
+ */
+ async uploadFileToSMMS(tmpFile) {
+ const res = {
+ code: 1000,
+ message: 'unknown error',
+ };
+
+ try {
+ const headersObj = {
+ 'Content-Type': 'multipart/form-data',
+ 'Authorization': 'aaaaaaaaaaaaa' // 请修改这个token,用你自己的账号token
+ };
+ const url = 'https://sm.ms/api/v2/upload';
+ const hc = new HttpClient();
+ const response = await hc.request(url, {
+ method: 'POST',
+ headers: headersObj,
+ files: {
+ smfile: tmpFile,
+ },
+ dataType: 'json',
+ timeout: 15000,
+ });
+ const result = response.data;
+ if (Ps.isDev()) {
+ Log.info('[FrameworkService] [uploadFileToSMMS]: info result:%j', result);
+ }
+ if (result.code !== 'success') {
+ Log.error('[FrameworkService] [uploadFileToSMMS]: res error result:%j', result);
+ }
+ return result;
+ } catch (e) {
+ Log.error('[FrameworkService] [uploadFileToSMMS]: ERROR ', e);
+ }
+
+ return res;
+ }
+
+}
+
+FrameworkService.toString = () => '[class FrameworkService]';
+module.exports = FrameworkService;
\ No newline at end of file
diff --git a/electron/service/hardware.js b/electron/service/hardware.js
new file mode 100644
index 0000000..a295c01
--- /dev/null
+++ b/electron/service/hardware.js
@@ -0,0 +1,138 @@
+'use strict';
+
+const { Service } = require('ee-core');
+// 串口的功能
+const { SerialPort } = require('serialport')
+// 保存串口实例
+var seriaPortIns = undefined;
+
+// 这个是处理时间的库
+var moment = require('moment')
+// Modbus TCP
+// create an empty modbus client
+const ModbusRTU = require("modbus-serial")
+var client = new ModbusRTU();
+
+// open connection to a tcp line
+// 创建Modbus TCP连接,IP是15.18.200.23,端口502
+// client.connectTCP("15.18.200.23", { port: 502 });
+//-------
+
+/**
+ * hardware(service层为单例)
+ * @class
+ */
+class HardwareService extends Service {
+
+ constructor(ctx) {
+ super(ctx);
+ }
+
+ /**
+ * 发送消息
+ * @param {*} seriaPort 串口实例
+ */
+ sendSeriaPort(args) {
+ const port = seriaPortIns;
+ const msg = args.msg;
+ port.write(msg, 'hex')
+ console.log('测试发送消息' + msg);
+
+ }
+ /**
+ * 连接串口 只执行一次
+ * @param {*} options 串口参数
+ * @param {*} event 回调.
+ */
+ connectSeriaPort(options, event) {
+
+ if (seriaPortIns != undefined) {
+ console.log("SerialPort is have");
+ return;
+ }
+ const channel = 'controller.hardware.connectSeriaPort';
+ const port = new SerialPort(options, (e) => {
+ console.log("SerialPort open");
+ console.log(e);
+ if (e === null) {
+ // 打开成功 把串口发送出去
+ let data2 = {
+ type: 'connect'
+ }
+ event.reply(`${channel}`, data2)
+ }
+
+ })
+
+ port.on('data', (data) => {
+ let data2 = {
+ type: 'received',
+ data: data
+ }
+ console.log(`Received data: ${data2}`)
+ event.reply(`${channel}`, data2)
+ })
+ setInterval(() => {
+ // console.log('setInterval')
+ if (!port.isOpen) {
+ // console.log('setInterval open')
+ port.open();
+ }
+
+ }, 1000)
+ port.on('close', () => {
+ let data2 = {
+ type: 'close'
+ }
+ console.log(`SerialPort close: ${data2}`)
+ event.reply(`${channel}`, data2)
+ })
+ port.on('error', (e) => {
+ let data2 = {
+ type: 'error'
+ }
+ console.log(`SerialPort error: ${e}`)
+ event.reply(`${channel}`, data2)
+ })
+
+ seriaPortIns = port;
+
+ }
+ /**
+ * test
+ */
+ async test(args) {
+ let obj = {
+ status: 'ok',
+ params: args
+ }
+
+ return obj;
+ }
+
+ // 样例 ModbusTCP
+ tempModbusTCP() {
+ //http://momentjs.cn/ 时间库
+ //https://www.jianshu.com/p/50954625b158
+ // 读取非甲烷总烃的关于总烃、甲烷、NMHC这3个寄存器(寄存器地址分别为22,25,28)中的浓度
+ // 每隔5秒钟读取保持寄存器的值,从寄存器地址22开始读取,读10个寄存器到data数组中
+ setInterval(function () {
+ // 要连接后才能用
+ client.readHoldingRegisters(22, 10, function (err, data) {
+ // 获取当前时间
+ //moment.locale('zh-cn');
+ // console.log("----------------------------------------------------------------------");
+ // console.log("数据时间是:" + moment().format('YYYY年MM月DD日 HH时mm分ss秒'));
+ // console.log("总烃的浓度是:" + data.data[0] * 0.01 + "ppmV"); // 总烃浓度对应的寄存器地址为22
+ // console.log("CH4的浓度是:" + data.data[3] * 0.01 + "ppmV"); // CH4浓度对应的寄存器地址为22
+ // console.log("NHMC的浓度是:" + data.data[6] * 0.01 + "ppmV"); // NHMC浓度对应的寄存器地址为22
+ // console.log("----------------------------------------------------------------------");
+
+ //console.log(data.data);
+ });
+ }, 5000);
+ }
+}
+
+HardwareService.toString = () => '[class HardwareService]';
+module.exports = HardwareService;
\ No newline at end of file
diff --git a/electron/service/os.js b/electron/service/os.js
new file mode 100644
index 0000000..797a576
--- /dev/null
+++ b/electron/service/os.js
@@ -0,0 +1,87 @@
+'use strict';
+
+const { Service } = require('ee-core');
+const { BrowserView, Notification } = require('electron');
+const CoreWindow = require('ee-core/electron/window');
+
+/**
+ * os(service层为单例)
+ * @class
+ */
+class OsService extends Service {
+
+ constructor(ctx) {
+ super(ctx);
+ this.myBrowserView = null;
+ this.myNotification = null;
+ }
+
+ /**
+ * createBrowserView
+ */
+ createBrowserView(contentUrl) {
+
+ // electron 实验性功能,慎用
+ const win = CoreWindow.getMainWindow();
+ this.myBrowserView = new BrowserView();
+ win.setBrowserView(this.myBrowserView);
+ this.myBrowserView.setBounds({
+ x: 300,
+ y: 170,
+ width: 650,
+ height: 400
+ });
+ this.myBrowserView.webContents.loadURL(contentUrl);
+ }
+
+ /**
+ * removeBrowserView
+ */
+ removeBrowserView() {
+ // one
+ this.myBrowserView.webContents.loadURL('about:blank')
+
+ // two - electron 11 remove destroy()
+ // this.myBrowserView.webContents.destroy();
+
+ // three
+ // this.myBrowserView.webContents.forcefullyCrashRenderer()
+
+ // fore
+ // this.myBrowserView.webContents.close
+ }
+
+ /**
+ * createNotification
+ */
+ createNotification(options, event) {
+ const channel = 'controller.os.sendNotification';
+ this.myNotification = new Notification(options);
+
+ if (options.clickEvent) {
+ this.myNotification.on('click', (e) => {
+ let data = {
+ type: 'click',
+ msg: '您点击了通知消息'
+ }
+ event.reply(`${channel}`, data)
+ });
+ }
+
+ if (options.closeEvent) {
+ this.myNotification.on('close', (e) => {
+ let data = {
+ type: 'close',
+ msg: '您关闭了通知消息'
+ }
+ event.reply(`${channel}`, data)
+ });
+ }
+
+ this.myNotification.show();
+ }
+
+}
+
+OsService.toString = () => '[class OsService]';
+module.exports = OsService;
\ No newline at end of file
diff --git a/frontend/.editorconfig b/frontend/.editorconfig
new file mode 100644
index 0000000..3454886
--- /dev/null
+++ b/frontend/.editorconfig
@@ -0,0 +1,14 @@
+# https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+insert_final_newline = false
+trim_trailing_whitespace = false
diff --git a/frontend/.env.development b/frontend/.env.development
new file mode 100644
index 0000000..9005571
--- /dev/null
+++ b/frontend/.env.development
@@ -0,0 +1,2 @@
+VITE_TITLE=""
+VITE_GO_URL="http://localhost:8081"
\ No newline at end of file
diff --git a/frontend/.env.production b/frontend/.env.production
new file mode 100644
index 0000000..a0eaf9f
--- /dev/null
+++ b/frontend/.env.production
@@ -0,0 +1,2 @@
+VITE_TITLE=""
+VITE_GO_URL="http://www.test.com"
\ No newline at end of file
diff --git a/frontend/.gitignore b/frontend/.gitignore
new file mode 100644
index 0000000..082d756
--- /dev/null
+++ b/frontend/.gitignore
@@ -0,0 +1,6 @@
+node_modules
+.DS_Store
+dist
+dist-ssr
+*.local
+package-lock.json
\ No newline at end of file
diff --git a/frontend/index.html b/frontend/index.html
new file mode 100644
index 0000000..c0b96bd
--- /dev/null
+++ b/frontend/index.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/package.json b/frontend/package.json
new file mode 100644
index 0000000..26ed84f
--- /dev/null
+++ b/frontend/package.json
@@ -0,0 +1,34 @@
+{
+ "name": "ee",
+ "version": "1.0.0",
+ "scripts": {
+ "dev": "vite --host --port 17680",
+ "serve": "vite --host --port 17680",
+ "build-staging": "vite build --mode staging",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@ant-design/icons-vue": "^6.1.0",
+ "ant-design-vue": "2.2.6",
+ "axios": "^0.21.1",
+ "element-plus": "^2.4.0",
+ "socket.io-client": "^4.4.1",
+ "store2": "^2.13.2",
+ "vue": "^3.2.33",
+ "vue-router": "^4.0.14",
+ "vuex": "^4.0.2",
+ "xgplayer": "^2.31.6"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "^4.2.3",
+ "@vue/compiler-sfc": "^3.2.33",
+ "less": "^4.1.2",
+ "less-loader": "^10.2.0",
+ "postcss": "^8.4.13",
+ "postcss-pxtorem": "^6.0.0",
+ "terser": "^5.19.1",
+ "vite": "^4.4.4",
+ "vite-plugin-compression": "^0.5.1"
+ }
+}
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
new file mode 100644
index 0000000..ee8b99c
--- /dev/null
+++ b/frontend/src/App.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
diff --git a/frontend/src/api/main.js b/frontend/src/api/main.js
new file mode 100644
index 0000000..e31ea2c
--- /dev/null
+++ b/frontend/src/api/main.js
@@ -0,0 +1,100 @@
+
+/**
+ * 主进程与渲染进程通信频道定义
+ * Definition of communication channels between main process and rendering process
+ */
+const ipcApiRoute = {
+ // framework
+ test: 'controller.example.test',
+ checkForUpdater: 'controller.framework.checkForUpdater',
+ downloadApp: 'controller.framework.downloadApp',
+ jsondbOperation: 'controller.framework.jsondbOperation',
+ sqlitedbOperation: 'controller.framework.sqlitedbOperation',
+ uploadFile: 'controller.framework.uploadFile',
+ checkHttpServer: 'controller.framework.checkHttpServer',
+ doHttpRequest: 'controller.framework.doHttpRequest',
+ doSocketRequest: 'controller.framework.doSocketRequest',
+ ipcInvokeMsg: 'controller.framework.ipcInvokeMsg',
+ ipcSendSyncMsg: 'controller.framework.ipcSendSyncMsg',
+ ipcSendMsg: 'controller.framework.ipcSendMsg',
+ startJavaServer: 'controller.framework.startJavaServer',
+ closeJavaServer: 'controller.framework.closeJavaServer',
+ someJob: 'controller.framework.someJob',
+ timerJobProgress: 'controller.framework.timerJobProgress',
+ createPool: 'controller.framework.createPool',
+ createPoolNotice: 'controller.framework.createPoolNotice',
+ someJobByPool: 'controller.framework.someJobByPool',
+ hello: 'controller.framework.hello',
+ openSoftware: 'controller.framework.openSoftware',
+ // 获取ex资源目录下的配置文件 参数唯文件名
+ getExResConfig: 'controller.framework.getExResConfig',
+ // 发送socket 消息
+ sendTcpSocket: 'controller.framework.sendTcpSocket',
+ // 串口 参数为 整个串口参数
+ connectSeriaPort: 'controller.framework.connectSeriaPort',
+ // 发送串口消息 参数为 msg
+ sendSeriaPort: 'controller.framework.sendSeriaPort',
+ // os
+ messageShow: 'controller.os.messageShow',
+ messageShowConfirm: 'controller.os.messageShowConfirm',
+ selectFolder: 'controller.os.selectFolder',
+ selectPic: 'controller.os.selectPic',
+ openDirectory: 'controller.os.openDirectory',
+ loadViewContent: 'controller.os.loadViewContent',
+ removeViewContent: 'controller.os.removeViewContent',
+ createWindow: 'controller.os.createWindow',
+ getWCid: 'controller.os.getWCid',
+ sendNotification: 'controller.os.sendNotification',
+ initPowerMonitor: 'controller.os.initPowerMonitor',
+ getScreen: 'controller.os.getScreen',
+ autoLaunch: 'controller.os.autoLaunch',
+ setTheme: 'controller.os.setTheme',
+ getTheme: 'controller.os.getTheme',
+ // 获取mac
+ getAllMac: 'controller.os.getAllMac',
+ // 获取系统信息
+ getOSMessage: 'controller.os.getOSMessage',
+ // 声音设置
+ deviceLoudness: 'controller.os.deviceLoudness',
+ //deviceRestart 重启
+ deviceRestart: 'controller.os.deviceRestart',
+ // 设备关机
+ deviceShutdown: 'controller.os.deviceShutdown',
+
+ // 杀掉进程 参数为进程名称, 模糊搜索,注意可能杀错
+ deviceKillName: 'controller.os.deviceKillName',
+ // 启动程序 参数为程序目录绝对地址
+ deviceStarExe: 'controller.os.deviceStarExe',
+ // hardware
+ getPrinterList: 'controller.hardware.getPrinterList',
+ print: 'controller.hardware.print',
+ printStatus: 'controller.hardware.printStatus',
+
+ // effect
+ selectFile: 'controller.effect.selectFile',
+ loginWindow: 'controller.effect.loginWindow',
+ restoreWindow: 'controller.effect.restoreWindow',
+
+
+ // cross
+ crossInfo: 'controller.cross.info',
+ getCrossUrl: 'controller.cross.getUrl',
+ killCrossServer: 'controller.cross.killServer',
+ createCrossServer: 'controller.cross.createServer',
+ requestApi: 'controller.cross.requestApi',
+}
+
+/**
+ * 自定义频道
+ * custom chennel
+ */
+const specialIpcRoute = {
+ appUpdater: 'app.updater', // updater channel
+ window1ToWindow2: 'window1-to-window2', // windows channel
+ window2ToWindow1: 'window2-to-window1', // windows channel
+}
+
+export {
+ ipcApiRoute, specialIpcRoute
+}
+
diff --git a/frontend/src/assets/global.less b/frontend/src/assets/global.less
new file mode 100644
index 0000000..4192318
--- /dev/null
+++ b/frontend/src/assets/global.less
@@ -0,0 +1,16 @@
+#app {
+ font-family: Avenir, Helvetica, Arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ text-align: center;
+ color: #2c3e50;
+ height: 100%;
+}
+
+/* 滚动条 */
+::-webkit-scrollbar{width:8px;height:4px}
+::-webkit-scrollbar-button{width:10px;height:0}
+::-webkit-scrollbar-track{background:0 0}
+::-webkit-scrollbar-thumb{background:#E6FFEE;-webkit-transition:.3s;transition:.3s}
+::-webkit-scrollbar-thumb:hover{background-color:#07C160}
+::-webkit-scrollbar-thumb:active{background-color:#07C160}
\ No newline at end of file
diff --git a/frontend/src/assets/login.png b/frontend/src/assets/login.png
new file mode 100644
index 0000000..5882c86
Binary files /dev/null and b/frontend/src/assets/login.png differ
diff --git a/frontend/src/assets/logo.png b/frontend/src/assets/logo.png
new file mode 100644
index 0000000..95dc60b
Binary files /dev/null and b/frontend/src/assets/logo.png differ
diff --git a/frontend/src/assets/theme.less b/frontend/src/assets/theme.less
new file mode 100644
index 0000000..8d9b773
--- /dev/null
+++ b/frontend/src/assets/theme.less
@@ -0,0 +1,17 @@
+@import 'ant-design-vue/dist/antd.less';
+
+// 可自定义主题颜色
+@primary-color: #07C160; // 全局主色
+@link-color: #1890ff; // 链接色
+@success-color: #52c41a; // 成功色
+@warning-color: #faad14; // 警告色
+@error-color: #f5222d; // 错误色
+@font-size-base: 14px; // 主字号
+@heading-color: rgba(0, 0, 0, 0.85); // 标题色
+@text-color: rgba(0, 0, 0, 0.65); // 主文本色
+@text-color-secondary: rgba(0, 0, 0, 0.45); // 次文本色
+@disabled-color: rgba(0, 0, 0, 0.25); // 失效色
+@border-radius-base: 4px; // 组件/浮层圆角
+@border-color-base: #dce3e8; // 边框色
+@box-shadow-base: 0 2px 8px rgba(0, 0, 0, 0.15); // 浮层阴影
+
diff --git a/frontend/src/components/global/iconFont.js b/frontend/src/components/global/iconFont.js
new file mode 100644
index 0000000..6ee51f0
--- /dev/null
+++ b/frontend/src/components/global/iconFont.js
@@ -0,0 +1,18 @@
+import { createFromIconfontCN } from '@ant-design/icons-vue'
+import { h } from 'vue'
+
+const IconFont = createFromIconfontCN({
+ scriptUrl: 'https://at.alicdn.com/t/font_2456157_4ovzopz659q.js',
+ extraCommonProps: {
+ type: 'icon-fengche',
+ style: {
+ fontSize: '18px',
+ },
+ },
+})
+
+const DynamicIconFont = props => {
+ return h(IconFont, { type: props.type || 'icon-fengche' })
+}
+
+export default DynamicIconFont
diff --git a/frontend/src/components/global/index.js b/frontend/src/components/global/index.js
new file mode 100644
index 0000000..9227d20
--- /dev/null
+++ b/frontend/src/components/global/index.js
@@ -0,0 +1,12 @@
+import iconFont from './iconFont'
+const modules = import.meta.globEager('./*.vue')
+const map = {}
+Object.keys(modules).forEach(file => {
+ const modulesName = file.replace('./', '').replace('.vue', '')
+ map[modulesName] = modules[file].default
+})
+const globalComponents = {
+ ...map,
+ iconFont,
+}
+export default globalComponents
diff --git a/frontend/src/layouts/AppSider.vue b/frontend/src/layouts/AppSider.vue
new file mode 100644
index 0000000..7ddf788
--- /dev/null
+++ b/frontend/src/layouts/AppSider.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/layouts/Menu.vue b/frontend/src/layouts/Menu.vue
new file mode 100644
index 0000000..462aab5
--- /dev/null
+++ b/frontend/src/layouts/Menu.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
diff --git a/frontend/src/layouts/index.js b/frontend/src/layouts/index.js
new file mode 100644
index 0000000..7ae5f46
--- /dev/null
+++ b/frontend/src/layouts/index.js
@@ -0,0 +1,7 @@
+import AppSider from '@/layouts/AppSider'
+import Menu from '@/layouts/Menu'
+
+export {
+ AppSider,
+ Menu
+}
diff --git a/frontend/src/main.js b/frontend/src/main.js
new file mode 100644
index 0000000..df6c331
--- /dev/null
+++ b/frontend/src/main.js
@@ -0,0 +1,32 @@
+import * as AntIcon from '@ant-design/icons-vue';
+import Antd from 'ant-design-vue';
+import { createApp } from 'vue';
+import App from './App.vue';
+import './assets/global.less';
+import './assets/theme.less';
+import components from './components/global';
+import Router from './router/index';
+// 导入ele
+import ElementPlus from 'element-plus'
+import 'element-plus/dist/index.css'
+
+const app = createApp(App)
+app.config.productionTip = false
+
+// 挂载ele
+app.use(ElementPlus)
+
+// components
+for (const i in components) {
+ app.component(i, components[i])
+}
+
+// icon
+for (const i in AntIcon) {
+ const whiteList = ['createFromIconfontCN', 'getTwoToneColor', 'setTwoToneColor', 'default']
+ if (!whiteList.includes(i)) {
+ app.component(i, AntIcon[i])
+ }
+}
+
+app.use(Antd).use(Router).mount('#app')
diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js
new file mode 100644
index 0000000..e69c70f
--- /dev/null
+++ b/frontend/src/router/index.js
@@ -0,0 +1,9 @@
+import { createRouter, createWebHashHistory } from 'vue-router'
+import routerMap from './routerMap'
+
+const Router = createRouter({
+ history: createWebHashHistory(),
+ routes: routerMap,
+})
+
+export default Router
diff --git a/frontend/src/router/routerMap.js b/frontend/src/router/routerMap.js
new file mode 100644
index 0000000..2c4d39a
--- /dev/null
+++ b/frontend/src/router/routerMap.js
@@ -0,0 +1,201 @@
+/**
+ * 基础路由
+ * @type { *[] }
+ */
+
+const constantRouterMap = [
+ {
+ path: '/',
+ component: () => import('@/layouts/AppSider.vue'),
+ children: [
+ {
+ path: '/framework',
+ name: 'Framework',
+ component: () => import('@/layouts/Menu.vue'),
+ props: { id: 'framework' },
+ //props: true,
+ redirect: { name: 'FrameworkSocketIpc' },
+ children: [
+ {
+ path: '/framework/socket/ipc',
+ name: 'FrameworkSocketIpc',
+ component: () => import('@/views/framework/socket/Ipc.vue')
+ },
+ {
+ path: '/framework/socket/httpserver',
+ name: 'FrameworkSocketHttpServer',
+ component: () => import('@/views/framework/socket/HttpServer.vue')
+ },
+ {
+ path: '/framework/socket/socketserver',
+ name: 'FrameworkSocketSocketServer',
+ component: () => import('@/views/framework/socket/SocketServer.vue')
+ },
+ {
+ path: '/framework/jsondb/index',
+ name: 'FrameworkJsonDBIndex',
+ component: () => import('@/views/framework/jsondb/Index.vue')
+ },
+ {
+ path: '/framework/sqlitedb/index',
+ name: 'FrameworkSqliteDBIndex',
+ component: () => import('@/views/framework/sqlitedb/Index.vue')
+ },
+ {
+ path: '/framework/jobs/index',
+ name: 'FrameworkJobsIndex',
+ component: () => import('@/views/framework/jobs/Index.vue')
+ },
+ {
+ path: '/framework/updater/index',
+ name: 'FrameworkUpdaterIndex',
+ component: () => import('@/views/framework/updater/Index.vue')
+ },
+ {
+ path: '/framework/software/index',
+ name: 'FrameworkSoftwareIndex',
+ component: () => import('@/views/framework/software/Index.vue')
+ },
+ {
+ path: '/framework/java/index',
+ name: 'FrameworkJavaIndex',
+ component: () => import('@/views/framework/java/Index.vue')
+ },
+ {
+ path: '/framework/testapi/index',
+ name: 'FrameworkTestApiIndex',
+ component: () => import('@/views/framework/testapi/Index.vue')
+ },
+ ]
+ },
+ {
+ path: '/os',
+ name: 'Os',
+ component: () => import('@/layouts/Menu.vue'),
+ props: { id: 'os' },
+ redirect: { name: 'OsFileIndex' },
+ children: [
+ {
+ path: '/os/file/index',
+ name: 'OsFileIndex',
+ component: () => import('@/views/os/file/Index.vue')
+ },
+ {
+ path: '/os/file/pic',
+ name: 'OsFilePic',
+ component: () => import('@/views/os/file/Pic.vue')
+ },
+ {
+ path: '/os/windowview/index',
+ name: 'OsWindowViewIndex',
+ component: () => import('@/views/os/windowview/Index.vue')
+ },
+ {
+ path: '/os/window/index',
+ name: 'OsWindowIndex',
+ component: () => import('@/views/os/window/Index.vue')
+ },
+ {
+ path: '/os/notification/index',
+ name: 'OsNotificationIndex',
+ component: () => import('@/views/os/notification/Index.vue')
+ },
+ {
+ path: '/os/powermonitor/index',
+ name: 'OsPowerMonitorIndex',
+ component: () => import('@/views/os/powermonitor/Index.vue')
+ },
+ {
+ path: '/os/screen/index',
+ name: 'OsScreenIndex',
+ component: () => import('@/views/os/screen/Index.vue')
+ },
+ {
+ path: '/os/theme/index',
+ name: 'OsThemeIndex',
+ component: () => import('@/views/os/theme/Index.vue')
+ },
+ {
+ path: '/os/system/index',
+ name: 'OsSystemIndex',
+ component: () => import('@/views/os/system/Index.vue')
+ },
+ ]
+ },
+ {
+ path: '/hardware',
+ name: 'Hardware',
+ component: () => import('@/layouts/Menu.vue'),
+ props: { id: 'hardware' },
+ redirect: { name: 'HardwarePrinterIndex' },
+ children: [
+ {
+ path: '/hardware/printer/index',
+ name: 'HardwarePrinterIndex',
+ component: () => import('@/views/hardware/printer/Index.vue')
+ },
+ ]
+ },
+ {
+ path: '/effect',
+ name: 'Effect',
+ component: () => import('@/layouts/Menu.vue'),
+ props: { id: 'effect' },
+ redirect: { name: 'EffectVideoIndex' },
+ children: [
+ {
+ path: '/effect/video/index',
+ name: 'EffectVideoIndex',
+ component: () => import('@/views/effect/video/Index.vue')
+ },
+ {
+ path: '/effect/login/index',
+ name: 'EffectLoginIndex',
+ component: () => import('@/views/effect/login/Index.vue')
+ }
+ ]
+ },
+ {
+ path: '/cross',
+ name: 'Cross',
+ component: () => import('@/layouts/Menu.vue'),
+ props: { id: 'cross' },
+ redirect: { name: 'CrossGoIndex' },
+ children: [
+ {
+ path: '/cross/go/index',
+ name: 'CrossGoIndex',
+ component: () => import('@/views/cross/go/Index.vue')
+ },
+ {
+ path: '/cross/java/index',
+ name: 'CrossJavaIndex',
+ component: () => import('@/views/cross/java/Index.vue')
+ },
+ {
+ path: '/cross/python/index',
+ name: 'CrossPythonIndex',
+ component: () => import('@/views/cross/python/Index.vue')
+ },
+ ]
+ },
+ ]
+ },
+ {
+ path: '/special',
+ children: [
+ {
+ path: 'subwindow',
+ name: 'SpecialSubwindowIpc',
+ component: () => import('@/views/os/subwindow/Ipc.vue')
+ },
+ {
+ path: '/login',
+ name: 'SpecialLoginWindow',
+ component: () => import('@/views/effect/login/Window.vue')
+ },
+ ]
+ },
+]
+
+export default constantRouterMap
\ No newline at end of file
diff --git a/frontend/src/router/subMenu.js b/frontend/src/router/subMenu.js
new file mode 100644
index 0000000..3201e7e
--- /dev/null
+++ b/frontend/src/router/subMenu.js
@@ -0,0 +1,153 @@
+/**
+ * 子菜单
+ */
+export default {
+ framework: {
+ 'menu_100' : {
+ icon: 'profile',
+ title: '通信',
+ pageName: 'FrameworkSocketIpc',
+ params: {}
+ },
+ 'menu_101' : {
+ icon: 'profile',
+ title: 'http服务',
+ pageName: 'FrameworkSocketHttpServer',
+ params: {}
+ },
+ 'menu_102' : {
+ icon: 'profile',
+ title: 'socket服务',
+ pageName: 'FrameworkSocketSocketServer',
+ params: {}
+ },
+ 'menu_103' : {
+ icon: 'profile',
+ title: 'json数据库',
+ pageName: 'FrameworkJsonDBIndex',
+ params: {}
+ },
+ 'menu_104' : {
+ icon: 'profile',
+ title: 'sqlite数据库',
+ pageName: 'FrameworkSqliteDBIndex',
+ params: {}
+ },
+ 'menu_105' : {
+ icon: 'profile',
+ title: '任务',
+ pageName: 'FrameworkJobsIndex',
+ params: {}
+ },
+ 'menu_106' : {
+ icon: 'profile',
+ title: '自动更新',
+ pageName: 'FrameworkUpdaterIndex',
+ params: {}
+ },
+ 'menu_107' : {
+ icon: 'profile',
+ title: '软件调用',
+ pageName: 'FrameworkSoftwareIndex',
+ params: {}
+ },
+ 'menu_109' : {
+ icon: 'profile',
+ title: '测试',
+ pageName: 'FrameworkTestApiIndex',
+ params: {}
+ },
+ },
+ os: {
+ 'menu_100' : {
+ icon: 'profile',
+ title: '文件',
+ pageName: 'OsFileIndex',
+ params: {}
+ },
+ 'menu_101' : {
+ icon: 'profile',
+ title: '视图',
+ pageName: 'OsWindowViewIndex',
+ params: {}
+ },
+ 'menu_102' : {
+ icon: 'profile',
+ title: '窗口',
+ pageName: 'OsWindowIndex',
+ params: {}
+ },
+ 'menu_103' : {
+ icon: 'profile',
+ title: '桌面通知',
+ pageName: 'OsNotificationIndex',
+ params: {}
+ },
+ 'menu_104' : {
+ icon: 'profile',
+ title: '电源监控',
+ pageName: 'OsPowerMonitorIndex',
+ params: {}
+ },
+ 'menu_105' : {
+ icon: 'profile',
+ title: '屏幕信息',
+ pageName: 'OsScreenIndex',
+ params: {}
+ },
+ 'menu_106' : {
+ icon: 'profile',
+ title: '系统主题',
+ pageName: 'OsThemeIndex',
+ params: {}
+ },
+ 'menu_110' : {
+ icon: 'profile',
+ title: '图片',
+ pageName: 'OsFilePic',
+ params: {}
+ },
+ },
+ hardware: {
+ 'menu_100' : {
+ icon: 'profile',
+ title: '打印机',
+ pageName: 'HardwarePrinterIndex',
+ params: {}
+ }
+ },
+ effect: {
+ 'menu_100' : {
+ icon: 'profile',
+ title: '视频播放器',
+ pageName: 'EffectVideoIndex',
+ params: {}
+ },
+ 'menu_110' : {
+ icon: 'profile',
+ title: '登录',
+ pageName: 'EffectLoginIndex',
+ params: {}
+ }
+ },
+ cross: {
+ 'menu_100' : {
+ icon: 'profile',
+ title: 'go服务',
+ pageName: 'CrossGoIndex',
+ params: {}
+ },
+ 'menu_110' : {
+ icon: 'profile',
+ title: 'java服务',
+ pageName: 'CrossJavaIndex',
+ params: {}
+ },
+ 'menu_120' : {
+ icon: 'profile',
+ title: 'python服务',
+ pageName: 'CrossPythonIndex',
+ params: {}
+ },
+ },
+}
diff --git a/frontend/src/utils/api.js b/frontend/src/utils/api.js
new file mode 100644
index 0000000..257ecf0
--- /dev/null
+++ b/frontend/src/utils/api.js
@@ -0,0 +1,77 @@
+import axios from 'axios';
+const apiBaseUrl = 'http://127.0.0.1:8086';
+const webSocketUrl = 'ws://127.0.0.1:8086';
+const apiService = axios.create({
+ baseURL: apiBaseUrl, // 设置基本URL
+ timeout: 5000, // 设置超时时间
+});
+// 全局设备配置文件的json
+var GlobalConfig = {
+
+};
+
+// 请求拦截器
+apiService.interceptors.request.use(
+ config => {
+ // 在发送请求之前做一些处理,例如添加请求头等
+ // 如果需要更详细的可以定义一个字符串的
+ config.headers["deviceType"] = GlobalConfig.deviceType;
+ return config;
+ },
+ error => {
+ // 请求错误时的处理
+ console.error(error);
+ return Promise.reject(error);
+ }
+);
+
+// 响应拦截器
+apiService.interceptors.response.use(
+ response => {
+ // 对响应数据进行处理
+ return response;
+ },
+ error => {
+ // 响应错误时的处理
+ console.error(error);
+ return Promise.reject(error);
+ }
+);
+// 配置的更改
+export function updateConfgJson(config){
+ GlobalConfig = config;
+ console.log('读取配置文件到内存');
+ console.log(GlobalConfig)
+}
+// 全局的config 配置, 频繁使用,可以用此函数获取,内存中的数据
+export function getConfgJson(){
+ return GlobalConfig;
+}
+// todo: 可以直接导入到其他函数使用 也可以在此处定义函数后直接使用
+/**
+ *
+ * api.get("/coreControl/deviceClient/creditCardHome?key=111&deptId=101").then(response=>{
+ console.log(response);
+ }).catch(error => {
+ console.error(error);
+ });
+ *
+ *
+ */
+
+/**
+ * 设备首页的接口, 根据设备类型,进行不同的修改url
+ * @returns
+ */
+export function getDeviceHome() {
+
+ return apiService({
+ url: '/coreControl/deviceClient/creditCardHome?key=' + GlobalConfig.deviceId +"&deptId" + GlobalConfig.deptId,
+ method: 'get'
+ })
+}
+
+
+export {
+ apiService, apiBaseUrl, webSocketUrl
+};
diff --git a/frontend/src/utils/iconList.js b/frontend/src/utils/iconList.js
new file mode 100644
index 0000000..9b1335e
--- /dev/null
+++ b/frontend/src/utils/iconList.js
@@ -0,0 +1,27 @@
+export default [
+ { name: '对话框', type: 'icon-duihuakuang' },
+ { name: '闹钟', type: 'icon-naozhong' },
+ { name: '笑脸', type: 'icon-xiaolian' },
+ { name: 'ok', type: 'icon-ok' },
+ { name: '风车', type: 'icon-fengche' },
+ { name: '汗颜', type: 'icon-hanyan' },
+ { name: '相机', type: 'icon-xiangji' },
+ { name: '礼物', type: 'icon-liwu' },
+ { name: '礼花', type: 'icon-lihua' },
+ { name: '扭蛋', type: 'icon-niudan' },
+ { name: '流星', type: 'icon-liuxing' },
+ { name: '风筝', type: 'icon-fengzheng' },
+ { name: '蛋糕', type: 'icon-dangao' },
+ { name: '泡泡', type: 'icon-paopao' },
+ { name: '购物', type: 'icon-gouwu' },
+ { name: '饮料', type: 'icon-yinliao' },
+ { name: '云彩', type: 'icon-yuncai' },
+ { name: '彩铅', type: 'icon-caiqian' },
+ { name: '纸飞机', type: 'icon-zhifeiji' },
+ { name: '点赞', type: 'icon-dianzan' },
+ { name: '煎蛋', type: 'icon-jiandan' },
+ { name: '小熊', type: 'icon-xiaoxiong' },
+ { name: '花', type: 'icon-hua' },
+ { name: '眼睛', type: 'icon-yanjing' },
+ ]
+
\ No newline at end of file
diff --git a/frontend/src/utils/ipcRenderer.js b/frontend/src/utils/ipcRenderer.js
new file mode 100644
index 0000000..b229b36
--- /dev/null
+++ b/frontend/src/utils/ipcRenderer.js
@@ -0,0 +1,33 @@
+const Renderer = (window.require && window.require('electron')) || window.electron || {};
+
+/**
+ * ipc
+ * 官方api说明:https://www.electronjs.org/zh/docs/latest/api/ipc-renderer
+ *
+ * 属性/方法
+ * ipc.invoke(channel, param) - 发送异步消息(invoke/handle 模型)
+ * ipc.sendSync(channel, param) - 发送同步消息(send/on 模型)
+ * ipc.on(channel, listener) - 监听 channel, 当新消息到达,调用 listener
+ * ipc.once(channel, listener) - 添加一次性 listener 函数
+ * ipc.removeListener(channel, listener) - 为特定的 channel 从监听队列中删除特定的 listener 监听者
+ * ipc.removeAllListeners(channel) - 移除所有的监听器,当指定 channel 时只移除与其相关的所有监听器
+ * ipc.send(channel, ...args) - 通过channel向主进程发送异步消息
+ * ipc.postMessage(channel, message, [transfer]) - 发送消息到主进程
+ * ipc.sendTo(webContentsId, channel, ...args) - 通过 channel 发送消息到带有 webContentsId 的窗口
+ * ipc.sendToHost(channel, ...args) - 消息会被发送到 host 页面上的 元素
+ */
+
+/**
+ * ipc
+ */
+const ipc = Renderer.ipcRenderer || undefined;
+
+/**
+ * 是否为EE环境
+ */
+const isEE = ipc ? true : false;
+
+export {
+ Renderer, ipc, isEE
+};
+
diff --git a/frontend/src/utils/websocket.js b/frontend/src/utils/websocket.js
new file mode 100644
index 0000000..29eb868
--- /dev/null
+++ b/frontend/src/utils/websocket.js
@@ -0,0 +1,193 @@
+
+// import { ipcApiRoute, specialIpcRoute } from "@/api/main";
+
+// import vueMain from '../main'
+import { ipc } from '@/utils/ipcRenderer';
+import { ipcApiRoute } from '@/api/main';
+import { webSocketUrl } from '@/utils/api'
+var isOpen = false;
+var authKey = ''
+var socket = undefined
+var socketHeartTimer = undefined
+// 定时更新设备信息
+var socketHeartTimer2 = undefined
+// 用变量标记是否更新设备信息
+var socketUpdateInfoCount = 0;
+// 设备信息
+var deviceInfo = {
+ volume: 0,
+ hostname: ''
+
+};
+var configJSON = null;
+// 发送设备信息的间隔时间 s
+const timerInterval = 10;
+//屏幕设备类型IcbcDeviceType,1反诈屏 2互动屏 3弧形屏 4科技之眼 5光电玻璃 6 logo 设备类型 7 VR眼睛电脑
+function initWebSocket(config) {
+ configJSON = config;
+
+ const wsUri = webSocketUrl+'/client/websocketServer' + '?deviceKey=' + configJSON.deviceId;
+ // const wsUri = 'ws://127.0.0.1:8080/resource/websocket' + '?deviceKey=' + e;
+ close();
+ socket = new WebSocket(wsUri)//这里面的this都指向vue
+ socket.onerror = webSocketOnError;
+ socket.onmessage = webSocketOnMessage;
+ socket.onclose = closeWebsocket;
+ socket.onopen = openWebSocket;
+
+ if (socketHeartTimer != undefined) {
+ clearInterval(socketHeartTimer);
+ }
+ if (socketHeartTimer2 != undefined){
+ clearInterval(socketHeartTimer2);
+ }
+
+ socketHeartTimer = setInterval(() => {
+ if (isOpen == false) {
+ console.log('重新连接' + isOpen)
+ initWebSocket(configJSON);
+ } else {
+ console.log('socket 心跳' + isOpen);
+ const msg = {
+ type: "heartbeat",// 心跳
+ content: "心跳",
+ deviceKey: configJSON.deviceId,
+ deviceType: configJSON.deviceType,
+ }
+ socket.send(JSON.stringify(msg));
+ }
+
+ }, 6000);
+
+
+ socketHeartTimer2 = setInterval(() => {
+ ipc.invoke(ipcApiRoute.getOSMessage, {}).then(res => {
+ // 判断数据不相同 提前更新掉
+ if ( deviceInfo.volume != res.volume || deviceInfo.hostname != res.hostname){
+ deviceInfo = res;
+ sendDeviceInfo();
+ socketUpdateInfoCount = 0;
+ return;
+ }
+ deviceInfo = res;
+ socketUpdateInfoCount = socketUpdateInfoCount+1;
+ if (socketUpdateInfoCount >= timerInterval){
+ sendDeviceInfo();
+ socketUpdateInfoCount = 0;
+ }
+
+ })
+ }, 1000);
+
+
+
+}
+// 发送设备信息
+function sendDeviceInfo(){
+ const msg = {
+ type: "device_info_update",// 设备信息更新
+ content: deviceInfo,
+ deviceKey: configJSON.deviceId,
+ deviceType: configJSON.deviceType,
+ deptId: configJSON.deptId
+ }
+ socket.send(JSON.stringify(msg));
+}
+
+function webSocketOnError(e) {
+ // ElementUI.Notification({
+ // title: '',
+ // message: "WebSocket连接发生错误" + e,
+ // type: 'error',
+ // duration: 0,
+ // });
+
+}
+// socket 连接打开
+function openWebSocket(e) {
+ console.log('socket 连接')
+ isOpen = true;
+}
+function webSocketOnMessage(e) {
+ const data = JSON.parse(e.data);
+ console.log('收到socket 消息')
+ console.log(data);
+ // 抛出消息, 全局控制消息直接处理
+ switch(data.type){
+ case 'heartbeat':
+ return;
+ case 'serve_heartbeat':
+ break
+ case 'device_shutdown':
+ ipc.invoke(ipcApiRoute.deviceShutdown, {}).then(res => {
+
+ })
+ return;
+ case 'device_restart':
+ ipc.invoke(ipcApiRoute.deviceRestart, {}).then(res => {
+
+ })
+ return;
+ case 'device_play_video':
+ break;
+ case 'device_update_data':
+ break;
+ case 'scan_qr_game_start':
+ break;
+ case 'game_start_ok':
+ break;
+ case 'game_progress':
+ break;
+ case 'game_result_post':
+ break;
+ case 'device_info_update':
+ break;
+ case 'device_volume_update':
+ console.log("声音设置")
+ console.log(data.content);
+ ipc.invoke(ipcApiRoute.deviceLoudness, {value:data.content}).then(res => {
+ console.log('返回声音设置结果'+res);
+ })
+ return;
+ default:
+ break
+ }
+
+ window.dispatchEvent(new CustomEvent('onMessageWS', {
+ detail: {
+ data: data
+ }
+ }))
+
+ // var event = document.createEvent("HTMLEvents");
+ // event.initEvent("onMessageWS", true, true);
+ // window.dispatchEvent(event);
+
+
+}
+// 关闭websiocket
+function closeWebsocket() {
+ console.log('连接已关闭...')
+
+ // clearTimeout(socketHeartTimer);
+ isOpen = false;
+}
+function close() {
+
+ if (socket != undefined) {
+ socket.close() // 关闭 websocket
+ socket.onclose = function (e) {
+ console.log(e)//监听关闭事件
+ console.log('关闭')
+ }
+ }
+ socket = undefined;
+ isOpen = false;
+
+}
+function webSocketSend(agentData) {
+ socket.send(agentData);
+}
+export default {
+ initWebSocket, close, webSocketSend
+}
diff --git a/frontend/src/views/cross/go/Index.vue b/frontend/src/views/cross/go/Index.vue
new file mode 100644
index 0000000..7dde041
--- /dev/null
+++ b/frontend/src/views/cross/go/Index.vue
@@ -0,0 +1,117 @@
+
+
+
+
+ 1. 基础控制
+
+
+
+
+ 启动
+ 获取地址
+ kill
+ test
+
+
+
+
+ 2. 发送http请求
+
+
+
+
+
+ 3. 多个服务
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/views/cross/java/Index.vue b/frontend/src/views/cross/java/Index.vue
new file mode 100644
index 0000000..777ae1e
--- /dev/null
+++ b/frontend/src/views/cross/java/Index.vue
@@ -0,0 +1,118 @@
+
+
+
+
+ 1. 基础控制
+
+
+
+
+ 启动
+ 获取地址
+ kill
+ 查看
+
+
+
+
+ 2. 发送http请求
+
+
+
+
+
+ 3. 多个服务
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/views/cross/python/Index.vue b/frontend/src/views/cross/python/Index.vue
new file mode 100644
index 0000000..cd56a23
--- /dev/null
+++ b/frontend/src/views/cross/python/Index.vue
@@ -0,0 +1,117 @@
+
+
+
+
+ 1. 基础控制
+
+
+
+
+ 启动
+ 获取地址
+ kill
+ test
+
+
+
+
+ 2. 发送http请求
+
+
+
+
+
+ 3. 多个服务
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/views/effect/login/Index.vue b/frontend/src/views/effect/login/Index.vue
new file mode 100644
index 0000000..420797f
--- /dev/null
+++ b/frontend/src/views/effect/login/Index.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/views/effect/login/Window.vue b/frontend/src/views/effect/login/Window.vue
new file mode 100644
index 0000000..e57da05
--- /dev/null
+++ b/frontend/src/views/effect/login/Window.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/views/effect/video/Index.vue b/frontend/src/views/effect/video/Index.vue
new file mode 100644
index 0000000..57e5ad4
--- /dev/null
+++ b/frontend/src/views/effect/video/Index.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
diff --git a/frontend/src/views/framework/java/Index.vue b/frontend/src/views/framework/java/Index.vue
new file mode 100644
index 0000000..0109e11
--- /dev/null
+++ b/frontend/src/views/framework/java/Index.vue
@@ -0,0 +1,85 @@
+
+
+
+
+ 请求java服务接口(废弃,请使用跨语言服务)
+
+
+
+
+ 启动java项目
+ 测试接口
+ 关闭java项目
+
+
+
+
+
+
diff --git a/frontend/src/views/framework/jobs/Index.vue b/frontend/src/views/framework/jobs/Index.vue
new file mode 100644
index 0000000..b5f74d5
--- /dev/null
+++ b/frontend/src/views/framework/jobs/Index.vue
@@ -0,0 +1,184 @@
+
+
+
+
+ 1. 任务 / 并发任务
+
+
+
+
+ 执行任务1
+ 进度:{{ progress1 }} , 进程pid:{{ progress1_pid }}
+ 关闭
+
+
+
+ 执行任务2
+ 进度:{{ progress2 }} , 进程pid:{{ progress2_pid }}
+ 关闭
+
+
+
+
+ 2. 任务池 / 并发任务
+
+
+
+
+ 创建进程池
+ 进程pids:{{ processPids }}
+
+
+
+ 执行任务3
+ 进度:{{ progress3 }} ,进程pid:{{ progress3_pid }}
+
+
+
+ 执行任务4
+ 进度:{{ progress4 }} ,进程pid:{{ progress4_pid }}
+
+
+
+ 执行任务5
+ 进度:{{ progress5 }} ,进程pid:{{ progress5_pid }}
+
+
+
+ 执行任务6
+ 进度:{{ progress6 }} ,进程pid:{{ progress6_pid }}
+
+
+
+
+
+
diff --git a/frontend/src/views/framework/jsondb/Index.vue b/frontend/src/views/framework/jsondb/Index.vue
new file mode 100644
index 0000000..4e86563
--- /dev/null
+++ b/frontend/src/views/framework/jsondb/Index.vue
@@ -0,0 +1,271 @@
+
+
+
+
+ 1. jsondb本地数据库
+
+
+
+
+
+ • 小数据量: 0~100M(单库)
+
+
+ • json数据库
+
+
+ • 兼容lodash语法
+
+
+
+
+
+ 2. 数据目录
+
+
+
+
+
+
+
+
+
+
+
+ 修改目录
+
+
+
+
+ 打开目录
+
+
+
+
+
+
+ 3. 测试数据
+
+
+
+
+
+ {{ all_list }}
+
+
+
+
+
+ 4. 添加数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加
+
+
+
+
+
+
+ 5. 获取数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查找
+
+
+
+
+
+ {{ userList }}
+
+
+
+
+
+ 6. 修改数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 更新
+
+
+
+
+
+
+ 7. 删除数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
diff --git a/frontend/src/views/framework/socket/HttpServer.vue b/frontend/src/views/framework/socket/HttpServer.vue
new file mode 100644
index 0000000..76b6da5
--- /dev/null
+++ b/frontend/src/views/framework/socket/HttpServer.vue
@@ -0,0 +1,116 @@
+
+
+
+
+ 1. 使用http与主进程通信
+
+
+
+
* 状态:{{ currentStatus }}
+
* 地址:{{ servicAddress }}
+
* 发送请求:
+ 打开【我的图片】
+
+
+
+
+ 2. 使用http与服务端通信
+
+
+
+
+
+
+
diff --git a/frontend/src/views/framework/socket/Ipc.vue b/frontend/src/views/framework/socket/Ipc.vue
new file mode 100644
index 0000000..d2275e4
--- /dev/null
+++ b/frontend/src/views/framework/socket/Ipc.vue
@@ -0,0 +1,156 @@
+
+
+
+
+ 1. 发送异步消息
+
+
+
+
+ 发送 - 回调
+ 结果:{{ message1 }}
+
+
+
+ 发送 - async/await
+ 结果:{{ message2 }}
+
+
+
+
+
+ 2. 同步消息(不推荐,阻塞执行)
+
+
+
+
+ 同步消息
+ 结果:{{ message3 }}
+
+
+
+
+ 3. 长消息: 服务端持续向前端页面发消息
+
+
+
+
+ 开始
+ 结束
+ 结果:{{ messageString }}
+
+
+
+
+ 4. 多窗口通信:子窗口与主进程通信,子窗口互相通信
+
+
+
+
+ 打开新窗口2
+ 向新窗口2发消息
+
+
+
+
+
+
diff --git a/frontend/src/views/framework/socket/SocketServer.vue b/frontend/src/views/framework/socket/SocketServer.vue
new file mode 100644
index 0000000..ce760e2
--- /dev/null
+++ b/frontend/src/views/framework/socket/SocketServer.vue
@@ -0,0 +1,76 @@
+
+
+
+
+ 1. 使用socket与主进程通信
+
+
+
+
+ * 状态:{{ currentStatus }}
+
+
* 地址:{{ servicAddress }}
+
+
+
+ 2. 发送请求
+
+
+
+
+
+
+
diff --git a/frontend/src/views/framework/software/Index.vue b/frontend/src/views/framework/software/Index.vue
new file mode 100644
index 0000000..d950ce1
--- /dev/null
+++ b/frontend/src/views/framework/software/Index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+ 1. 调用其它软件(exe、bash等可执行程序)
+
+
+
+ 注:请先将【powershell.exe】复制到【electron-egg/build/extraResources】目录中
+
+
+
+
+
+
+ {{ item.content }}
+
+ 执行
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/views/framework/sqlitedb/Index.vue b/frontend/src/views/framework/sqlitedb/Index.vue
new file mode 100644
index 0000000..156b1c5
--- /dev/null
+++ b/frontend/src/views/framework/sqlitedb/Index.vue
@@ -0,0 +1,275 @@
+
+
+
+
+ 1. sqlite本地数据库
+
+
+
+
+
+ • 大数据量: 0-1024GB(单库)
+
+
+ • 高性能
+
+
+ • 类mysql语法
+
+
+
+
+
+ 2. 数据目录
+
+
+
+
+
+
+
+
+
+
+
+ 修改目录
+
+
+
+
+ 打开目录
+
+
+
+
+
+
+ 3. 测试数据
+
+
+
+
+
+ {{ all_list }}
+
+
+
+
+
+ 4. 添加数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加
+
+
+
+
+
+
+ 4. 获取数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查找
+
+
+
+
+
+ {{ userList }}
+
+
+
+
+
+ 5. 修改数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 更新
+
+
+
+
+
+
+ 6. 删除数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
diff --git a/frontend/src/views/framework/test/Index.vue b/frontend/src/views/framework/test/Index.vue
new file mode 100644
index 0000000..df5dc71
--- /dev/null
+++ b/frontend/src/views/framework/test/Index.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
diff --git a/frontend/src/views/framework/testapi/Index.vue b/frontend/src/views/framework/testapi/Index.vue
new file mode 100644
index 0000000..2f11313
--- /dev/null
+++ b/frontend/src/views/framework/testapi/Index.vue
@@ -0,0 +1,132 @@
+
+
+
+
+
diff --git a/frontend/src/views/framework/updater/Index.vue b/frontend/src/views/framework/updater/Index.vue
new file mode 100644
index 0000000..30f2db0
--- /dev/null
+++ b/frontend/src/views/framework/updater/Index.vue
@@ -0,0 +1,86 @@
+
+
+
+
+ 1. 自动更新
+
+
+
+
+
+ 2. 下载进度
+
+
+
+
+
+
+
diff --git a/frontend/src/views/hardware/printer/Index.vue b/frontend/src/views/hardware/printer/Index.vue
new file mode 100644
index 0000000..6f6352a
--- /dev/null
+++ b/frontend/src/views/hardware/printer/Index.vue
@@ -0,0 +1,101 @@
+
+
+
+
+ 1. 打印机设备
+
+
+
+
+
+
+
+ {{ item.displayName }} {{ defaultDevice(item) }}
+
+
+
+ 设备列表
+
+
+
+
+
+ 2. 打印内容
+
+
+
+
+
+
+
diff --git a/frontend/src/views/os/extension/Index.vue b/frontend/src/views/os/extension/Index.vue
new file mode 100644
index 0000000..08a567b
--- /dev/null
+++ b/frontend/src/views/os/extension/Index.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+ 1. 上传扩展程序(crx文件格式)
+
+
+
+
+ 2. chrome扩展商店(crx下载)
+
+
+
+ 极简插件:https://chrome.zzzmh.cn/
+
+
+
+
+
+
diff --git a/frontend/src/views/os/file/Index.vue b/frontend/src/views/os/file/Index.vue
new file mode 100644
index 0000000..7d73384
--- /dev/null
+++ b/frontend/src/views/os/file/Index.vue
@@ -0,0 +1,202 @@
+
+
+
+
+ 1. 系统原生对话框
+
+
+
+
+ 消息提示(ipc)
+ 消息提示与确认(ipc)
+
+
+
+
+ 2. 选择保存目录
+
+
+
+
+
+
+
+
+
+ 修改目录
+
+
+
+
+
+
+ 3. 打开文件夹
+
+
+
+
+
+
+
+
+ 打开
+
+
+
+
+
+
+
+
+
+ 4. 上传文件到图床
+
+
+
+
+
+
+
+ 点击 或 拖拽文件到这里
+
+
+ 注意:请使用您自己的图床token
+
+
+
+
+
+
+
+
diff --git a/frontend/src/views/os/file/Pic.vue b/frontend/src/views/os/file/Pic.vue
new file mode 100644
index 0000000..10dcb37
--- /dev/null
+++ b/frontend/src/views/os/file/Pic.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/views/os/notification/Index.vue b/frontend/src/views/os/notification/Index.vue
new file mode 100644
index 0000000..b93ab58
--- /dev/null
+++ b/frontend/src/views/os/notification/Index.vue
@@ -0,0 +1,90 @@
+
+
+
+
+ 1. 弹出桌面通知
+
+
+
+
+ 默认
+ 发出提示音
+ 点击通知触发事件
+ 关闭通知触发事件
+
+
+
+
+
+
diff --git a/frontend/src/views/os/powermonitor/Index.vue b/frontend/src/views/os/powermonitor/Index.vue
new file mode 100644
index 0000000..ac15081
--- /dev/null
+++ b/frontend/src/views/os/powermonitor/Index.vue
@@ -0,0 +1,59 @@
+
+
+
+
+ 1. 监控电源状态
+
+
+
+
+ * 当前状态:{{ currentStatus }}
+
+
* 拔掉电源,使用电池供电
+
* 接入电源
+
* 锁屏
+
* 解锁
+
+
+
+
+
diff --git a/frontend/src/views/os/screen/Index.vue b/frontend/src/views/os/screen/Index.vue
new file mode 100644
index 0000000..3b38c97
--- /dev/null
+++ b/frontend/src/views/os/screen/Index.vue
@@ -0,0 +1,61 @@
+
+
+
+
+ 1. 屏幕信息
+
+
+
+
+ 获取当前鼠标位置
+ 获取主屏幕
+ 获取所有屏幕
+
+
+
+
+ 结果:
+
+
+
+
+
+ {{ info.desc }}
+
+
+
+
+
+
+
diff --git a/frontend/src/views/os/subwindow/Ipc.vue b/frontend/src/views/os/subwindow/Ipc.vue
new file mode 100644
index 0000000..43f18ce
--- /dev/null
+++ b/frontend/src/views/os/subwindow/Ipc.vue
@@ -0,0 +1,144 @@
+
+
+
+
+ 1. 发送异步消息
+
+
+
+
+ 发送 - 回调
+ 结果:{{ message1 }}
+
+
+
+ 发送 - async/await
+ 结果:{{ message2 }}
+
+
+
+
+
+ 2. 同步消息(不推荐,阻塞执行)
+
+
+
+
+ 同步消息
+ 结果:{{ message3 }}
+
+
+
+
+ 3. 长消息: 服务端持续向前端页面发消息
+
+
+
+
+ 开始
+ 结束
+ 结果:{{ messageString }}
+
+
+
+
+ 4. 多窗口通信:窗口之间互相通信
+
+
+
+
+
+
+
diff --git a/frontend/src/views/os/system/Index.vue b/frontend/src/views/os/system/Index.vue
new file mode 100644
index 0000000..b049f6c
--- /dev/null
+++ b/frontend/src/views/os/system/Index.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+ 启动
+
+
+
+ 开机自动启动
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/views/os/theme/Index.vue b/frontend/src/views/os/theme/Index.vue
new file mode 100644
index 0000000..0e62732
--- /dev/null
+++ b/frontend/src/views/os/theme/Index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+ 1. 系统主题模式
+
+
+
+
+ 获取模式
+
+
+ 结果:{{ currentThemeMode }}
+
+
+
+ 2. 设置主题模式(请自行实现前端UI效果)
+
+
+
+
+ {{ themeList[0] }}
+
+
+ {{ themeList[1] }}
+
+
+ {{ themeList[2] }}
+
+
+
+
+
+
+
diff --git a/frontend/src/views/os/window/Index.vue b/frontend/src/views/os/window/Index.vue
new file mode 100644
index 0000000..d8e6c80
--- /dev/null
+++ b/frontend/src/views/os/window/Index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+ 1. 新窗口中加载web内容
+
+
+
+
+
+ 2. 新窗口中加载html内容
+
+
+
+
+
+ 3. 新窗口中加载当前项目页面
+
+
+
+
+
+
+
diff --git a/frontend/src/views/os/windowview/Index.vue b/frontend/src/views/os/windowview/Index.vue
new file mode 100644
index 0000000..c099019
--- /dev/null
+++ b/frontend/src/views/os/windowview/Index.vue
@@ -0,0 +1,74 @@
+
+
+
+
+ 1. 嵌入web内容
+
+
+
+
+
+ 2. 嵌入html内容
+
+
+
+
+ 加载html页面
+ 移除html页面
+
+
+
+
+
+
diff --git a/frontend/vite.config.js b/frontend/vite.config.js
new file mode 100644
index 0000000..e7b7e05
--- /dev/null
+++ b/frontend/vite.config.js
@@ -0,0 +1,57 @@
+import vue from '@vitejs/plugin-vue'
+import { defineConfig } from 'vite'
+import viteCompression from 'vite-plugin-compression'
+
+import path from 'path'
+// https://vitejs.dev/config/
+export default defineConfig(({ command, mode }) => {
+ return {
+ // 项目插件
+ plugins: [
+ vue(),
+ viteCompression({
+ verbose: true,
+ disable: false,
+ threshold: 1025,
+ algorithm: 'gzip',
+ ext: '.gz',
+ }),
+ ],
+ // 基础配置
+ base: './',
+ publicDir: 'public',
+ resolve: {
+ alias: {
+ '@': path.resolve(__dirname, 'src'),
+ },
+ },
+ css: {
+ preprocessorOptions: {
+ less: {
+ modifyVars: {
+ '@border-color-base': '#dce3e8',
+ },
+ javascriptEnabled: true,
+ },
+ },
+ },
+ build: {
+ outDir: 'dist',
+ assetsDir: 'assets',
+ assetsInlineLimit: 4096,
+ cssCodeSplit: true,
+ brotliSize: false,
+ sourcemap: false,
+ minify: 'terser',
+ terserOptions: {
+ compress: {
+ // 生产环境去除console及debug
+ drop_console: false,
+ drop_debugger: true,
+ },
+ },
+ },
+ }
+})
+
+
diff --git a/go/api/example.go b/go/api/example.go
new file mode 100644
index 0000000..9aa8f21
--- /dev/null
+++ b/go/api/example.go
@@ -0,0 +1,36 @@
+package api
+
+import (
+ "net/http"
+
+ "github.com/wallace5303/ee-go/eapp"
+ "github.com/wallace5303/ee-go/ehelper"
+ "github.com/wallace5303/ee-go/ehttp/router"
+ "github.com/wallace5303/ee-go/elog"
+
+ "github.com/gin-gonic/gin"
+)
+
+// 使用 router Ctx
+func Hello(c *router.Ctx) {
+ ret := ehelper.GetJson()
+ defer c.JSON(ret)
+
+ ret.Data = "hello electron-egg"
+ elog.Logger.Info(" print Hello ")
+}
+
+// 使用 gin Context
+func Info(gc *gin.Context) {
+ ret := ehelper.GetJson()
+ defer gc.JSON(http.StatusOK, ret)
+
+ elog.Logger.Info(" print info ")
+}
+
+func Exit(c *router.Ctx) {
+ ret := ehelper.GetJson()
+ defer c.JSON(ret)
+
+ eapp.Close()
+}
diff --git a/go/config/config.default.json b/go/config/config.default.json
new file mode 100644
index 0000000..ab58ea3
--- /dev/null
+++ b/go/config/config.default.json
@@ -0,0 +1,29 @@
+{
+ "logger": {
+ "output_json": false,
+ "level": "info",
+ "filename": "ee-go.log",
+ "max_size": 1024,
+ "max_age": 10
+ },
+ "core_logger": {
+ "output_json": false,
+ "level": "info",
+ "filename": "ee-go-core.log",
+ "max_size": 1024,
+ "max_age": 10
+ },
+ "http": {
+ "enable": true,
+ "port": 7073,
+ "network": false
+ },
+ "static": {
+ "enable": true,
+ "package": "public/package.json",
+ "config": "public/config",
+ "dist": "public/dist",
+ "html": "public/html",
+ "ssl": "public/ssl"
+ }
+}
\ No newline at end of file
diff --git a/go/config/config.local.json b/go/config/config.local.json
new file mode 100644
index 0000000..2268fe0
--- /dev/null
+++ b/go/config/config.local.json
@@ -0,0 +1,9 @@
+{
+ "logger": {
+ "output_json": false,
+ "level": "info",
+ "filename": "ee-go.log",
+ "max_size": 1024,
+ "max_age": 20
+ }
+}
\ No newline at end of file
diff --git a/go/config/config.prod.json b/go/config/config.prod.json
new file mode 100644
index 0000000..d2b0aec
--- /dev/null
+++ b/go/config/config.prod.json
@@ -0,0 +1,9 @@
+{
+ "logger": {
+ "output_json": false,
+ "level": "info",
+ "filename": "ee-go.log",
+ "max_size": 1024,
+ "max_age": 30
+ }
+}
\ No newline at end of file
diff --git a/go/go.mod b/go/go.mod
new file mode 100644
index 0000000..96ecac6
--- /dev/null
+++ b/go/go.mod
@@ -0,0 +1,67 @@
+module electron-egg
+
+go 1.20
+
+require (
+ github.com/gin-gonic/gin v1.9.1
+ github.com/wallace5303/ee-go v1.0.0
+)
+
+require (
+ github.com/bytedance/sonic v1.9.1 // indirect
+ github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
+ github.com/fsnotify/fsnotify v1.6.0 // indirect
+ github.com/gabriel-vasile/mimetype v1.4.2 // indirect
+ github.com/gin-contrib/gzip v0.0.6 // indirect
+ github.com/gin-contrib/sessions v0.0.5 // indirect
+ github.com/gin-contrib/sse v0.1.0 // indirect
+ github.com/go-ole/go-ole v1.2.6 // indirect
+ github.com/go-playground/locales v0.14.1 // indirect
+ github.com/go-playground/universal-translator v0.18.1 // indirect
+ github.com/go-playground/validator/v10 v10.14.0 // indirect
+ github.com/goccy/go-json v0.10.2 // indirect
+ github.com/gorilla/context v1.1.1 // indirect
+ github.com/gorilla/securecookie v1.1.1 // indirect
+ github.com/gorilla/sessions v1.2.1 // indirect
+ github.com/hashicorp/hcl v1.0.0 // indirect
+ github.com/json-iterator/go v1.1.12 // indirect
+ github.com/klauspost/cpuid/v2 v2.2.4 // indirect
+ github.com/leodido/go-urn v1.2.4 // indirect
+ github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
+ github.com/magiconair/properties v1.8.7 // indirect
+ github.com/mattn/go-isatty v0.0.19 // indirect
+ github.com/mitchellh/mapstructure v1.5.0 // indirect
+ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+ github.com/modern-go/reflect2 v1.0.2 // indirect
+ github.com/mssola/useragent v1.0.0 // indirect
+ github.com/natefinch/lumberjack v2.0.0+incompatible // indirect
+ github.com/pelletier/go-toml/v2 v2.1.0 // indirect
+ github.com/pkg/errors v0.9.1 // indirect
+ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
+ github.com/sagikazarmark/locafero v0.3.0 // indirect
+ github.com/sagikazarmark/slog-shim v0.1.0 // indirect
+ github.com/shirou/gopsutil/v3 v3.23.8 // indirect
+ github.com/shoenig/go-m1cpu v0.1.6 // indirect
+ github.com/sourcegraph/conc v0.3.0 // indirect
+ github.com/spf13/afero v1.10.0 // indirect
+ github.com/spf13/cast v1.5.1 // indirect
+ github.com/spf13/pflag v1.0.5 // indirect
+ github.com/spf13/viper v1.17.0 // indirect
+ github.com/subosito/gotenv v1.6.0 // indirect
+ github.com/tklauser/go-sysconf v0.3.12 // indirect
+ github.com/tklauser/numcpus v0.6.1 // indirect
+ github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
+ github.com/ugorji/go/codec v1.2.11 // indirect
+ github.com/yusufpapurcu/wmi v1.2.3 // indirect
+ go.uber.org/multierr v1.10.0 // indirect
+ go.uber.org/zap v1.26.0 // indirect
+ golang.org/x/arch v0.3.0 // indirect
+ golang.org/x/crypto v0.14.0 // indirect
+ golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
+ golang.org/x/net v0.16.0 // indirect
+ golang.org/x/sys v0.13.0 // indirect
+ golang.org/x/text v0.13.0 // indirect
+ google.golang.org/protobuf v1.31.0 // indirect
+ gopkg.in/ini.v1 v1.67.0 // indirect
+ gopkg.in/yaml.v3 v3.0.1 // indirect
+)
diff --git a/go/main.go b/go/main.go
new file mode 100644
index 0000000..8f5bec9
--- /dev/null
+++ b/go/main.go
@@ -0,0 +1,25 @@
+package main
+
+import (
+ "embed"
+
+ "github.com/wallace5303/ee-go/eboot"
+
+ "electron-egg/router"
+)
+
+var (
+ //go:embed public/**
+ staticFS embed.FS
+)
+
+func main() {
+ // Initialize ee-go
+ ego := eboot.New(staticFS)
+
+ // User business logic
+ router.Api()
+
+ // ee-go runtime
+ ego.Run()
+}
diff --git a/go/router/router.go b/go/router/router.go
new file mode 100644
index 0000000..c3e38f5
--- /dev/null
+++ b/go/router/router.go
@@ -0,0 +1,17 @@
+package router
+
+import (
+ "electron-egg/api"
+
+ eRouter "github.com/wallace5303/ee-go/ehttp/router"
+)
+
+func Api() {
+
+ // 注册路由
+ eRouter.Handle("GET", "/api/hello", api.Hello)
+ eRouter.Handle("GET", "/api/exit", api.Exit)
+
+ // 使用 gin 注册路由
+ eRouter.GinRouter.GET("/api/info", api.Info)
+}
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..98527c4
--- /dev/null
+++ b/main.js
@@ -0,0 +1,2 @@
+const { ElectronEgg } = require('ee-core');
+new ElectronEgg();
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..0875069
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,45267 @@
+{
+
+
+ "name": "appCtr",
+
+
+ "version": "3.9.0",
+
+
+ "lockfileVersion": 2,
+
+
+ "requires": true,
+
+
+ "packages": {
+
+
+ "": {
+
+
+ "name": "appCtr",
+
+
+ "version": "3.9.0",
+
+
+ "license": "Apache",
+
+
+ "dependencies": {
+
+
+ "@lzwme/get-physical-address": "^1.0.5",
+
+
+ "dayjs": "^1.10.7",
+
+
+ "ee-core": "^2.9.2",
+
+
+ "electron-shutdown-command": "^2.0.1",
+
+
+ "electron-updater": "^5.3.0",
+
+
+ "lodash": "^4.17.21",
+
+
+ "loudness": "^0.4.2",
+
+
+ "modbus-serial": "^8.0.13",
+
+
+ "moment": "^2.29.4",
+
+
+ "serialport": "^12.0.0"
+
+
+ },
+
+
+ "devDependencies": {
+
+
+ "@electron/rebuild": "^3.2.13",
+
+
+ "debug": "^4.3.3",
+
+
+ "ee-bin": "^1.5.0",
+
+
+ "electron": "^21.4.4",
+
+
+ "electron-builder": "^23.6.0",
+
+
+ "eslint": "^5.13.0",
+
+
+ "eslint-plugin-prettier": "^3.0.1",
+
+
+ "icon-gen": "^4.0.0",
+
+
+ "nodemon": "^2.0.16"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/code-frame": {
+
+
+ "version": "7.22.13",
+
+
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+
+
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@babel/highlight": "^7.22.13",
+
+
+ "chalk": "^2.4.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6.9.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/code-frame/node_modules/ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/code-frame/node_modules/chalk": {
+
+
+ "version": "2.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+
+
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^3.2.1",
+
+
+ "escape-string-regexp": "^1.0.5",
+
+
+ "supports-color": "^5.3.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/code-frame/node_modules/color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/code-frame/node_modules/color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/code-frame/node_modules/supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-validator-identifier": {
+
+
+ "version": "7.22.20",
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+
+
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6.9.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/highlight": {
+
+
+ "version": "7.22.20",
+
+
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+
+
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@babel/helper-validator-identifier": "^7.22.20",
+
+
+ "chalk": "^2.4.2",
+
+
+ "js-tokens": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6.9.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/highlight/node_modules/chalk": {
+
+
+ "version": "2.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+
+
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^3.2.1",
+
+
+ "escape-string-regexp": "^1.0.5",
+
+
+ "supports-color": "^5.3.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/highlight/node_modules/color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@develar/schema-utils": {
+
+
+ "version": "2.6.5",
+
+
+ "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz",
+
+
+ "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ajv": "^6.12.0",
+
+
+ "ajv-keywords": "^3.4.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8.9.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "type": "opencollective",
+
+
+ "url": "https://opencollective.com/webpack"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get": {
+
+
+ "version": "1.14.1",
+
+
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz",
+
+
+ "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "debug": "^4.1.1",
+
+
+ "env-paths": "^2.2.0",
+
+
+ "fs-extra": "^8.1.0",
+
+
+ "got": "^9.6.0",
+
+
+ "progress": "^2.0.3",
+
+
+ "semver": "^6.2.0",
+
+
+ "sumchecker": "^3.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.6"
+
+
+ },
+
+
+ "optionalDependencies": {
+
+
+ "global-agent": "^3.0.0",
+
+
+ "global-tunnel-ng": "^2.7.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/@sindresorhus/is": {
+
+
+ "version": "0.14.0",
+
+
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+
+
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/@szmarczak/http-timer": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+
+
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "defer-to-connect": "^1.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/cacheable-request": {
+
+
+ "version": "6.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+
+
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "clone-response": "^1.0.2",
+
+
+ "get-stream": "^5.1.0",
+
+
+ "http-cache-semantics": "^4.0.0",
+
+
+ "keyv": "^3.0.0",
+
+
+ "lowercase-keys": "^2.0.0",
+
+
+ "normalize-url": "^4.1.0",
+
+
+ "responselike": "^1.0.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/decompress-response": {
+
+
+ "version": "3.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+
+
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "mimic-response": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/defer-to-connect": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+
+
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/fs-extra": {
+
+
+ "version": "8.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+
+
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "graceful-fs": "^4.2.0",
+
+
+ "jsonfile": "^4.0.0",
+
+
+ "universalify": "^0.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6 <7 || >=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/got": {
+
+
+ "version": "9.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+
+
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@sindresorhus/is": "^0.14.0",
+
+
+ "@szmarczak/http-timer": "^1.1.2",
+
+
+ "cacheable-request": "^6.0.0",
+
+
+ "decompress-response": "^3.3.0",
+
+
+ "duplexer3": "^0.1.4",
+
+
+ "get-stream": "^4.1.0",
+
+
+ "lowercase-keys": "^1.0.1",
+
+
+ "mimic-response": "^1.0.1",
+
+
+ "p-cancelable": "^1.0.0",
+
+
+ "to-readable-stream": "^1.0.0",
+
+
+ "url-parse-lax": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/got/node_modules/get-stream": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+
+
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "pump": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/got/node_modules/lowercase-keys": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+
+
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/json-buffer": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+
+
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/jsonfile": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+
+
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+
+
+ "dev": true,
+
+
+ "optionalDependencies": {
+
+
+ "graceful-fs": "^4.1.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/keyv": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+
+
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "json-buffer": "3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/normalize-url": {
+
+
+ "version": "4.5.1",
+
+
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
+
+
+ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/p-cancelable": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+
+
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/responselike": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+
+
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "lowercase-keys": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/responselike/node_modules/lowercase-keys": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+
+
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/semver": {
+
+
+ "version": "6.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+
+
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "semver": "bin/semver.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/get/node_modules/universalify": {
+
+
+ "version": "0.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+
+
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/rebuild": {
+
+
+ "version": "3.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.3.0.tgz",
+
+
+ "integrity": "sha512-S1vgpzIOS1wCJmsYjdLz97MTUV6UTLcMk/HE3w90HYtVxvW+PQdwxLbgsrECX2bysqcnmM5a0K6mXj/gwVgYtQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@malept/cross-spawn-promise": "^2.0.0",
+
+
+ "chalk": "^4.0.0",
+
+
+ "debug": "^4.1.1",
+
+
+ "detect-libc": "^2.0.1",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "got": "^11.7.0",
+
+
+ "node-abi": "^3.45.0",
+
+
+ "node-api-version": "^0.1.4",
+
+
+ "node-gyp": "^9.0.0",
+
+
+ "ora": "^5.1.0",
+
+
+ "semver": "^7.3.5",
+
+
+ "tar": "^6.0.5",
+
+
+ "yargs": "^17.0.1"
+
+
+ },
+
+
+ "bin": {
+
+
+ "electron-rebuild": "lib/cli.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.13.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/universal": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz",
+
+
+ "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@malept/cross-spawn-promise": "^1.1.0",
+
+
+ "asar": "^3.1.0",
+
+
+ "debug": "^4.3.1",
+
+
+ "dir-compare": "^2.4.0",
+
+
+ "fs-extra": "^9.0.1",
+
+
+ "minimatch": "^3.0.4",
+
+
+ "plist": "^3.0.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/universal/node_modules/@malept/cross-spawn-promise": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz",
+
+
+ "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==",
+
+
+ "dev": true,
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "individual",
+
+
+ "url": "https://github.com/sponsors/malept"
+
+
+ },
+
+
+ {
+
+
+ "type": "tidelift",
+
+
+ "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund"
+
+
+ }
+
+
+ ],
+
+
+ "dependencies": {
+
+
+ "cross-spawn": "^7.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@electron/universal/node_modules/fs-extra": {
+
+
+ "version": "9.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+
+
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "at-least-node": "^1.0.0",
+
+
+ "graceful-fs": "^4.2.0",
+
+
+ "jsonfile": "^6.0.1",
+
+
+ "universalify": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui": {
+
+
+ "version": "8.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+
+
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "string-width": "^5.1.2",
+
+
+ "string-width-cjs": "npm:string-width@^4.2.0",
+
+
+ "strip-ansi": "^7.0.1",
+
+
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+
+
+ "wrap-ansi": "^8.1.0",
+
+
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+
+
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+
+
+ "version": "6.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+
+
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+
+
+ "version": "9.2.2",
+
+
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+
+
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+
+
+ "version": "5.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+
+
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "eastasianwidth": "^0.2.0",
+
+
+ "emoji-regex": "^9.2.2",
+
+
+ "strip-ansi": "^7.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+
+
+ "version": "7.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+
+
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^6.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+
+
+ "version": "8.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+
+
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^6.1.0",
+
+
+ "string-width": "^5.0.1",
+
+
+ "strip-ansi": "^7.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@javascript-obfuscator/escodegen": {
+
+
+ "version": "2.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.3.0.tgz",
+
+
+ "integrity": "sha512-QVXwMIKqYMl3KwtTirYIA6gOCiJ0ZDtptXqAv/8KWLG9uQU2fZqTVy7a/A5RvcoZhbDoFfveTxuGxJ5ibzQtkw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@javascript-obfuscator/estraverse": "^5.3.0",
+
+
+ "esprima": "^4.0.1",
+
+
+ "esutils": "^2.0.2",
+
+
+ "optionator": "^0.8.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6.0"
+
+
+ },
+
+
+ "optionalDependencies": {
+
+
+ "source-map": "~0.6.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@javascript-obfuscator/estraverse": {
+
+
+ "version": "5.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz",
+
+
+ "integrity": "sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@lzwme/get-physical-address": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/@lzwme/get-physical-address/-/get-physical-address-1.0.5.tgz",
+
+
+ "integrity": "sha512-P7oQIWW8I1y4NCMFubcsagyrjShRTmRueU1e+J0EcBzj6jmqA+JSwypsJdXcHyD41ytDvW0BeZAUtB0EsIEytw==",
+
+
+ "bin": {
+
+
+ "gmac": "bin/cli.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ },
+
+
+ "peerDependencies": {
+
+
+ "iconv-lite": "*"
+
+
+ },
+
+
+ "peerDependenciesMeta": {
+
+
+ "iconv-lite": {
+
+
+ "optional": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@malept/cross-spawn-promise": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz",
+
+
+ "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==",
+
+
+ "dev": true,
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "individual",
+
+
+ "url": "https://github.com/sponsors/malept"
+
+
+ },
+
+
+ {
+
+
+ "type": "tidelift",
+
+
+ "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund"
+
+
+ }
+
+
+ ],
+
+
+ "dependencies": {
+
+
+ "cross-spawn": "^7.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 12.13.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@malept/flatpak-bundler": {
+
+
+ "version": "0.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz",
+
+
+ "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "debug": "^4.1.1",
+
+
+ "fs-extra": "^9.0.0",
+
+
+ "lodash": "^4.17.15",
+
+
+ "tmp-promise": "^3.0.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 10.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": {
+
+
+ "version": "9.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+
+
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "at-least-node": "^1.0.0",
+
+
+ "graceful-fs": "^4.2.0",
+
+
+ "jsonfile": "^6.0.1",
+
+
+ "universalify": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@nodelib/fs.scandir": {
+
+
+ "version": "2.1.5",
+
+
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+
+
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+
+
+ "dependencies": {
+
+
+ "@nodelib/fs.stat": "2.0.5",
+
+
+ "run-parallel": "^1.1.9"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@nodelib/fs.stat": {
+
+
+ "version": "2.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+
+
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@nodelib/fs.walk": {
+
+
+ "version": "1.2.8",
+
+
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+
+
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+
+
+ "dependencies": {
+
+
+ "@nodelib/fs.scandir": "2.1.5",
+
+
+ "fastq": "^1.6.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@npmcli/fs": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz",
+
+
+ "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "semver": "^7.3.5"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@pkgjs/parseargs": {
+
+
+ "version": "0.11.0",
+
+
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+
+
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "engines": {
+
+
+ "node": ">=14"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/binding-mock": {
+
+
+ "version": "10.2.2",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-10.2.2.tgz",
+
+
+ "integrity": "sha512-HAFzGhk9OuFMpuor7aT5G1ChPgn5qSsklTFOTUX72Rl6p0xwcSVsRtG/xaGp6bxpN7fI9D/S8THLBWbBgS6ldw==",
+
+
+ "dependencies": {
+
+
+ "@serialport/bindings-interface": "^1.2.1",
+
+
+ "debug": "^4.3.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/bindings-cpp": {
+
+
+ "version": "12.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/bindings-cpp/-/bindings-cpp-12.0.1.tgz",
+
+
+ "integrity": "sha512-r2XOwY2dDvbW7dKqSPIk2gzsr6M6Qpe9+/Ngs94fNaNlcTRCV02PfaoDmRgcubpNVVcLATlxSxPTIDw12dbKOg==",
+
+
+ "hasInstallScript": true,
+
+
+ "dependencies": {
+
+
+ "@serialport/bindings-interface": "1.2.2",
+
+
+ "@serialport/parser-readline": "11.0.0",
+
+
+ "debug": "4.3.4",
+
+
+ "node-addon-api": "7.0.0",
+
+
+ "node-gyp-build": "4.6.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=16.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/bindings-cpp/node_modules/@serialport/parser-delimiter": {
+
+
+ "version": "11.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-11.0.0.tgz",
+
+
+ "integrity": "sha512-aZLJhlRTjSmEwllLG7S4J8s8ctRAS0cbvCpO87smLvl3e4BgzbVgF6Z6zaJd3Aji2uSiYgfedCdNc4L6W+1E2g==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/bindings-cpp/node_modules/@serialport/parser-readline": {
+
+
+ "version": "11.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-11.0.0.tgz",
+
+
+ "integrity": "sha512-rRAivhRkT3YO28WjmmG4FQX6L+KMb5/ikhyylRfzWPw0nSXy97+u07peS9CbHqaNvJkMhH1locp2H36aGMOEIA==",
+
+
+ "dependencies": {
+
+
+ "@serialport/parser-delimiter": "11.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/bindings-cpp/node_modules/node-addon-api": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz",
+
+
+ "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA=="
+
+
+ },
+
+
+ "node_modules/@serialport/bindings-interface": {
+
+
+ "version": "1.2.2",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.2.tgz",
+
+
+ "integrity": "sha512-CJaUd5bLvtM9c5dmO9rPBHPXTa9R2UwpkJ0wdh9JCYcbrPWsKz+ErvR0hBLeo7NPeiFdjFO4sonRljiw4d2XiA==",
+
+
+ "engines": {
+
+
+ "node": "^12.22 || ^14.13 || >=16"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/parser-byte-length": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-12.0.0.tgz",
+
+
+ "integrity": "sha512-0ei0txFAj+s6FTiCJFBJ1T2hpKkX8Md0Pu6dqMrYoirjPskDLJRgZGLqoy3/lnU1bkvHpnJO+9oJ3PB9v8rNlg==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/parser-cctalk": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-12.0.0.tgz",
+
+
+ "integrity": "sha512-0PfLzO9t2X5ufKuBO34DQKLXrCCqS9xz2D0pfuaLNeTkyGUBv426zxoMf3rsMRodDOZNbFblu3Ae84MOQXjnZw==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/parser-delimiter": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-12.0.0.tgz",
+
+
+ "integrity": "sha512-gu26tVt5lQoybhorLTPsH2j2LnX3AOP2x/34+DUSTNaUTzu2fBXw+isVjQJpUBFWu6aeQRZw5bJol5X9Gxjblw==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/parser-inter-byte-timeout": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-12.0.0.tgz",
+
+
+ "integrity": "sha512-GnCh8K0NAESfhCuXAt+FfBRz1Cf9CzIgXfp7SdMgXwrtuUnCC/yuRTUFWRvuzhYKoAo1TL0hhUo77SFHUH1T/w==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/parser-packet-length": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-packet-length/-/parser-packet-length-12.0.0.tgz",
+
+
+ "integrity": "sha512-p1hiCRqvGHHLCN/8ZiPUY/G0zrxd7gtZs251n+cfNTn+87rwcdUeu9Dps3Aadx30/sOGGFL6brIRGK4l/t7MuQ==",
+
+
+ "engines": {
+
+
+ "node": ">=8.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/parser-readline": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-12.0.0.tgz",
+
+
+ "integrity": "sha512-O7cywCWC8PiOMvo/gglEBfAkLjp/SENEML46BXDykfKP5mTPM46XMaX1L0waWU6DXJpBgjaL7+yX6VriVPbN4w==",
+
+
+ "dependencies": {
+
+
+ "@serialport/parser-delimiter": "12.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/parser-ready": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-12.0.0.tgz",
+
+
+ "integrity": "sha512-ygDwj3O4SDpZlbrRUraoXIoIqb8sM7aMKryGjYTIF0JRnKeB1ys8+wIp0RFMdFbO62YriUDextHB5Um5cKFSWg==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/parser-regex": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-12.0.0.tgz",
+
+
+ "integrity": "sha512-dCAVh4P/pZrLcPv9NJ2mvPRBg64L5jXuiRxIlyxxdZGH4WubwXVXY/kBTihQmiAMPxbT3yshSX8f2+feqWsxqA==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/parser-slip-encoder": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-slip-encoder/-/parser-slip-encoder-12.0.0.tgz",
+
+
+ "integrity": "sha512-0APxDGR9YvJXTRfY+uRGhzOhTpU5akSH183RUcwzN7QXh8/1jwFsFLCu0grmAUfi+fItCkR+Xr1TcNJLR13VNA==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/parser-spacepacket": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-spacepacket/-/parser-spacepacket-12.0.0.tgz",
+
+
+ "integrity": "sha512-dozONxhPC/78pntuxpz/NOtVps8qIc/UZzdc/LuPvVsqCoJXiRxOg6ZtCP/W58iibJDKPZPAWPGYeZt9DJxI+Q==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@serialport/stream": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-12.0.0.tgz",
+
+
+ "integrity": "sha512-9On64rhzuqKdOQyiYLYv2lQOh3TZU/D3+IWCR5gk0alPel2nwpp4YwDEGiUBfrQZEdQ6xww0PWkzqth4wqwX3Q==",
+
+
+ "dependencies": {
+
+
+ "@serialport/bindings-interface": "1.2.2",
+
+
+ "debug": "4.3.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@sindresorhus/is": {
+
+
+ "version": "4.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+
+
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@socket.io/component-emitter": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
+
+
+ "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
+
+
+ },
+
+
+ "node_modules/@szmarczak/http-timer": {
+
+
+ "version": "4.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+
+
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "defer-to-connect": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@tootallnate/once": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
+
+
+ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/cacheable-request": {
+
+
+ "version": "6.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
+
+
+ "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/http-cache-semantics": "*",
+
+
+ "@types/keyv": "^3.1.4",
+
+
+ "@types/node": "*",
+
+
+ "@types/responselike": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/cookie": {
+
+
+ "version": "0.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
+
+
+ "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
+
+
+ },
+
+
+ "node_modules/@types/cors": {
+
+
+ "version": "2.8.14",
+
+
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.14.tgz",
+
+
+ "integrity": "sha512-RXHUvNWYICtbP6s18PnOCaqToK8y14DnLd75c6HfyKf228dxy7pHNOQkxPtvXKp/hINFMDjbYzsj63nnpPMSRQ==",
+
+
+ "dependencies": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/debug": {
+
+
+ "version": "4.1.9",
+
+
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.9.tgz",
+
+
+ "integrity": "sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/ms": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/formidable": {
+
+
+ "version": "2.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/@types/formidable/-/formidable-2.0.6.tgz",
+
+
+ "integrity": "sha512-L4HcrA05IgQyNYJj6kItuIkXrInJvsXTPC5B1i64FggWKKqSL+4hgt7asiSNva75AoLQjq29oPxFfU4GAQ6Z2w==",
+
+
+ "dependencies": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/fs-extra": {
+
+
+ "version": "9.0.13",
+
+
+ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz",
+
+
+ "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/glob": {
+
+
+ "version": "7.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+
+
+ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+
+
+ "dependencies": {
+
+
+ "@types/minimatch": "*",
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/http-cache-semantics": {
+
+
+ "version": "4.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz",
+
+
+ "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/@types/keyv": {
+
+
+ "version": "3.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
+
+
+ "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/minimatch": {
+
+
+ "version": "5.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+
+
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA=="
+
+
+ },
+
+
+ "node_modules/@types/ms": {
+
+
+ "version": "0.7.32",
+
+
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.32.tgz",
+
+
+ "integrity": "sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/@types/node": {
+
+
+ "version": "16.18.58",
+
+
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.58.tgz",
+
+
+ "integrity": "sha512-YGncyA25/MaVtQkjWW9r0EFBukZ+JulsLcVZBlGUfIb96OBMjkoRWwQo5IEWJ8Fj06Go3GHw+bjYDitv6BaGsA=="
+
+
+ },
+
+
+ "node_modules/@types/plist": {
+
+
+ "version": "3.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.3.tgz",
+
+
+ "integrity": "sha512-DXkBoKc7jwUR0p439icInmXXMJNhoImdpOrrgA5/nDFK7LVtcJ9MyQNKhJEKpEztnHGWnNWMWLOIR62By0Ln0A==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "@types/node": "*",
+
+
+ "xmlbuilder": ">=11.0.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/responselike": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.1.tgz",
+
+
+ "integrity": "sha512-TiGnitEDxj2X0j+98Eqk5lv/Cij8oHd32bU4D/Yw6AOq7vvTk0gSD2GPj0G/HkvhMoVsdlhYF4yqqlyPBTM6Sg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/semver": {
+
+
+ "version": "7.5.3",
+
+
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz",
+
+
+ "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw=="
+
+
+ },
+
+
+ "node_modules/@types/validator": {
+
+
+ "version": "13.11.2",
+
+
+ "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.2.tgz",
+
+
+ "integrity": "sha512-nIKVVQKT6kGKysnNt+xLobr+pFJNssJRi2s034wgWeFBUx01fI8BeHTW2TcRp7VcFu9QCYG8IlChTuovcm0oKQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/@types/verror": {
+
+
+ "version": "1.10.7",
+
+
+ "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.7.tgz",
+
+
+ "integrity": "sha512-4c5F4T0qMSoXq1KHx7WV1FMuD2h0xdaFoJ7HSVWUfQ8w5YbqCwLOA8K7/yy1I+Txuzvm417dnPUaLmqazX1F7g==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/@types/yargs": {
+
+
+ "version": "17.0.28",
+
+
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.28.tgz",
+
+
+ "integrity": "sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/yargs-parser": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/yargs-parser": {
+
+
+ "version": "21.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz",
+
+
+ "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/@types/yauzl": {
+
+
+ "version": "2.10.1",
+
+
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz",
+
+
+ "integrity": "sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@xmldom/xmldom": {
+
+
+ "version": "0.8.10",
+
+
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+
+
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/7zip-bin": {
+
+
+ "version": "5.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz",
+
+
+ "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/abbrev": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+
+
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/accepts": {
+
+
+ "version": "1.3.8",
+
+
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+
+
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+
+
+ "dependencies": {
+
+
+ "mime-types": "~2.1.34",
+
+
+ "negotiator": "0.6.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/acorn": {
+
+
+ "version": "6.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+
+
+ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "acorn": "bin/acorn"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/acorn-jsx": {
+
+
+ "version": "5.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+
+
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+
+
+ "dev": true,
+
+
+ "peerDependencies": {
+
+
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/agent-base": {
+
+
+ "version": "6.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+
+
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "debug": "4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 6.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/agentkeepalive": {
+
+
+ "version": "4.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz",
+
+
+ "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==",
+
+
+ "dependencies": {
+
+
+ "humanize-ms": "^1.2.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/aggregate-error": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+
+
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "clean-stack": "^2.0.0",
+
+
+ "indent-string": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ajv": {
+
+
+ "version": "6.12.6",
+
+
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+
+
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "fast-deep-equal": "^3.1.1",
+
+
+ "fast-json-stable-stringify": "^2.0.0",
+
+
+ "json-schema-traverse": "^0.4.1",
+
+
+ "uri-js": "^4.2.2"
+
+
+ },
+
+
+ "funding": {
+
+
+ "type": "github",
+
+
+ "url": "https://github.com/sponsors/epoberezkin"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ajv-keywords": {
+
+
+ "version": "3.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+
+
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+
+
+ "dev": true,
+
+
+ "peerDependencies": {
+
+
+ "ajv": "^6.9.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ansi-escapes": {
+
+
+ "version": "3.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+
+
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ansi-regex": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+
+
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ansi-styles": {
+
+
+ "version": "4.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+
+
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+
+
+ "dependencies": {
+
+
+ "color-convert": "^2.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/any-promise": {
+
+
+ "version": "1.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+
+
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
+
+
+ },
+
+
+ "node_modules/anymatch": {
+
+
+ "version": "3.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+
+
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "normalize-path": "^3.0.0",
+
+
+ "picomatch": "^2.0.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/app-builder-bin": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz",
+
+
+ "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/app-builder-lib": {
+
+
+ "version": "23.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.6.0.tgz",
+
+
+ "integrity": "sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@develar/schema-utils": "~2.6.5",
+
+
+ "@electron/universal": "1.2.1",
+
+
+ "@malept/flatpak-bundler": "^0.4.0",
+
+
+ "7zip-bin": "~5.1.1",
+
+
+ "async-exit-hook": "^2.0.1",
+
+
+ "bluebird-lst": "^1.0.9",
+
+
+ "builder-util": "23.6.0",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "chromium-pickle-js": "^0.2.0",
+
+
+ "debug": "^4.3.4",
+
+
+ "ejs": "^3.1.7",
+
+
+ "electron-osx-sign": "^0.6.0",
+
+
+ "electron-publish": "23.6.0",
+
+
+ "form-data": "^4.0.0",
+
+
+ "fs-extra": "^10.1.0",
+
+
+ "hosted-git-info": "^4.1.0",
+
+
+ "is-ci": "^3.0.0",
+
+
+ "isbinaryfile": "^4.0.10",
+
+
+ "js-yaml": "^4.1.0",
+
+
+ "lazy-val": "^1.0.5",
+
+
+ "minimatch": "^3.1.2",
+
+
+ "read-config-file": "6.2.0",
+
+
+ "sanitize-filename": "^1.6.3",
+
+
+ "semver": "^7.3.7",
+
+
+ "tar": "^6.1.11",
+
+
+ "temp-file": "^3.4.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=14.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/aproba": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
+
+
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/are-we-there-yet": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
+
+
+ "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "delegates": "^1.0.0",
+
+
+ "readable-stream": "^3.6.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/argparse": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+
+
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+
+
+ },
+
+
+ "node_modules/array-differ": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
+
+
+ "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/array-union": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+
+
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/arrify": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+
+
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/asap": {
+
+
+ "version": "2.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+
+
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+
+
+ },
+
+
+ "node_modules/asar": {
+
+
+ "version": "3.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz",
+
+
+ "integrity": "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==",
+
+
+ "deprecated": "Please use @electron/asar moving forward. There is no API change, just a package name change",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "chromium-pickle-js": "^0.2.0",
+
+
+ "commander": "^5.0.0",
+
+
+ "glob": "^7.1.6",
+
+
+ "minimatch": "^3.0.4"
+
+
+ },
+
+
+ "bin": {
+
+
+ "asar": "bin/asar.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10.12.0"
+
+
+ },
+
+
+ "optionalDependencies": {
+
+
+ "@types/glob": "^7.1.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/asar/node_modules/commander": {
+
+
+ "version": "5.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+
+
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/assert": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
+
+
+ "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "es6-object-assign": "^1.1.0",
+
+
+ "is-nan": "^1.2.1",
+
+
+ "object-is": "^1.0.1",
+
+
+ "util": "^0.12.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/assert-plus": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+
+
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/astral-regex": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+
+
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/async": {
+
+
+ "version": "3.2.4",
+
+
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+
+
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/async-exit-hook": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz",
+
+
+ "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.12.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/asynckit": {
+
+
+ "version": "0.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+
+
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/at-least-node": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+
+
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/available-typed-arrays": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+
+
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/b4a": {
+
+
+ "version": "1.6.4",
+
+
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
+
+
+ "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/balanced-match": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+
+
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+
+
+ },
+
+
+ "node_modules/base64-js": {
+
+
+ "version": "1.5.1",
+
+
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+
+
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+
+
+ "dev": true,
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "github",
+
+
+ "url": "https://github.com/sponsors/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "patreon",
+
+
+ "url": "https://www.patreon.com/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "consulting",
+
+
+ "url": "https://feross.org/support"
+
+
+ }
+
+
+ ]
+
+
+ },
+
+
+ "node_modules/base64id": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+
+
+ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
+
+
+ "engines": {
+
+
+ "node": "^4.5.0 || >= 5.9"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/binary-extensions": {
+
+
+ "version": "2.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+
+
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/bl": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+
+
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "buffer": "^5.5.0",
+
+
+ "inherits": "^2.0.4",
+
+
+ "readable-stream": "^3.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/bluebird": {
+
+
+ "version": "3.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+
+
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/bluebird-lst": {
+
+
+ "version": "1.0.9",
+
+
+ "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz",
+
+
+ "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "bluebird": "^3.5.5"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/boolean": {
+
+
+ "version": "3.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
+
+
+ "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/brace-expansion": {
+
+
+ "version": "1.1.11",
+
+
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+
+
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+
+
+ "dependencies": {
+
+
+ "balanced-match": "^1.0.0",
+
+
+ "concat-map": "0.0.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/braces": {
+
+
+ "version": "3.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+
+
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+
+
+ "dependencies": {
+
+
+ "fill-range": "^7.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/buffer": {
+
+
+ "version": "5.7.1",
+
+
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+
+
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+
+
+ "dev": true,
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "github",
+
+
+ "url": "https://github.com/sponsors/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "patreon",
+
+
+ "url": "https://www.patreon.com/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "consulting",
+
+
+ "url": "https://feross.org/support"
+
+
+ }
+
+
+ ],
+
+
+ "dependencies": {
+
+
+ "base64-js": "^1.3.1",
+
+
+ "ieee754": "^1.1.13"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/buffer-alloc": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+
+
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "buffer-alloc-unsafe": "^1.1.0",
+
+
+ "buffer-fill": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/buffer-alloc-unsafe": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+
+
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/buffer-crc32": {
+
+
+ "version": "0.2.13",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+
+
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/buffer-equal": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
+
+
+ "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/buffer-fill": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+
+
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/buffer-from": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+
+
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/builder-util": {
+
+
+ "version": "23.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.6.0.tgz",
+
+
+ "integrity": "sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/debug": "^4.1.6",
+
+
+ "@types/fs-extra": "^9.0.11",
+
+
+ "7zip-bin": "~5.1.1",
+
+
+ "app-builder-bin": "4.0.0",
+
+
+ "bluebird-lst": "^1.0.9",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "chalk": "^4.1.1",
+
+
+ "cross-spawn": "^7.0.3",
+
+
+ "debug": "^4.3.4",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "http-proxy-agent": "^5.0.0",
+
+
+ "https-proxy-agent": "^5.0.0",
+
+
+ "is-ci": "^3.0.0",
+
+
+ "js-yaml": "^4.1.0",
+
+
+ "source-map-support": "^0.5.19",
+
+
+ "stat-mode": "^1.0.0",
+
+
+ "temp-file": "^3.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/builder-util-runtime": {
+
+
+ "version": "9.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz",
+
+
+ "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==",
+
+
+ "dependencies": {
+
+
+ "debug": "^4.3.4",
+
+
+ "sax": "^1.2.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/bytenode": {
+
+
+ "version": "1.5.1",
+
+
+ "resolved": "https://registry.npmjs.org/bytenode/-/bytenode-1.5.1.tgz",
+
+
+ "integrity": "sha512-99JiRxnOYs+89VAPfvh1NG6xqsB6flCifJkvQM3jWwYTO+Y7B+Ed85o+yIBt8a4JRMLYo/F0JqY8NyDAgGOs2w==",
+
+
+ "bin": {
+
+
+ "bytenode": "lib/cli.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/bytes": {
+
+
+ "version": "3.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+
+
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cacache": {
+
+
+ "version": "17.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz",
+
+
+ "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@npmcli/fs": "^3.1.0",
+
+
+ "fs-minipass": "^3.0.0",
+
+
+ "glob": "^10.2.2",
+
+
+ "lru-cache": "^7.7.1",
+
+
+ "minipass": "^7.0.3",
+
+
+ "minipass-collect": "^1.0.2",
+
+
+ "minipass-flush": "^1.0.5",
+
+
+ "minipass-pipeline": "^1.2.4",
+
+
+ "p-map": "^4.0.0",
+
+
+ "ssri": "^10.0.0",
+
+
+ "tar": "^6.1.11",
+
+
+ "unique-filename": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cacache/node_modules/brace-expansion": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+
+
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "balanced-match": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cacache/node_modules/glob": {
+
+
+ "version": "10.3.10",
+
+
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+
+
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "foreground-child": "^3.1.0",
+
+
+ "jackspeak": "^2.3.5",
+
+
+ "minimatch": "^9.0.1",
+
+
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+
+
+ "path-scurry": "^1.10.1"
+
+
+ },
+
+
+ "bin": {
+
+
+ "glob": "dist/esm/bin.mjs"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=16 || 14 >=14.17"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cacache/node_modules/lru-cache": {
+
+
+ "version": "7.18.3",
+
+
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+
+
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cacache/node_modules/minimatch": {
+
+
+ "version": "9.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+
+
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "brace-expansion": "^2.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=16 || 14 >=14.17"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cacache/node_modules/minipass": {
+
+
+ "version": "7.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+
+
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=16 || 14 >=14.17"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cache-content-type": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz",
+
+
+ "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==",
+
+
+ "dependencies": {
+
+
+ "mime-types": "^2.1.18",
+
+
+ "ylru": "^1.2.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 6.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cacheable-lookup": {
+
+
+ "version": "5.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
+
+
+ "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cacheable-request": {
+
+
+ "version": "7.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+
+
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "clone-response": "^1.0.2",
+
+
+ "get-stream": "^5.1.0",
+
+
+ "http-cache-semantics": "^4.0.0",
+
+
+ "keyv": "^4.0.0",
+
+
+ "lowercase-keys": "^2.0.0",
+
+
+ "normalize-url": "^6.0.1",
+
+
+ "responselike": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/call-bind": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+
+
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+
+
+ "dependencies": {
+
+
+ "function-bind": "^1.1.1",
+
+
+ "get-intrinsic": "^1.0.2"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/callsites": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+
+
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/chalk": {
+
+
+ "version": "4.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+
+
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^4.1.0",
+
+
+ "supports-color": "^7.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/chance": {
+
+
+ "version": "1.1.9",
+
+
+ "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.9.tgz",
+
+
+ "integrity": "sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/char-regex": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+
+
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/chardet": {
+
+
+ "version": "0.7.0",
+
+
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+
+
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/charenc": {
+
+
+ "version": "0.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+
+
+ "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/chokidar": {
+
+
+ "version": "3.5.3",
+
+
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+
+
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+
+
+ "dev": true,
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "individual",
+
+
+ "url": "https://paulmillr.com/funding/"
+
+
+ }
+
+
+ ],
+
+
+ "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"
+
+
+ },
+
+
+ "optionalDependencies": {
+
+
+ "fsevents": "~2.3.2"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/chownr": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+
+
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/chromium-pickle-js": {
+
+
+ "version": "0.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
+
+
+ "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/ci-info": {
+
+
+ "version": "3.9.0",
+
+
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+
+
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+
+
+ "dev": true,
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "github",
+
+
+ "url": "https://github.com/sponsors/sibiraj-s"
+
+
+ }
+
+
+ ],
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/circular-json-for-egg": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/circular-json-for-egg/-/circular-json-for-egg-1.0.0.tgz",
+
+
+ "integrity": "sha512-BzMR1dg0+YqcFoMETHq0gFeQNNKliXI1Oe+C0nx/4npLaohsR7/Oj3UFht65MLwF7zs6x13gOr+f4+JeYni6vw=="
+
+
+ },
+
+
+ "node_modules/class-validator": {
+
+
+ "version": "0.14.0",
+
+
+ "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.0.tgz",
+
+
+ "integrity": "sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/validator": "^13.7.10",
+
+
+ "libphonenumber-js": "^1.10.14",
+
+
+ "validator": "^13.7.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/clean-stack": {
+
+
+ "version": "2.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+
+
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cli-cursor": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+
+
+ "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "restore-cursor": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cli-spinners": {
+
+
+ "version": "2.9.1",
+
+
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz",
+
+
+ "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cli-truncate": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+
+
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "slice-ansi": "^3.0.0",
+
+
+ "string-width": "^4.2.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cli-width": {
+
+
+ "version": "2.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+
+
+ "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/cliui": {
+
+
+ "version": "8.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+
+
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "string-width": "^4.2.0",
+
+
+ "strip-ansi": "^6.0.1",
+
+
+ "wrap-ansi": "^7.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cliui/node_modules/ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cliui/node_modules/strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/clone": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+
+
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/clone-response": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+
+
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "mimic-response": "^1.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/co": {
+
+
+ "version": "4.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+
+
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+
+
+ "engines": {
+
+
+ "iojs": ">= 1.0.0",
+
+
+ "node": ">= 0.12.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/co-body": {
+
+
+ "version": "5.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz",
+
+
+ "integrity": "sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==",
+
+
+ "dependencies": {
+
+
+ "inflation": "^2.0.0",
+
+
+ "qs": "^6.4.0",
+
+
+ "raw-body": "^2.2.0",
+
+
+ "type-is": "^1.6.14"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/color": {
+
+
+ "version": "4.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+
+
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-convert": "^2.0.1",
+
+
+ "color-string": "^1.9.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.5.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/color-convert": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+
+
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+
+
+ "dependencies": {
+
+
+ "color-name": "~1.1.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=7.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/color-name": {
+
+
+ "version": "1.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+
+
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+
+
+ },
+
+
+ "node_modules/color-string": {
+
+
+ "version": "1.9.1",
+
+
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+
+
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-name": "^1.0.0",
+
+
+ "simple-swizzle": "^0.2.2"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/color-support": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+
+
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "color-support": "bin.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/colors": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+
+
+ "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.1.90"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/combined-stream": {
+
+
+ "version": "1.0.8",
+
+
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+
+
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "delayed-stream": "~1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/commander": {
+
+
+ "version": "11.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+
+
+ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=16"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/compare-version": {
+
+
+ "version": "0.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
+
+
+ "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/concat-map": {
+
+
+ "version": "0.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+
+
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+
+
+ },
+
+
+ "node_modules/config-chain": {
+
+
+ "version": "1.1.13",
+
+
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
+
+
+ "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "ini": "^1.3.4",
+
+
+ "proto-list": "~1.2.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/console-control-strings": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+
+
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/content-disposition": {
+
+
+ "version": "0.5.4",
+
+
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+
+
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+
+
+ "dependencies": {
+
+
+ "safe-buffer": "5.2.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/content-type": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+
+
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cookie": {
+
+
+ "version": "0.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+
+
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cookies": {
+
+
+ "version": "0.8.0",
+
+
+ "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
+
+
+ "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
+
+
+ "dependencies": {
+
+
+ "depd": "~2.0.0",
+
+
+ "keygrip": "~1.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/copy-to": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
+
+
+ "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w=="
+
+
+ },
+
+
+ "node_modules/core-util-is": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+
+
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+
+
+ },
+
+
+ "node_modules/cors": {
+
+
+ "version": "2.8.5",
+
+
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+
+
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+
+
+ "dependencies": {
+
+
+ "object-assign": "^4",
+
+
+ "vary": "^1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/crc": {
+
+
+ "version": "3.8.0",
+
+
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
+
+
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "buffer": "^5.1.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cross-spawn": {
+
+
+ "version": "7.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+
+
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+
+
+ "dependencies": {
+
+
+ "path-key": "^3.1.0",
+
+
+ "shebang-command": "^2.0.0",
+
+
+ "which": "^2.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/crypt": {
+
+
+ "version": "0.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+
+
+ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dayjs": {
+
+
+ "version": "1.11.10",
+
+
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+
+
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+
+
+ },
+
+
+ "node_modules/debug": {
+
+
+ "version": "4.3.4",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+
+
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+
+
+ "dependencies": {
+
+
+ "ms": "2.1.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6.0"
+
+
+ },
+
+
+ "peerDependenciesMeta": {
+
+
+ "supports-color": {
+
+
+ "optional": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "node_modules/decompress-response": {
+
+
+ "version": "6.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+
+
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "mimic-response": "^3.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/decompress-response/node_modules/mimic-response": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+
+
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/deep-equal": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
+
+
+ "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw=="
+
+
+ },
+
+
+ "node_modules/deep-extend": {
+
+
+ "version": "0.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+
+
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/deep-is": {
+
+
+ "version": "0.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+
+
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/default-user-agent": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/default-user-agent/-/default-user-agent-1.0.0.tgz",
+
+
+ "integrity": "sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==",
+
+
+ "dependencies": {
+
+
+ "os-name": "~1.0.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/defaults": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+
+
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "clone": "^1.0.2"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/defer-to-connect": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+
+
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/define-data-property": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz",
+
+
+ "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "get-intrinsic": "^1.2.1",
+
+
+ "gopd": "^1.0.1",
+
+
+ "has-property-descriptors": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/define-properties": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+
+
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+
+
+ "dev": 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/delayed-stream": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+
+
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/delegates": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+
+
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
+
+
+ },
+
+
+ "node_modules/depd": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+
+
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/destroy": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+
+
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.8",
+
+
+ "npm": "1.2.8000 || >= 1.4.16"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/detect-libc": {
+
+
+ "version": "2.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+
+
+ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/detect-node": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
+
+
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/dezalgo": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+
+
+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
+
+
+ "dependencies": {
+
+
+ "asap": "^2.0.0",
+
+
+ "wrappy": "1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/digest-header": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/digest-header/-/digest-header-1.1.0.tgz",
+
+
+ "integrity": "sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg==",
+
+
+ "engines": {
+
+
+ "node": ">= 8.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dir-compare": {
+
+
+ "version": "2.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz",
+
+
+ "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "buffer-equal": "1.0.0",
+
+
+ "colors": "1.0.3",
+
+
+ "commander": "2.9.0",
+
+
+ "minimatch": "3.0.4"
+
+
+ },
+
+
+ "bin": {
+
+
+ "dircompare": "src/cli/dircompare.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dir-compare/node_modules/commander": {
+
+
+ "version": "2.9.0",
+
+
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+
+
+ "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "graceful-readlink": ">= 1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.6.x"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dir-compare/node_modules/minimatch": {
+
+
+ "version": "3.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+
+
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "brace-expansion": "^1.1.7"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dir-glob": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+
+
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+
+
+ "dependencies": {
+
+
+ "path-type": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dmg-builder": {
+
+
+ "version": "23.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.6.0.tgz",
+
+
+ "integrity": "sha512-jFZvY1JohyHarIAlTbfQOk+HnceGjjAdFjVn3n8xlDWKsYNqbO4muca6qXEZTfGXeQMG7TYim6CeS5XKSfSsGA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "app-builder-lib": "23.6.0",
+
+
+ "builder-util": "23.6.0",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "iconv-lite": "^0.6.2",
+
+
+ "js-yaml": "^4.1.0"
+
+
+ },
+
+
+ "optionalDependencies": {
+
+
+ "dmg-license": "^1.0.11"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dmg-builder/node_modules/iconv-lite": {
+
+
+ "version": "0.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+
+
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dmg-license": {
+
+
+ "version": "1.0.11",
+
+
+ "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz",
+
+
+ "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "os": [
+
+
+ "darwin"
+
+
+ ],
+
+
+ "dependencies": {
+
+
+ "@types/plist": "^3.0.1",
+
+
+ "@types/verror": "^1.10.3",
+
+
+ "ajv": "^6.10.0",
+
+
+ "crc": "^3.8.0",
+
+
+ "iconv-corefoundation": "^1.1.7",
+
+
+ "plist": "^3.0.4",
+
+
+ "smart-buffer": "^4.0.2",
+
+
+ "verror": "^1.10.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "dmg-license": "bin/dmg-license.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/doctrine": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+
+
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "esutils": "^2.0.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dotenv": {
+
+
+ "version": "9.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz",
+
+
+ "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dotenv-expand": {
+
+
+ "version": "5.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+
+
+ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/duplexer3": {
+
+
+ "version": "0.1.5",
+
+
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
+
+
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/eastasianwidth": {
+
+
+ "version": "0.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+
+
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/ee-bin": {
+
+
+ "version": "1.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/ee-bin/-/ee-bin-1.5.0.tgz",
+
+
+ "integrity": "sha512-PELFev7hNX103a3WCIalZKGzRIKM1UkFpQ/jGjj8CsjV1cDbvMLU7JEd3veBywosu4qwjTrKizG37bx5M/BLUA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "bytenode": "^1.3.6",
+
+
+ "chalk": "^4.1.2",
+
+
+ "commander": "^11.0.0",
+
+
+ "cross-spawn": "^7.0.3",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "globby": "^10.0.0",
+
+
+ "is-type-of": "^1.2.1",
+
+
+ "javascript-obfuscator": "^4.0.2"
+
+
+ },
+
+
+ "bin": {
+
+
+ "ee-bin": "index.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ee-core": {
+
+
+ "version": "2.9.2",
+
+
+ "resolved": "https://registry.npmjs.org/ee-core/-/ee-core-2.9.2.tgz",
+
+
+ "integrity": "sha512-ZzWcS6/oU/9rAiDqxssqSHnixbgaFMHnRySVlZNhUUAh+ZyBgbroicYWXQohcVbPBCztw/iGDezMJ0FscEn7fg==",
+
+
+ "dependencies": {
+
+
+ "agentkeepalive": "^4.2.0",
+
+
+ "bytenode": "^1.3.6",
+
+
+ "chalk": "^4.1.2",
+
+
+ "cross-spawn": "^7.0.3",
+
+
+ "dayjs": "^1.11.7",
+
+
+ "debug": "^4.3.3",
+
+
+ "egg-errors": "^2.3.0",
+
+
+ "egg-logger": "^2.7.1",
+
+
+ "globby": "^10.0.0",
+
+
+ "is-type-of": "^1.2.1",
+
+
+ "koa": "^2.13.4",
+
+
+ "koa-body": "^5.0.0",
+
+
+ "koa-convert": "^2.0.0",
+
+
+ "koa-static": "^5.0.0",
+
+
+ "koa2-cors": "^2.0.6",
+
+
+ "lodash": "^4.17.21",
+
+
+ "mkdirp": "^2.1.3",
+
+
+ "semver": "^7.3.8",
+
+
+ "serialize-javascript": "^6.0.1",
+
+
+ "socket.io": "^4.6.1",
+
+
+ "socket.io-client": "^4.6.1",
+
+
+ "urllib": "^2.38.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "ee-core": "bin/tools.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ee-first": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+
+
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+
+
+ },
+
+
+ "node_modules/egg-errors": {
+
+
+ "version": "2.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/egg-errors/-/egg-errors-2.3.2.tgz",
+
+
+ "integrity": "sha512-E+Sx7IBVrfRyHSjFXaq4sCZ3Uk3ka9PYySaQ8VbRZmLEt9ENBCD99yVzLIeWUH2QfzvkrjY9El1eHmLeRx7cfw==",
+
+
+ "engines": {
+
+
+ "node": ">=8.9.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/egg-logger": {
+
+
+ "version": "2.9.1",
+
+
+ "resolved": "https://registry.npmjs.org/egg-logger/-/egg-logger-2.9.1.tgz",
+
+
+ "integrity": "sha512-TPYdNthc7yGV+08A2U4g1T1wgRAjfTnsYC53JgfdKiYukaH3na1KPXEu+TEWni7IooqkFGkQ0t0WY+ylWFnvbw==",
+
+
+ "dependencies": {
+
+
+ "chalk": "^2.4.1",
+
+
+ "circular-json-for-egg": "^1.0.0",
+
+
+ "debug": "^2.6.9",
+
+
+ "depd": "^2.0.0",
+
+
+ "egg-errors": "^2.2.0",
+
+
+ "iconv-lite": "^0.4.24",
+
+
+ "mkdirp": "^0.5.1",
+
+
+ "utility": "^1.15.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.5.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/egg-logger/node_modules/ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dependencies": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/egg-logger/node_modules/chalk": {
+
+
+ "version": "2.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+
+
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^3.2.1",
+
+
+ "escape-string-regexp": "^1.0.5",
+
+
+ "supports-color": "^5.3.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/egg-logger/node_modules/color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dependencies": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/egg-logger/node_modules/color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+
+
+ },
+
+
+ "node_modules/egg-logger/node_modules/debug": {
+
+
+ "version": "2.6.9",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+
+
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+
+
+ "dependencies": {
+
+
+ "ms": "2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/egg-logger/node_modules/has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/egg-logger/node_modules/mkdirp": {
+
+
+ "version": "0.5.6",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+
+
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+
+
+ "dependencies": {
+
+
+ "minimist": "^1.2.6"
+
+
+ },
+
+
+ "bin": {
+
+
+ "mkdirp": "bin/cmd.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/egg-logger/node_modules/ms": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+
+
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+
+
+ },
+
+
+ "node_modules/egg-logger/node_modules/supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dependencies": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ejs": {
+
+
+ "version": "3.1.9",
+
+
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+
+
+ "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "jake": "^10.8.5"
+
+
+ },
+
+
+ "bin": {
+
+
+ "ejs": "bin/cli.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/electron": {
+
+
+ "version": "21.4.4",
+
+
+ "resolved": "https://registry.npmjs.org/electron/-/electron-21.4.4.tgz",
+
+
+ "integrity": "sha512-N5O7y7Gtt7mDgkJLkW49ETiT8M3myZ9tNIEvGTKhpBduX4WdgMj6c3hYeYBD6XW7SvbRkWEQaTl25RNday8Xpw==",
+
+
+ "dev": true,
+
+
+ "hasInstallScript": true,
+
+
+ "dependencies": {
+
+
+ "@electron/get": "^1.14.1",
+
+
+ "@types/node": "^16.11.26",
+
+
+ "extract-zip": "^2.0.1"
+
+
+ },
+
+
+ "bin": {
+
+
+ "electron": "cli.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 10.17.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/electron-builder": {
+
+
+ "version": "23.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.6.0.tgz",
+
+
+ "integrity": "sha512-y8D4zO+HXGCNxFBV/JlyhFnoQ0Y0K7/sFH+XwIbj47pqaW8S6PGYQbjoObolKBR1ddQFPt4rwp4CnwMJrW3HAw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/yargs": "^17.0.1",
+
+
+ "app-builder-lib": "23.6.0",
+
+
+ "builder-util": "23.6.0",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "chalk": "^4.1.1",
+
+
+ "dmg-builder": "23.6.0",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "is-ci": "^3.0.0",
+
+
+ "lazy-val": "^1.0.5",
+
+
+ "read-config-file": "6.2.0",
+
+
+ "simple-update-notifier": "^1.0.7",
+
+
+ "yargs": "^17.5.1"
+
+
+ },
+
+
+ "bin": {
+
+
+ "electron-builder": "cli.js",
+
+
+ "install-app-deps": "install-app-deps.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=14.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/electron-osx-sign": {
+
+
+ "version": "0.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz",
+
+
+ "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==",
+
+
+ "deprecated": "Please use @electron/osx-sign moving forward. Be aware the API is slightly different",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "bluebird": "^3.5.0",
+
+
+ "compare-version": "^0.1.2",
+
+
+ "debug": "^2.6.8",
+
+
+ "isbinaryfile": "^3.0.2",
+
+
+ "minimist": "^1.2.0",
+
+
+ "plist": "^3.0.1"
+
+
+ },
+
+
+ "bin": {
+
+
+ "electron-osx-flat": "bin/electron-osx-flat.js",
+
+
+ "electron-osx-sign": "bin/electron-osx-sign.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/electron-osx-sign/node_modules/debug": {
+
+
+ "version": "2.6.9",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+
+
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ms": "2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/electron-osx-sign/node_modules/isbinaryfile": {
+
+
+ "version": "3.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
+
+
+ "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "buffer-alloc": "^1.2.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/electron-osx-sign/node_modules/ms": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+
+
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/electron-publish": {
+
+
+ "version": "23.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.6.0.tgz",
+
+
+ "integrity": "sha512-jPj3y+eIZQJF/+t5SLvsI5eS4mazCbNYqatv5JihbqOstIM13k0d1Z3vAWntvtt13Itl61SO6seicWdioOU5dg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/fs-extra": "^9.0.11",
+
+
+ "builder-util": "23.6.0",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "chalk": "^4.1.1",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "lazy-val": "^1.0.5",
+
+
+ "mime": "^2.5.2"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/electron-shutdown-command": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/electron-shutdown-command/-/electron-shutdown-command-2.0.1.tgz",
+
+
+ "integrity": "sha512-u8fpVGBpKGv0u7c7uAodUWzjF37+FbOeWBxr3vNO/DKt3KISFT48/UIfu/7smTHluCwrWvjwUXLkrZTA8pWPtg=="
+
+
+ },
+
+
+ "node_modules/electron-updater": {
+
+
+ "version": "5.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.3.0.tgz",
+
+
+ "integrity": "sha512-iKEr7yQBcvnQUPnSDYGSWC9t0eF2YbZWeYYYZzYxdl+HiRejXFENjYMnYjoOm2zxyD6Cr2JTHZhp9pqxiXuCOw==",
+
+
+ "dependencies": {
+
+
+ "@types/semver": "^7.3.6",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "js-yaml": "^4.1.0",
+
+
+ "lazy-val": "^1.0.5",
+
+
+ "lodash.escaperegexp": "^4.1.2",
+
+
+ "lodash.isequal": "^4.5.0",
+
+
+ "semver": "^7.3.5",
+
+
+ "typed-emitter": "^2.1.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/emoji-regex": {
+
+
+ "version": "8.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+
+
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/encodeurl": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+
+
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/encoding": {
+
+
+ "version": "0.1.13",
+
+
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+
+
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "iconv-lite": "^0.6.2"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/encoding/node_modules/iconv-lite": {
+
+
+ "version": "0.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+
+
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/end-of-stream": {
+
+
+ "version": "1.4.4",
+
+
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+
+
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+
+
+ "dependencies": {
+
+
+ "once": "^1.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/engine.io": {
+
+
+ "version": "6.5.3",
+
+
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.3.tgz",
+
+
+ "integrity": "sha512-IML/R4eG/pUS5w7OfcDE0jKrljWS9nwnEfsxWCIJF5eO6AHo6+Hlv+lQbdlAYsiJPHzUthLm1RUjnBzWOs45cw==",
+
+
+ "dependencies": {
+
+
+ "@types/cookie": "^0.4.1",
+
+
+ "@types/cors": "^2.8.12",
+
+
+ "@types/node": ">=10.0.0",
+
+
+ "accepts": "~1.3.4",
+
+
+ "base64id": "2.0.0",
+
+
+ "cookie": "~0.4.1",
+
+
+ "cors": "~2.8.5",
+
+
+ "debug": "~4.3.1",
+
+
+ "engine.io-parser": "~5.2.1",
+
+
+ "ws": "~8.11.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10.2.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/engine.io-client": {
+
+
+ "version": "6.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz",
+
+
+ "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==",
+
+
+ "dependencies": {
+
+
+ "@socket.io/component-emitter": "~3.1.0",
+
+
+ "debug": "~4.3.1",
+
+
+ "engine.io-parser": "~5.2.1",
+
+
+ "ws": "~8.11.0",
+
+
+ "xmlhttprequest-ssl": "~2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/engine.io-parser": {
+
+
+ "version": "5.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz",
+
+
+ "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==",
+
+
+ "engines": {
+
+
+ "node": ">=10.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/env-paths": {
+
+
+ "version": "2.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+
+
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/err-code": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+
+
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/es6-error": {
+
+
+ "version": "4.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+
+
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/es6-object-assign": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
+
+
+ "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/escalade": {
+
+
+ "version": "3.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+
+
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/escape-html": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+
+
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+
+
+ },
+
+
+ "node_modules/escape-string-regexp": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+
+
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+
+
+ "engines": {
+
+
+ "node": ">=0.8.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint": {
+
+
+ "version": "5.16.0",
+
+
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz",
+
+
+ "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@babel/code-frame": "^7.0.0",
+
+
+ "ajv": "^6.9.1",
+
+
+ "chalk": "^2.1.0",
+
+
+ "cross-spawn": "^6.0.5",
+
+
+ "debug": "^4.0.1",
+
+
+ "doctrine": "^3.0.0",
+
+
+ "eslint-scope": "^4.0.3",
+
+
+ "eslint-utils": "^1.3.1",
+
+
+ "eslint-visitor-keys": "^1.0.0",
+
+
+ "espree": "^5.0.1",
+
+
+ "esquery": "^1.0.1",
+
+
+ "esutils": "^2.0.2",
+
+
+ "file-entry-cache": "^5.0.1",
+
+
+ "functional-red-black-tree": "^1.0.1",
+
+
+ "glob": "^7.1.2",
+
+
+ "globals": "^11.7.0",
+
+
+ "ignore": "^4.0.6",
+
+
+ "import-fresh": "^3.0.0",
+
+
+ "imurmurhash": "^0.1.4",
+
+
+ "inquirer": "^6.2.2",
+
+
+ "js-yaml": "^3.13.0",
+
+
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+
+
+ "levn": "^0.3.0",
+
+
+ "lodash": "^4.17.11",
+
+
+ "minimatch": "^3.0.4",
+
+
+ "mkdirp": "^0.5.1",
+
+
+ "natural-compare": "^1.4.0",
+
+
+ "optionator": "^0.8.2",
+
+
+ "path-is-inside": "^1.0.2",
+
+
+ "progress": "^2.0.0",
+
+
+ "regexpp": "^2.0.1",
+
+
+ "semver": "^5.5.1",
+
+
+ "strip-ansi": "^4.0.0",
+
+
+ "strip-json-comments": "^2.0.1",
+
+
+ "table": "^5.2.3",
+
+
+ "text-table": "^0.2.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "eslint": "bin/eslint.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^6.14.0 || ^8.10.0 || >=9.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint-plugin-prettier": {
+
+
+ "version": "3.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz",
+
+
+ "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "prettier-linter-helpers": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6.0.0"
+
+
+ },
+
+
+ "peerDependencies": {
+
+
+ "eslint": ">=5.0.0",
+
+
+ "prettier": ">=1.13.0"
+
+
+ },
+
+
+ "peerDependenciesMeta": {
+
+
+ "eslint-config-prettier": {
+
+
+ "optional": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint-scope": {
+
+
+ "version": "4.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+
+
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "esrecurse": "^4.1.0",
+
+
+ "estraverse": "^4.1.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint-utils": {
+
+
+ "version": "1.4.3",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+
+
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "eslint-visitor-keys": "^1.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint-visitor-keys": {
+
+
+ "version": "1.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+
+
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/argparse": {
+
+
+ "version": "1.0.10",
+
+
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+
+
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "sprintf-js": "~1.0.2"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/chalk": {
+
+
+ "version": "2.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+
+
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^3.2.1",
+
+
+ "escape-string-regexp": "^1.0.5",
+
+
+ "supports-color": "^5.3.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/cross-spawn": {
+
+
+ "version": "6.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+
+
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "nice-try": "^1.0.4",
+
+
+ "path-key": "^2.0.1",
+
+
+ "semver": "^5.5.0",
+
+
+ "shebang-command": "^1.2.0",
+
+
+ "which": "^1.2.9"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/js-yaml": {
+
+
+ "version": "3.14.1",
+
+
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+
+
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "argparse": "^1.0.7",
+
+
+ "esprima": "^4.0.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "js-yaml": "bin/js-yaml.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/mkdirp": {
+
+
+ "version": "0.5.6",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+
+
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minimist": "^1.2.6"
+
+
+ },
+
+
+ "bin": {
+
+
+ "mkdirp": "bin/cmd.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/path-key": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+
+
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/semver": {
+
+
+ "version": "5.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+
+
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "semver": "bin/semver"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/shebang-command": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+
+
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "shebang-regex": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/shebang-regex": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+
+
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/sprintf-js": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+
+
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eslint/node_modules/which": {
+
+
+ "version": "1.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+
+
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "isexe": "^2.0.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "which": "bin/which"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/espree": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
+
+
+ "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "acorn": "^6.0.7",
+
+
+ "acorn-jsx": "^5.0.0",
+
+
+ "eslint-visitor-keys": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/esprima": {
+
+
+ "version": "4.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+
+
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "esparse": "bin/esparse.js",
+
+
+ "esvalidate": "bin/esvalidate.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/esquery": {
+
+
+ "version": "1.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+
+
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "estraverse": "^5.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/esquery/node_modules/estraverse": {
+
+
+ "version": "5.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+
+
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/esrecurse": {
+
+
+ "version": "4.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+
+
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "estraverse": "^5.2.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/esrecurse/node_modules/estraverse": {
+
+
+ "version": "5.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+
+
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/estraverse": {
+
+
+ "version": "4.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+
+
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/esutils": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+
+
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/execa": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+
+
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+
+
+ "dependencies": {
+
+
+ "cross-spawn": "^7.0.0",
+
+
+ "get-stream": "^5.0.0",
+
+
+ "human-signals": "^1.1.1",
+
+
+ "is-stream": "^2.0.0",
+
+
+ "merge-stream": "^2.0.0",
+
+
+ "npm-run-path": "^4.0.0",
+
+
+ "onetime": "^5.1.0",
+
+
+ "signal-exit": "^3.0.2",
+
+
+ "strip-final-newline": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/execa/node_modules/mimic-fn": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+
+
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/execa/node_modules/onetime": {
+
+
+ "version": "5.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+
+
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+
+
+ "dependencies": {
+
+
+ "mimic-fn": "^2.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/expand-template": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+
+
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/exponential-backoff": {
+
+
+ "version": "3.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz",
+
+
+ "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/extend-shallow": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+
+
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+
+
+ "dependencies": {
+
+
+ "is-extendable": "^0.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/external-editor": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+
+
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "chardet": "^0.7.0",
+
+
+ "iconv-lite": "^0.4.24",
+
+
+ "tmp": "^0.0.33"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/extract-zip": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+
+
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "debug": "^4.1.1",
+
+
+ "get-stream": "^5.1.0",
+
+
+ "yauzl": "^2.10.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "extract-zip": "cli.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 10.17.0"
+
+
+ },
+
+
+ "optionalDependencies": {
+
+
+ "@types/yauzl": "^2.9.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/extsprintf": {
+
+
+ "version": "1.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz",
+
+
+ "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==",
+
+
+ "dev": true,
+
+
+ "engines": [
+
+
+ "node >=0.6.0"
+
+
+ ],
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/fast-deep-equal": {
+
+
+ "version": "3.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+
+
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/fast-diff": {
+
+
+ "version": "1.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+
+
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/fast-fifo": {
+
+
+ "version": "1.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+
+
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/fast-glob": {
+
+
+ "version": "3.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
+
+
+ "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+
+
+ "dependencies": {
+
+
+ "@nodelib/fs.stat": "^2.0.2",
+
+
+ "@nodelib/fs.walk": "^1.2.3",
+
+
+ "glob-parent": "^5.1.2",
+
+
+ "merge2": "^1.3.0",
+
+
+ "micromatch": "^4.0.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fast-json-stable-stringify": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+
+
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/fast-levenshtein": {
+
+
+ "version": "2.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+
+
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/fastq": {
+
+
+ "version": "1.15.0",
+
+
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+
+
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+
+
+ "dependencies": {
+
+
+ "reusify": "^1.0.4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fd-slicer": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+
+
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "pend": "~1.2.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/figures": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+
+
+ "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "escape-string-regexp": "^1.0.5"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/file-entry-cache": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+
+
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "flat-cache": "^2.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/filelist": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+
+
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minimatch": "^5.0.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/filelist/node_modules/brace-expansion": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+
+
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "balanced-match": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/filelist/node_modules/minimatch": {
+
+
+ "version": "5.1.6",
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+
+
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "brace-expansion": "^2.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fill-range": {
+
+
+ "version": "7.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+
+
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+
+
+ "dependencies": {
+
+
+ "to-regex-range": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/flat-cache": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+
+
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "flatted": "^2.0.0",
+
+
+ "rimraf": "2.6.3",
+
+
+ "write": "1.0.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/flatted": {
+
+
+ "version": "2.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+
+
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/for-each": {
+
+
+ "version": "0.3.3",
+
+
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+
+
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "is-callable": "^1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/foreground-child": {
+
+
+ "version": "3.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+
+
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "cross-spawn": "^7.0.0",
+
+
+ "signal-exit": "^4.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=14"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/foreground-child/node_modules/signal-exit": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+
+
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=14"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/form-data": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+
+
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "asynckit": "^0.4.0",
+
+
+ "combined-stream": "^1.0.8",
+
+
+ "mime-types": "^2.1.12"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/formidable": {
+
+
+ "version": "2.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz",
+
+
+ "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==",
+
+
+ "dependencies": {
+
+
+ "dezalgo": "^1.0.4",
+
+
+ "hexoid": "^1.0.0",
+
+
+ "once": "^1.4.0",
+
+
+ "qs": "^6.11.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://ko-fi.com/tunnckoCore/commissions"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/formstream": {
+
+
+ "version": "1.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/formstream/-/formstream-1.3.1.tgz",
+
+
+ "integrity": "sha512-FkW++ub+VbE5dpwukJVDizNWhSgp8FhmhI65pF7BZSVStBqe6Wgxe2Z9/Vhsn7l7nXCPwP+G1cyYlX8VwWOf0g==",
+
+
+ "dependencies": {
+
+
+ "destroy": "^1.0.4",
+
+
+ "mime": "^2.5.2",
+
+
+ "pause-stream": "~0.0.11"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fresh": {
+
+
+ "version": "0.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+
+
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fs-constants": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+
+
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/fs-extra": {
+
+
+ "version": "10.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+
+
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+
+
+ "dependencies": {
+
+
+ "graceful-fs": "^4.2.0",
+
+
+ "jsonfile": "^6.0.1",
+
+
+ "universalify": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fs-minipass": {
+
+
+ "version": "3.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz",
+
+
+ "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minipass": "^7.0.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fs-minipass/node_modules/minipass": {
+
+
+ "version": "7.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+
+
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=16 || 14 >=14.17"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fs.realpath": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+
+
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+
+
+ },
+
+
+ "node_modules/fsevents": {
+
+
+ "version": "2.3.3",
+
+
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+
+
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+
+
+ "dev": true,
+
+
+ "hasInstallScript": true,
+
+
+ "optional": true,
+
+
+ "os": [
+
+
+ "darwin"
+
+
+ ],
+
+
+ "engines": {
+
+
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/function-bind": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+
+
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/functional-red-black-tree": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+
+
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/gauge": {
+
+
+ "version": "4.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
+
+
+ "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "aproba": "^1.0.3 || ^2.0.0",
+
+
+ "color-support": "^1.1.3",
+
+
+ "console-control-strings": "^1.1.0",
+
+
+ "has-unicode": "^2.0.1",
+
+
+ "signal-exit": "^3.0.7",
+
+
+ "string-width": "^4.2.3",
+
+
+ "strip-ansi": "^6.0.1",
+
+
+ "wide-align": "^1.1.5"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/gauge/node_modules/ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/gauge/node_modules/strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/get-caller-file": {
+
+
+ "version": "2.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+
+
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": "6.* || 8.* || >= 10.*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/get-intrinsic": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+
+
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+
+
+ "dependencies": {
+
+
+ "function-bind": "^1.1.1",
+
+
+ "has": "^1.0.3",
+
+
+ "has-proto": "^1.0.1",
+
+
+ "has-symbols": "^1.0.3"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/get-stream": {
+
+
+ "version": "5.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+
+
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+
+
+ "dependencies": {
+
+
+ "pump": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/github-from-package": {
+
+
+ "version": "0.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+
+
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/glob": {
+
+
+ "version": "7.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+
+
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+
+
+ "dependencies": {
+
+
+ "fs.realpath": "^1.0.0",
+
+
+ "inflight": "^1.0.4",
+
+
+ "inherits": "2",
+
+
+ "minimatch": "^3.1.1",
+
+
+ "once": "^1.3.0",
+
+
+ "path-is-absolute": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "*"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/glob-parent": {
+
+
+ "version": "5.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+
+
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+
+
+ "dependencies": {
+
+
+ "is-glob": "^4.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/global-agent": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz",
+
+
+ "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==",
+
+
+ "dev": true,
+
+
+ "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-tunnel-ng": {
+
+
+ "version": "2.7.1",
+
+
+ "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz",
+
+
+ "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "encodeurl": "^1.0.2",
+
+
+ "lodash": "^4.17.10",
+
+
+ "npm-conf": "^1.1.3",
+
+
+ "tunnel": "^0.0.6"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/globals": {
+
+
+ "version": "11.12.0",
+
+
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+
+
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/globalthis": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+
+
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "define-properties": "^1.1.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/globby": {
+
+
+ "version": "10.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz",
+
+
+ "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==",
+
+
+ "dependencies": {
+
+
+ "@types/glob": "^7.1.1",
+
+
+ "array-union": "^2.1.0",
+
+
+ "dir-glob": "^3.0.1",
+
+
+ "fast-glob": "^3.0.3",
+
+
+ "glob": "^7.1.3",
+
+
+ "ignore": "^5.1.1",
+
+
+ "merge2": "^1.2.3",
+
+
+ "slash": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/globby/node_modules/ignore": {
+
+
+ "version": "5.2.4",
+
+
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+
+
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+
+
+ "engines": {
+
+
+ "node": ">= 4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/gopd": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+
+
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "get-intrinsic": "^1.1.3"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/got": {
+
+
+ "version": "11.8.6",
+
+
+ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
+
+
+ "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@sindresorhus/is": "^4.0.0",
+
+
+ "@szmarczak/http-timer": "^4.0.5",
+
+
+ "@types/cacheable-request": "^6.0.1",
+
+
+ "@types/responselike": "^1.0.0",
+
+
+ "cacheable-lookup": "^5.0.3",
+
+
+ "cacheable-request": "^7.0.2",
+
+
+ "decompress-response": "^6.0.0",
+
+
+ "http2-wrapper": "^1.0.0-beta.5.2",
+
+
+ "lowercase-keys": "^2.0.0",
+
+
+ "p-cancelable": "^2.0.0",
+
+
+ "responselike": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10.19.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/graceful-fs": {
+
+
+ "version": "4.2.11",
+
+
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+
+
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+
+
+ },
+
+
+ "node_modules/graceful-readlink": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+
+
+ "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/has": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
+
+
+ "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/has-flag": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+
+
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/has-property-descriptors": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+
+
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "get-intrinsic": "^1.1.1"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/has-proto": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+
+
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/has-symbols": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+
+
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/has-tostringtag": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+
+
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+
+
+ "dependencies": {
+
+
+ "has-symbols": "^1.0.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/has-unicode": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+
+
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/hexoid": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
+
+
+ "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==",
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/hosted-git-info": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+
+
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "lru-cache": "^6.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/http-assert": {
+
+
+ "version": "1.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz",
+
+
+ "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==",
+
+
+ "dependencies": {
+
+
+ "deep-equal": "~1.0.1",
+
+
+ "http-errors": "~1.8.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/http-cache-semantics": {
+
+
+ "version": "4.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+
+
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/http-errors": {
+
+
+ "version": "1.8.1",
+
+
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+
+
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+
+
+ "dependencies": {
+
+
+ "depd": "~1.1.2",
+
+
+ "inherits": "2.0.4",
+
+
+ "setprototypeof": "1.2.0",
+
+
+ "statuses": ">= 1.5.0 < 2",
+
+
+ "toidentifier": "1.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/http-errors/node_modules/depd": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+
+
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/http-proxy-agent": {
+
+
+ "version": "5.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
+
+
+ "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@tootallnate/once": "2",
+
+
+ "agent-base": "6",
+
+
+ "debug": "4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/http2-wrapper": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
+
+
+ "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "quick-lru": "^5.1.1",
+
+
+ "resolve-alpn": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10.19.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/https-proxy-agent": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+
+
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "agent-base": "6",
+
+
+ "debug": "4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/human-signals": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+
+
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+
+
+ "engines": {
+
+
+ "node": ">=8.12.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/humanize-ms": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+
+
+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+
+
+ "dependencies": {
+
+
+ "ms": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/icon-gen": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/icon-gen/-/icon-gen-4.0.0.tgz",
+
+
+ "integrity": "sha512-31B1AFpMHeVxrx0IWr8ch17+SHHsdPLxr293ZhefHA+WaNW20vZUfr/3GfTN/oV3DuO+yphgwMvZc78/bzfA4g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "commander": "^8.3.0",
+
+
+ "pngjs": "^7.0.0",
+
+
+ "sharp": "^0.32.4"
+
+
+ },
+
+
+ "bin": {
+
+
+ "icon-gen": "dist/bin/index.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 18"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/icon-gen/node_modules/commander": {
+
+
+ "version": "8.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+
+
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 12"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/iconv-corefoundation": {
+
+
+ "version": "1.1.7",
+
+
+ "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz",
+
+
+ "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "os": [
+
+
+ "darwin"
+
+
+ ],
+
+
+ "dependencies": {
+
+
+ "cli-truncate": "^2.1.0",
+
+
+ "node-addon-api": "^1.6.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^8.11.2 || >=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/iconv-lite": {
+
+
+ "version": "0.4.24",
+
+
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+
+
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+
+
+ "dependencies": {
+
+
+ "safer-buffer": ">= 2.1.2 < 3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ieee754": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+
+
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+
+
+ "dev": true,
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "github",
+
+
+ "url": "https://github.com/sponsors/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "patreon",
+
+
+ "url": "https://www.patreon.com/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "consulting",
+
+
+ "url": "https://feross.org/support"
+
+
+ }
+
+
+ ]
+
+
+ },
+
+
+ "node_modules/ignore": {
+
+
+ "version": "4.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+
+
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ignore-by-default": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+
+
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/import-fresh": {
+
+
+ "version": "3.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+
+
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "parent-module": "^1.0.0",
+
+
+ "resolve-from": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/imurmurhash": {
+
+
+ "version": "0.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+
+
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.8.19"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/indent-string": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+
+
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inflation": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz",
+
+
+ "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.8.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inflight": {
+
+
+ "version": "1.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+
+
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+
+
+ "dependencies": {
+
+
+ "once": "^1.3.0",
+
+
+ "wrappy": "1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inherits": {
+
+
+ "version": "2.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+
+
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+
+
+ },
+
+
+ "node_modules/ini": {
+
+
+ "version": "1.3.8",
+
+
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+
+
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/inquirer": {
+
+
+ "version": "6.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+
+
+ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-escapes": "^3.2.0",
+
+
+ "chalk": "^2.4.2",
+
+
+ "cli-cursor": "^2.1.0",
+
+
+ "cli-width": "^2.0.0",
+
+
+ "external-editor": "^3.0.3",
+
+
+ "figures": "^2.0.0",
+
+
+ "lodash": "^4.17.12",
+
+
+ "mute-stream": "0.0.7",
+
+
+ "run-async": "^2.2.0",
+
+
+ "rxjs": "^6.4.0",
+
+
+ "string-width": "^2.1.0",
+
+
+ "strip-ansi": "^5.1.0",
+
+
+ "through": "^2.3.6"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/chalk": {
+
+
+ "version": "2.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+
+
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^3.2.1",
+
+
+ "escape-string-regexp": "^1.0.5",
+
+
+ "supports-color": "^5.3.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/is-fullwidth-code-point": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+
+
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/string-width": {
+
+
+ "version": "2.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+
+
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "is-fullwidth-code-point": "^2.0.0",
+
+
+ "strip-ansi": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+
+
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/strip-ansi": {
+
+
+ "version": "5.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+
+
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^4.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/strip-ansi/node_modules/ansi-regex": {
+
+
+ "version": "4.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+
+
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inquirer/node_modules/supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inversify": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/inversify/-/inversify-6.0.1.tgz",
+
+
+ "integrity": "sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/ip": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+
+
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/is-arguments": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+
+
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "call-bind": "^1.0.2",
+
+
+ "has-tostringtag": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-arrayish": {
+
+
+ "version": "0.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+
+
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/is-binary-path": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+
+
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "binary-extensions": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-buffer": {
+
+
+ "version": "1.1.6",
+
+
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+
+
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/is-callable": {
+
+
+ "version": "1.2.7",
+
+
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+
+
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-ci": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+
+
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ci-info": "^3.2.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "is-ci": "bin.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-class-hotfix": {
+
+
+ "version": "0.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/is-class-hotfix/-/is-class-hotfix-0.0.6.tgz",
+
+
+ "integrity": "sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ=="
+
+
+ },
+
+
+ "node_modules/is-extendable": {
+
+
+ "version": "0.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+
+
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-extglob": {
+
+
+ "version": "2.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+
+
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-fullwidth-code-point": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+
+
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-generator-function": {
+
+
+ "version": "1.0.10",
+
+
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+
+
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+
+
+ "dependencies": {
+
+
+ "has-tostringtag": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-glob": {
+
+
+ "version": "4.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+
+
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+
+
+ "dependencies": {
+
+
+ "is-extglob": "^2.1.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-interactive": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+
+
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-lambda": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+
+
+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/is-nan": {
+
+
+ "version": "1.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
+
+
+ "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "call-bind": "^1.0.0",
+
+
+ "define-properties": "^1.1.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-number": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+
+
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+
+
+ "engines": {
+
+
+ "node": ">=0.12.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-stream": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+
+
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-type-of": {
+
+
+ "version": "1.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-type-of/-/is-type-of-1.4.0.tgz",
+
+
+ "integrity": "sha512-EddYllaovi5ysMLMEN7yzHEKh8A850cZ7pykrY1aNRQGn/CDjRDE9qEWbIdt7xGEVJmjBXzU/fNnC4ABTm8tEQ==",
+
+
+ "dependencies": {
+
+
+ "core-util-is": "^1.0.2",
+
+
+ "is-class-hotfix": "~0.0.6",
+
+
+ "isstream": "~0.1.2"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-typed-array": {
+
+
+ "version": "1.1.12",
+
+
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
+
+
+ "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "which-typed-array": "^1.1.11"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-unicode-supported": {
+
+
+ "version": "0.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+
+
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/isbinaryfile": {
+
+
+ "version": "4.0.10",
+
+
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
+
+
+ "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 8.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/gjtorikian/"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/isexe": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+
+
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+
+
+ },
+
+
+ "node_modules/isstream": {
+
+
+ "version": "0.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+
+
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
+
+
+ },
+
+
+ "node_modules/jackspeak": {
+
+
+ "version": "2.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
+
+
+ "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@isaacs/cliui": "^8.0.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=14"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ },
+
+
+ "optionalDependencies": {
+
+
+ "@pkgjs/parseargs": "^0.11.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/jake": {
+
+
+ "version": "10.8.7",
+
+
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
+
+
+ "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "async": "^3.2.3",
+
+
+ "chalk": "^4.0.2",
+
+
+ "filelist": "^1.0.4",
+
+
+ "minimatch": "^3.1.2"
+
+
+ },
+
+
+ "bin": {
+
+
+ "jake": "bin/cli.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/javascript-obfuscator": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.1.0.tgz",
+
+
+ "integrity": "sha512-ckC0VFKQ0/sFtLH9apW/ZLfsP8LuZqZhVEM4VTJ5KLzyLaodW6C1lTU8808eboDmddKyvd2uyRx5bzc0Me0GYg==",
+
+
+ "dev": true,
+
+
+ "hasInstallScript": true,
+
+
+ "dependencies": {
+
+
+ "@javascript-obfuscator/escodegen": "2.3.0",
+
+
+ "@javascript-obfuscator/estraverse": "5.4.0",
+
+
+ "acorn": "8.8.2",
+
+
+ "assert": "2.0.0",
+
+
+ "chalk": "4.1.2",
+
+
+ "chance": "1.1.9",
+
+
+ "class-validator": "0.14.0",
+
+
+ "commander": "10.0.0",
+
+
+ "eslint-scope": "7.1.1",
+
+
+ "eslint-visitor-keys": "3.3.0",
+
+
+ "fast-deep-equal": "3.1.3",
+
+
+ "inversify": "6.0.1",
+
+
+ "js-string-escape": "1.0.1",
+
+
+ "md5": "2.3.0",
+
+
+ "mkdirp": "2.1.3",
+
+
+ "multimatch": "5.0.0",
+
+
+ "opencollective-postinstall": "2.0.3",
+
+
+ "process": "0.11.10",
+
+
+ "reflect-metadata": "0.1.13",
+
+
+ "source-map-support": "0.5.21",
+
+
+ "string-template": "1.0.0",
+
+
+ "stringz": "2.1.0",
+
+
+ "tslib": "2.5.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "javascript-obfuscator": "bin/javascript-obfuscator"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^12.22.0 || ^14.0.0 || ^16.0.0 || ^17.0.0 || >=18.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "type": "opencollective",
+
+
+ "url": "https://opencollective.com/javascript-obfuscator"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/javascript-obfuscator/node_modules/acorn": {
+
+
+ "version": "8.8.2",
+
+
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+
+
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "acorn": "bin/acorn"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/javascript-obfuscator/node_modules/commander": {
+
+
+ "version": "10.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
+
+
+ "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=14"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/javascript-obfuscator/node_modules/eslint-scope": {
+
+
+ "version": "7.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+
+
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "esrecurse": "^4.3.0",
+
+
+ "estraverse": "^5.2.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/javascript-obfuscator/node_modules/eslint-visitor-keys": {
+
+
+ "version": "3.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+
+
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/javascript-obfuscator/node_modules/estraverse": {
+
+
+ "version": "5.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+
+
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/javascript-obfuscator/node_modules/mkdirp": {
+
+
+ "version": "2.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz",
+
+
+ "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "mkdirp": "dist/cjs/src/bin.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/js-string-escape": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
+
+
+ "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/js-tokens": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+
+
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/js-yaml": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+
+
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+
+
+ "dependencies": {
+
+
+ "argparse": "^2.0.1"
+
+
+ },
+
+
+ "bin": {
+
+
+ "js-yaml": "bin/js-yaml.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/json-buffer": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+
+
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/json-schema-traverse": {
+
+
+ "version": "0.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+
+
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/json-stable-stringify-without-jsonify": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+
+
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/json-stringify-safe": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+
+
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/json5": {
+
+
+ "version": "2.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+
+
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "json5": "lib/cli.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/jsonfile": {
+
+
+ "version": "6.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+
+
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+
+
+ "dependencies": {
+
+
+ "universalify": "^2.0.0"
+
+
+ },
+
+
+ "optionalDependencies": {
+
+
+ "graceful-fs": "^4.1.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/keygrip": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
+
+
+ "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
+
+
+ "dependencies": {
+
+
+ "tsscmp": "1.0.6"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/keyv": {
+
+
+ "version": "4.5.4",
+
+
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+
+
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "json-buffer": "3.0.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/koa": {
+
+
+ "version": "2.14.2",
+
+
+ "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz",
+
+
+ "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==",
+
+
+ "dependencies": {
+
+
+ "accepts": "^1.3.5",
+
+
+ "cache-content-type": "^1.0.0",
+
+
+ "content-disposition": "~0.5.2",
+
+
+ "content-type": "^1.0.4",
+
+
+ "cookies": "~0.8.0",
+
+
+ "debug": "^4.3.2",
+
+
+ "delegates": "^1.0.0",
+
+
+ "depd": "^2.0.0",
+
+
+ "destroy": "^1.0.4",
+
+
+ "encodeurl": "^1.0.2",
+
+
+ "escape-html": "^1.0.3",
+
+
+ "fresh": "~0.5.2",
+
+
+ "http-assert": "^1.3.0",
+
+
+ "http-errors": "^1.6.3",
+
+
+ "is-generator-function": "^1.0.7",
+
+
+ "koa-compose": "^4.1.0",
+
+
+ "koa-convert": "^2.0.0",
+
+
+ "on-finished": "^2.3.0",
+
+
+ "only": "~0.0.2",
+
+
+ "parseurl": "^1.3.2",
+
+
+ "statuses": "^1.5.0",
+
+
+ "type-is": "^1.6.16",
+
+
+ "vary": "^1.1.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/koa-body": {
+
+
+ "version": "5.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/koa-body/-/koa-body-5.0.0.tgz",
+
+
+ "integrity": "sha512-nHwEODrQGiyKBILCWO8QSS40C87cKr2cp3y/Cw8u9Z8w5t0CdSkGm3+y9WK5BIAlPpo9tTw5RtSbxpVyG79vmw==",
+
+
+ "dependencies": {
+
+
+ "@types/formidable": "^2.0.4",
+
+
+ "co-body": "^5.1.1",
+
+
+ "formidable": "^2.0.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/koa-compose": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
+
+
+ "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="
+
+
+ },
+
+
+ "node_modules/koa-convert": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz",
+
+
+ "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==",
+
+
+ "dependencies": {
+
+
+ "co": "^4.6.0",
+
+
+ "koa-compose": "^4.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/koa-send": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz",
+
+
+ "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==",
+
+
+ "dependencies": {
+
+
+ "debug": "^4.1.1",
+
+
+ "http-errors": "^1.7.3",
+
+
+ "resolve-path": "^1.4.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/koa-static": {
+
+
+ "version": "5.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz",
+
+
+ "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==",
+
+
+ "dependencies": {
+
+
+ "debug": "^3.1.0",
+
+
+ "koa-send": "^5.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 7.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/koa-static/node_modules/debug": {
+
+
+ "version": "3.2.7",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+
+
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+
+
+ "dependencies": {
+
+
+ "ms": "^2.1.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/koa2-cors": {
+
+
+ "version": "2.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/koa2-cors/-/koa2-cors-2.0.6.tgz",
+
+
+ "integrity": "sha512-JRCcSM4lamM+8kvKGDKlesYk2ASrmSTczDtGUnIadqMgnHU4Ct5Gw7Bxt3w3m6d6dy3WN0PU4oMP43HbddDEWg==",
+
+
+ "engines": {
+
+
+ "node": ">= 7.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/lazy-val": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz",
+
+
+ "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q=="
+
+
+ },
+
+
+ "node_modules/levn": {
+
+
+ "version": "0.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+
+
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "prelude-ls": "~1.1.2",
+
+
+ "type-check": "~0.3.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.8.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/libphonenumber-js": {
+
+
+ "version": "1.10.47",
+
+
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.47.tgz",
+
+
+ "integrity": "sha512-b4t7VQDV29xx/ni+58yl9KWPGjnDLDXCeCTLrD4V8vDpObXZRZBrg7uX/HWZ7YXiJKqdBDGgc+barUUTNB6Slw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/lodash": {
+
+
+ "version": "4.17.21",
+
+
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+
+
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+
+
+ },
+
+
+ "node_modules/lodash.escaperegexp": {
+
+
+ "version": "4.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
+
+
+ "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="
+
+
+ },
+
+
+ "node_modules/lodash.isequal": {
+
+
+ "version": "4.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+
+
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+
+
+ },
+
+
+ "node_modules/log-symbols": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+
+
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "chalk": "^4.1.0",
+
+
+ "is-unicode-supported": "^0.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/loudness": {
+
+
+ "version": "0.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/loudness/-/loudness-0.4.2.tgz",
+
+
+ "integrity": "sha512-D+1opqDjcpAdyv0JVt5KJju/4f6yLs/tqcDj8LCrtZciYMtD4I2I4brByt9nZkfU5bnnnHsLFPtBBDpv2oamkg==",
+
+
+ "dependencies": {
+
+
+ "execa": "^4.0.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10.13.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/lowercase-keys": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+
+
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/lru-cache": {
+
+
+ "version": "6.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+
+
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+
+
+ "dependencies": {
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/make-fetch-happen": {
+
+
+ "version": "11.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz",
+
+
+ "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "agentkeepalive": "^4.2.1",
+
+
+ "cacache": "^17.0.0",
+
+
+ "http-cache-semantics": "^4.1.1",
+
+
+ "http-proxy-agent": "^5.0.0",
+
+
+ "https-proxy-agent": "^5.0.0",
+
+
+ "is-lambda": "^1.0.1",
+
+
+ "lru-cache": "^7.7.1",
+
+
+ "minipass": "^5.0.0",
+
+
+ "minipass-fetch": "^3.0.0",
+
+
+ "minipass-flush": "^1.0.5",
+
+
+ "minipass-pipeline": "^1.2.4",
+
+
+ "negotiator": "^0.6.3",
+
+
+ "promise-retry": "^2.0.1",
+
+
+ "socks-proxy-agent": "^7.0.0",
+
+
+ "ssri": "^10.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/make-fetch-happen/node_modules/lru-cache": {
+
+
+ "version": "7.18.3",
+
+
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+
+
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/matcher": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
+
+
+ "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "escape-string-regexp": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/matcher/node_modules/escape-string-regexp": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+
+
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/md5": {
+
+
+ "version": "2.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
+
+
+ "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "charenc": "0.0.2",
+
+
+ "crypt": "0.0.2",
+
+
+ "is-buffer": "~1.1.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/media-typer": {
+
+
+ "version": "0.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+
+
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/merge-stream": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+
+
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
+
+
+ },
+
+
+ "node_modules/merge2": {
+
+
+ "version": "1.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+
+
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/micromatch": {
+
+
+ "version": "4.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+
+
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+
+
+ "dependencies": {
+
+
+ "braces": "^3.0.2",
+
+
+ "picomatch": "^2.3.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mime": {
+
+
+ "version": "2.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+
+
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+
+
+ "bin": {
+
+
+ "mime": "cli.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mime-db": {
+
+
+ "version": "1.52.0",
+
+
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+
+
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mime-types": {
+
+
+ "version": "2.1.35",
+
+
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+
+
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+
+
+ "dependencies": {
+
+
+ "mime-db": "1.52.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mimic-fn": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+
+
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mimic-response": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+
+
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minimatch": {
+
+
+ "version": "3.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+
+
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+
+
+ "dependencies": {
+
+
+ "brace-expansion": "^1.1.7"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minimist": {
+
+
+ "version": "1.2.8",
+
+
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+
+
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass": {
+
+
+ "version": "5.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+
+
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass-collect": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+
+
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minipass": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass-collect/node_modules/minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass-fetch": {
+
+
+ "version": "3.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz",
+
+
+ "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minipass": "^7.0.3",
+
+
+ "minipass-sized": "^1.0.3",
+
+
+ "minizlib": "^2.1.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+
+
+ },
+
+
+ "optionalDependencies": {
+
+
+ "encoding": "^0.1.13"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass-fetch/node_modules/minipass": {
+
+
+ "version": "7.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+
+
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=16 || 14 >=14.17"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass-flush": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+
+
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minipass": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass-flush/node_modules/minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass-pipeline": {
+
+
+ "version": "1.2.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+
+
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minipass": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass-pipeline/node_modules/minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass-sized": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+
+
+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minipass": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass-sized/node_modules/minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minizlib": {
+
+
+ "version": "2.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+
+
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minipass": "^3.0.0",
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minizlib/node_modules/minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mkdirp": {
+
+
+ "version": "2.1.6",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz",
+
+
+ "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==",
+
+
+ "bin": {
+
+
+ "mkdirp": "dist/cjs/src/bin.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mkdirp-classic": {
+
+
+ "version": "0.5.3",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+
+
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/modbus-serial": {
+
+
+ "version": "8.0.13",
+
+
+ "resolved": "https://registry.npmjs.org/modbus-serial/-/modbus-serial-8.0.13.tgz",
+
+
+ "integrity": "sha512-h/kEtN2aB4zfMic7H+Afg/LWlb0oHbMzo4cKlebGxUXimpe33TptDy6L9f4o/cg0BQrzEPV72RSH64PX3fgWTw==",
+
+
+ "dependencies": {
+
+
+ "debug": "^4.1.1",
+
+
+ "serialport": "^11.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/bindings-cpp": {
+
+
+ "version": "11.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/bindings-cpp/-/bindings-cpp-11.0.3.tgz",
+
+
+ "integrity": "sha512-xgNDJ7pHHZCJMoDsEH+D8q5CV+V3RGN4/jLEG9SQ7q6kh+o03axV0l/upPHZ0HW4tTXpGgqPIGbXOTrD4RGQQA==",
+
+
+ "hasInstallScript": true,
+
+
+ "dependencies": {
+
+
+ "@serialport/bindings-interface": "1.2.2",
+
+
+ "@serialport/parser-readline": "11.0.0",
+
+
+ "debug": "4.3.4",
+
+
+ "node-addon-api": "6.1.0",
+
+
+ "node-gyp-build": "4.6.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=14.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/bindings-cpp/node_modules/@serialport/parser-delimiter": {
+
+
+ "version": "11.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-11.0.0.tgz",
+
+
+ "integrity": "sha512-aZLJhlRTjSmEwllLG7S4J8s8ctRAS0cbvCpO87smLvl3e4BgzbVgF6Z6zaJd3Aji2uSiYgfedCdNc4L6W+1E2g==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/bindings-cpp/node_modules/@serialport/parser-readline": {
+
+
+ "version": "11.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-11.0.0.tgz",
+
+
+ "integrity": "sha512-rRAivhRkT3YO28WjmmG4FQX6L+KMb5/ikhyylRfzWPw0nSXy97+u07peS9CbHqaNvJkMhH1locp2H36aGMOEIA==",
+
+
+ "dependencies": {
+
+
+ "@serialport/parser-delimiter": "11.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/parser-byte-length": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-11.0.1.tgz",
+
+
+ "integrity": "sha512-UsffR5b3NHwhjJzsWv5fZMkoq3wGNyUcRTA9jlu02w+2kMlBRJPzlPVB5szVX0VWUEqkCg+3VaU2XWuYr+uAUA==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/parser-cctalk": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-11.0.1.tgz",
+
+
+ "integrity": "sha512-klzVQfRcC1m0SVDV2Dy9hHfwweO2/mUMUyuXK04FRkKHy5/AdETmk9KTVVVVfpDCSysvHoyQPwiDFq8ddwX3cQ==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/parser-delimiter": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-11.0.1.tgz",
+
+
+ "integrity": "sha512-NAsYa3OFt2xEnj/+0BRkQP2qkRNbXBPEq6uFJEdNdzcTSF+BTRXkoIRrWBq3N6koovPqW6lnbxc/iJYe5AX/2Q==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/parser-inter-byte-timeout": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-11.0.1.tgz",
+
+
+ "integrity": "sha512-PEFV9dSpW+ptH1rLhdB9KgE+rbJ/FvQiZz0mx+4jkv/Po4g3PNsEEMXfMW0aQVSFVsmitvmE0jHlhGjLv8GQEg==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/parser-packet-length": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-packet-length/-/parser-packet-length-11.0.1.tgz",
+
+
+ "integrity": "sha512-KwPu8dsAI+eN4fnUS1vVmrOpUtBK4p9L9cHhwn5ZmfcvwvZMHp/J+IEu7xH0g5aM1/8QEoaql26BQP+sZ71NQQ==",
+
+
+ "engines": {
+
+
+ "node": ">=8.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/parser-readline": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-11.0.1.tgz",
+
+
+ "integrity": "sha512-wkJ3EI733+yhbi7eBWzs/qn8+cfIBcYQjfrILPNqslAy6VlgdKw+pHoblDFmg78GN0TqGUDSWlTJ65oLEPVp5Q==",
+
+
+ "dependencies": {
+
+
+ "@serialport/parser-delimiter": "11.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/parser-ready": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-11.0.1.tgz",
+
+
+ "integrity": "sha512-v/bvlgKhrNt+SVLSqlfXCO1HEinfRRMGnzqbpdVCgu2SiWIEenCLjs51JisKVYQoQFcXdP/EHZnzm7NPXHDlAg==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/parser-regex": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-11.0.1.tgz",
+
+
+ "integrity": "sha512-Lf3k7qibYqZ0+/wX3UA8fRng3WtQ+UyLpjQhG1COs6OBSq5/I5tYXczfhlrbA0gHo1qzgzr2V2t7m6FoBSc81Q==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/parser-slip-encoder": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-slip-encoder/-/parser-slip-encoder-11.0.1.tgz",
+
+
+ "integrity": "sha512-l4mXsAGzpmPO7+uqKJqtPDW643irfnGEWbiy34FoYvuOs8n0SmiMtgQZFAtvlTNQCRWE2tykF/WG6K/McJthDw==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/parser-spacepacket": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-spacepacket/-/parser-spacepacket-11.0.1.tgz",
+
+
+ "integrity": "sha512-Lq7fXoOsLOMo4XEt9HB31zV5LhrteXlsOy2o6r39TfRwU6x8Nou9jQMA9vW0a6yPra5zwsHIaNrA6tDOGj2Ozg==",
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/@serialport/stream": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-11.0.1.tgz",
+
+
+ "integrity": "sha512-6pjyKRg8MQuvhGfg36+PF7K5eGNQcEswCSiAg1UPilqqFS8X1QnaiSCn5UFp/hCN+pAtlFjkOi0ztvtmSI7n4g==",
+
+
+ "dependencies": {
+
+
+ "@serialport/bindings-interface": "1.2.2",
+
+
+ "debug": "4.3.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/node-addon-api": {
+
+
+ "version": "6.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+
+
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
+
+
+ },
+
+
+ "node_modules/modbus-serial/node_modules/serialport": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/serialport/-/serialport-11.0.1.tgz",
+
+
+ "integrity": "sha512-j/ntDuewAkqL6g5wKjwV2RTyLBL9cpob8aRd3yLAViYApTsJoYqRleyuzst0OboNTBjBsoxQ4YKYhuYHi1XViQ==",
+
+
+ "dependencies": {
+
+
+ "@serialport/binding-mock": "10.2.2",
+
+
+ "@serialport/bindings-cpp": "11.0.3",
+
+
+ "@serialport/parser-byte-length": "11.0.1",
+
+
+ "@serialport/parser-cctalk": "11.0.1",
+
+
+ "@serialport/parser-delimiter": "11.0.1",
+
+
+ "@serialport/parser-inter-byte-timeout": "11.0.1",
+
+
+ "@serialport/parser-packet-length": "11.0.1",
+
+
+ "@serialport/parser-readline": "11.0.1",
+
+
+ "@serialport/parser-ready": "11.0.1",
+
+
+ "@serialport/parser-regex": "11.0.1",
+
+
+ "@serialport/parser-slip-encoder": "11.0.1",
+
+
+ "@serialport/parser-spacepacket": "11.0.1",
+
+
+ "@serialport/stream": "11.0.1",
+
+
+ "debug": "4.3.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/moment": {
+
+
+ "version": "2.29.4",
+
+
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+
+
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
+
+
+ "engines": {
+
+
+ "node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ms": {
+
+
+ "version": "2.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+
+
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+
+
+ },
+
+
+ "node_modules/multimatch": {
+
+
+ "version": "5.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
+
+
+ "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@types/minimatch": "^3.0.3",
+
+
+ "array-differ": "^3.0.0",
+
+
+ "array-union": "^2.1.0",
+
+
+ "arrify": "^2.0.1",
+
+
+ "minimatch": "^3.0.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/multimatch/node_modules/@types/minimatch": {
+
+
+ "version": "3.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
+
+
+ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/mute-stream": {
+
+
+ "version": "0.0.7",
+
+
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+
+
+ "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/mz": {
+
+
+ "version": "2.7.0",
+
+
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+
+
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+
+
+ "dependencies": {
+
+
+ "any-promise": "^1.0.0",
+
+
+ "object-assign": "^4.0.1",
+
+
+ "thenify-all": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/napi-build-utils": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+
+
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/natural-compare": {
+
+
+ "version": "1.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+
+
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/negotiator": {
+
+
+ "version": "0.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+
+
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/nice-try": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+
+
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/node-abi": {
+
+
+ "version": "3.50.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.50.0.tgz",
+
+
+ "integrity": "sha512-2Gxu7Eq7vnBIRfYSmqPruEllMM14FjOQFJSoqdGWthVn+tmwEXzmdPpya6cvvwf0uZA3F5N1fMFr9mijZBplFA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "semver": "^7.3.5"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/node-addon-api": {
+
+
+ "version": "1.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz",
+
+
+ "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/node-api-version": {
+
+
+ "version": "0.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.1.4.tgz",
+
+
+ "integrity": "sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "semver": "^7.3.5"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/node-gyp": {
+
+
+ "version": "9.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz",
+
+
+ "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "env-paths": "^2.2.0",
+
+
+ "exponential-backoff": "^3.1.1",
+
+
+ "glob": "^7.1.4",
+
+
+ "graceful-fs": "^4.2.6",
+
+
+ "make-fetch-happen": "^11.0.3",
+
+
+ "nopt": "^6.0.0",
+
+
+ "npmlog": "^6.0.0",
+
+
+ "rimraf": "^3.0.2",
+
+
+ "semver": "^7.3.5",
+
+
+ "tar": "^6.1.2",
+
+
+ "which": "^2.0.2"
+
+
+ },
+
+
+ "bin": {
+
+
+ "node-gyp": "bin/node-gyp.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^12.13 || ^14.13 || >=16"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/node-gyp-build": {
+
+
+ "version": "4.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
+
+
+ "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
+
+
+ "bin": {
+
+
+ "node-gyp-build": "bin.js",
+
+
+ "node-gyp-build-optional": "optional.js",
+
+
+ "node-gyp-build-test": "build-test.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/node-gyp/node_modules/rimraf": {
+
+
+ "version": "3.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+
+
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "glob": "^7.1.3"
+
+
+ },
+
+
+ "bin": {
+
+
+ "rimraf": "bin.js"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/nodemon": {
+
+
+ "version": "2.0.22",
+
+
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz",
+
+
+ "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "chokidar": "^3.5.2",
+
+
+ "debug": "^3.2.7",
+
+
+ "ignore-by-default": "^1.0.1",
+
+
+ "minimatch": "^3.1.2",
+
+
+ "pstree.remy": "^1.1.8",
+
+
+ "semver": "^5.7.1",
+
+
+ "simple-update-notifier": "^1.0.7",
+
+
+ "supports-color": "^5.5.0",
+
+
+ "touch": "^3.1.0",
+
+
+ "undefsafe": "^2.0.5"
+
+
+ },
+
+
+ "bin": {
+
+
+ "nodemon": "bin/nodemon.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.10.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "type": "opencollective",
+
+
+ "url": "https://opencollective.com/nodemon"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/nodemon/node_modules/debug": {
+
+
+ "version": "3.2.7",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+
+
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ms": "^2.1.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/nodemon/node_modules/has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/nodemon/node_modules/semver": {
+
+
+ "version": "5.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+
+
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "semver": "bin/semver"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/nodemon/node_modules/supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/nopt": {
+
+
+ "version": "6.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz",
+
+
+ "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "abbrev": "^1.0.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "nopt": "bin/nopt.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/normalize-path": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+
+
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/normalize-url": {
+
+
+ "version": "6.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+
+
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/npm-conf": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
+
+
+ "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "config-chain": "^1.1.11",
+
+
+ "pify": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/npm-run-path": {
+
+
+ "version": "4.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+
+
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+
+
+ "dependencies": {
+
+
+ "path-key": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/npmlog": {
+
+
+ "version": "6.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
+
+
+ "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "are-we-there-yet": "^3.0.0",
+
+
+ "console-control-strings": "^1.1.0",
+
+
+ "gauge": "^4.0.3",
+
+
+ "set-blocking": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/object-assign": {
+
+
+ "version": "4.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+
+
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/object-inspect": {
+
+
+ "version": "1.12.3",
+
+
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+
+
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/object-is": {
+
+
+ "version": "1.1.5",
+
+
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
+
+
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "call-bind": "^1.0.2",
+
+
+ "define-properties": "^1.1.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/object-keys": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+
+
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/on-finished": {
+
+
+ "version": "2.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+
+
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+
+
+ "dependencies": {
+
+
+ "ee-first": "1.1.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/once": {
+
+
+ "version": "1.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+
+
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+
+
+ "dependencies": {
+
+
+ "wrappy": "1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/onetime": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+
+
+ "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "mimic-fn": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/only": {
+
+
+ "version": "0.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz",
+
+
+ "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ=="
+
+
+ },
+
+
+ "node_modules/opencollective-postinstall": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+
+
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "opencollective-postinstall": "index.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/optionator": {
+
+
+ "version": "0.8.3",
+
+
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+
+
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "deep-is": "~0.1.3",
+
+
+ "fast-levenshtein": "~2.0.6",
+
+
+ "levn": "~0.3.0",
+
+
+ "prelude-ls": "~1.1.2",
+
+
+ "type-check": "~0.3.2",
+
+
+ "word-wrap": "~1.2.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.8.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ora": {
+
+
+ "version": "5.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+
+
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "bl": "^4.1.0",
+
+
+ "chalk": "^4.1.0",
+
+
+ "cli-cursor": "^3.1.0",
+
+
+ "cli-spinners": "^2.5.0",
+
+
+ "is-interactive": "^1.0.0",
+
+
+ "is-unicode-supported": "^0.1.0",
+
+
+ "log-symbols": "^4.1.0",
+
+
+ "strip-ansi": "^6.0.0",
+
+
+ "wcwidth": "^1.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ora/node_modules/ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ora/node_modules/cli-cursor": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+
+
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "restore-cursor": "^3.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ora/node_modules/mimic-fn": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+
+
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ora/node_modules/onetime": {
+
+
+ "version": "5.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+
+
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "mimic-fn": "^2.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ora/node_modules/restore-cursor": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+
+
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "onetime": "^5.1.0",
+
+
+ "signal-exit": "^3.0.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ora/node_modules/strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/os-name": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz",
+
+
+ "integrity": "sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==",
+
+
+ "dependencies": {
+
+
+ "osx-release": "^1.0.0",
+
+
+ "win-release": "^1.0.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "os-name": "cli.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/os-tmpdir": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+
+
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/osx-release": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz",
+
+
+ "integrity": "sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==",
+
+
+ "dependencies": {
+
+
+ "minimist": "^1.1.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "osx-release": "cli.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/p-cancelable": {
+
+
+ "version": "2.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
+
+
+ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/p-map": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+
+
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "aggregate-error": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/parent-module": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+
+
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "callsites": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/parseurl": {
+
+
+ "version": "1.3.3",
+
+
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+
+
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/path-is-absolute": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+
+
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/path-is-inside": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+
+
+ "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/path-key": {
+
+
+ "version": "3.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+
+
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/path-scurry": {
+
+
+ "version": "1.10.1",
+
+
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
+
+
+ "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "lru-cache": "^9.1.1 || ^10.0.0",
+
+
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=16 || 14 >=14.17"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/path-scurry/node_modules/lru-cache": {
+
+
+ "version": "10.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
+
+
+ "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": "14 || >=16.14"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/path-type": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+
+
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/pause-stream": {
+
+
+ "version": "0.0.11",
+
+
+ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+
+
+ "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
+
+
+ "dependencies": {
+
+
+ "through": "~2.3"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/pend": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+
+
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/picomatch": {
+
+
+ "version": "2.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+
+
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+
+
+ "engines": {
+
+
+ "node": ">=8.6"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/jonschlinkert"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/pify": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+
+
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/plist": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
+
+
+ "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "@xmldom/xmldom": "^0.8.8",
+
+
+ "base64-js": "^1.5.1",
+
+
+ "xmlbuilder": "^15.1.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/pngjs": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz",
+
+
+ "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=14.19.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/prebuild-install": {
+
+
+ "version": "7.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
+
+
+ "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "detect-libc": "^2.0.0",
+
+
+ "expand-template": "^2.0.3",
+
+
+ "github-from-package": "0.0.0",
+
+
+ "minimist": "^1.2.3",
+
+
+ "mkdirp-classic": "^0.5.3",
+
+
+ "napi-build-utils": "^1.0.1",
+
+
+ "node-abi": "^3.3.0",
+
+
+ "pump": "^3.0.0",
+
+
+ "rc": "^1.2.7",
+
+
+ "simple-get": "^4.0.0",
+
+
+ "tar-fs": "^2.0.0",
+
+
+ "tunnel-agent": "^0.6.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "prebuild-install": "bin.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/prebuild-install/node_modules/chownr": {
+
+
+ "version": "1.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+
+
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/prebuild-install/node_modules/tar-fs": {
+
+
+ "version": "2.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+
+
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "chownr": "^1.1.1",
+
+
+ "mkdirp-classic": "^0.5.2",
+
+
+ "pump": "^3.0.0",
+
+
+ "tar-stream": "^2.1.4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/prebuild-install/node_modules/tar-stream": {
+
+
+ "version": "2.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+
+
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "bl": "^4.0.3",
+
+
+ "end-of-stream": "^1.4.1",
+
+
+ "fs-constants": "^1.0.0",
+
+
+ "inherits": "^2.0.3",
+
+
+ "readable-stream": "^3.1.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/prelude-ls": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+
+
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 0.8.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/prepend-http": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+
+
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/prettier": {
+
+
+ "version": "3.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
+
+
+ "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
+
+
+ "dev": true,
+
+
+ "peer": true,
+
+
+ "bin": {
+
+
+ "prettier": "bin/prettier.cjs"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=14"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/prettier-linter-helpers": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+
+
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "fast-diff": "^1.1.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/process": {
+
+
+ "version": "0.11.10",
+
+
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+
+
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 0.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/progress": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+
+
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/promise-retry": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+
+
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "err-code": "^2.0.2",
+
+
+ "retry": "^0.12.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/proto-list": {
+
+
+ "version": "1.2.4",
+
+
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+
+
+ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/pstree.remy": {
+
+
+ "version": "1.1.8",
+
+
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
+
+
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/pump": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+
+
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+
+
+ "dependencies": {
+
+
+ "end-of-stream": "^1.1.0",
+
+
+ "once": "^1.3.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/punycode": {
+
+
+ "version": "2.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+
+
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/qs": {
+
+
+ "version": "6.11.2",
+
+
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+
+
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+
+
+ "dependencies": {
+
+
+ "side-channel": "^1.0.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.6"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/queue-microtask": {
+
+
+ "version": "1.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+
+
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "github",
+
+
+ "url": "https://github.com/sponsors/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "patreon",
+
+
+ "url": "https://www.patreon.com/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "consulting",
+
+
+ "url": "https://feross.org/support"
+
+
+ }
+
+
+ ]
+
+
+ },
+
+
+ "node_modules/queue-tick": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+
+
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/quick-lru": {
+
+
+ "version": "5.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+
+
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/randombytes": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+
+
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+
+
+ "dependencies": {
+
+
+ "safe-buffer": "^5.1.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/raw-body": {
+
+
+ "version": "2.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+
+
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+
+
+ "dependencies": {
+
+
+ "bytes": "3.1.2",
+
+
+ "http-errors": "2.0.0",
+
+
+ "iconv-lite": "0.4.24",
+
+
+ "unpipe": "1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/raw-body/node_modules/http-errors": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+
+
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+
+
+ "dependencies": {
+
+
+ "depd": "2.0.0",
+
+
+ "inherits": "2.0.4",
+
+
+ "setprototypeof": "1.2.0",
+
+
+ "statuses": "2.0.1",
+
+
+ "toidentifier": "1.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/raw-body/node_modules/statuses": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+
+
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/rc": {
+
+
+ "version": "1.2.8",
+
+
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+
+
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "deep-extend": "^0.6.0",
+
+
+ "ini": "~1.3.0",
+
+
+ "minimist": "^1.2.0",
+
+
+ "strip-json-comments": "~2.0.1"
+
+
+ },
+
+
+ "bin": {
+
+
+ "rc": "cli.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/read-config-file": {
+
+
+ "version": "6.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz",
+
+
+ "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "dotenv": "^9.0.2",
+
+
+ "dotenv-expand": "^5.1.0",
+
+
+ "js-yaml": "^4.1.0",
+
+
+ "json5": "^2.2.0",
+
+
+ "lazy-val": "^1.0.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/readable-stream": {
+
+
+ "version": "3.6.2",
+
+
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+
+
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "inherits": "^2.0.3",
+
+
+ "string_decoder": "^1.1.1",
+
+
+ "util-deprecate": "^1.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/readdirp": {
+
+
+ "version": "3.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+
+
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "picomatch": "^2.2.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/reflect-metadata": {
+
+
+ "version": "0.1.13",
+
+
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
+
+
+ "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/regexpp": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+
+
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6.5.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/require-directory": {
+
+
+ "version": "2.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+
+
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/resolve-alpn": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+
+
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/resolve-from": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+
+
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/resolve-path": {
+
+
+ "version": "1.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz",
+
+
+ "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==",
+
+
+ "dependencies": {
+
+
+ "http-errors": "~1.6.2",
+
+
+ "path-is-absolute": "1.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/resolve-path/node_modules/depd": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+
+
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/resolve-path/node_modules/http-errors": {
+
+
+ "version": "1.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+
+
+ "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+
+
+ "dependencies": {
+
+
+ "depd": "~1.1.2",
+
+
+ "inherits": "2.0.3",
+
+
+ "setprototypeof": "1.1.0",
+
+
+ "statuses": ">= 1.4.0 < 2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/resolve-path/node_modules/inherits": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+
+
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+
+
+ },
+
+
+ "node_modules/resolve-path/node_modules/setprototypeof": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+
+
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+
+
+ },
+
+
+ "node_modules/responselike": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+
+
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "lowercase-keys": "^2.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/restore-cursor": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+
+
+ "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "onetime": "^2.0.0",
+
+
+ "signal-exit": "^3.0.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/retry": {
+
+
+ "version": "0.12.0",
+
+
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+
+
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/reusify": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+
+
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+
+
+ "engines": {
+
+
+ "iojs": ">=1.0.0",
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/rimraf": {
+
+
+ "version": "2.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+
+
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "glob": "^7.1.3"
+
+
+ },
+
+
+ "bin": {
+
+
+ "rimraf": "bin.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/roarr": {
+
+
+ "version": "2.15.4",
+
+
+ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
+
+
+ "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "boolean": "^3.0.1",
+
+
+ "detect-node": "^2.0.4",
+
+
+ "globalthis": "^1.0.1",
+
+
+ "json-stringify-safe": "^5.0.1",
+
+
+ "semver-compare": "^1.0.0",
+
+
+ "sprintf-js": "^1.1.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/run-async": {
+
+
+ "version": "2.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+
+
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.12.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/run-parallel": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+
+
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "github",
+
+
+ "url": "https://github.com/sponsors/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "patreon",
+
+
+ "url": "https://www.patreon.com/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "consulting",
+
+
+ "url": "https://feross.org/support"
+
+
+ }
+
+
+ ],
+
+
+ "dependencies": {
+
+
+ "queue-microtask": "^1.2.2"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/rxjs": {
+
+
+ "version": "6.6.7",
+
+
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+
+
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+
+
+ "devOptional": true,
+
+
+ "dependencies": {
+
+
+ "tslib": "^1.9.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "npm": ">=2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/rxjs/node_modules/tslib": {
+
+
+ "version": "1.14.1",
+
+
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+
+
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+
+
+ "devOptional": true
+
+
+ },
+
+
+ "node_modules/safe-buffer": {
+
+
+ "version": "5.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+
+
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "github",
+
+
+ "url": "https://github.com/sponsors/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "patreon",
+
+
+ "url": "https://www.patreon.com/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "consulting",
+
+
+ "url": "https://feross.org/support"
+
+
+ }
+
+
+ ]
+
+
+ },
+
+
+ "node_modules/safer-buffer": {
+
+
+ "version": "2.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+
+
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+
+
+ },
+
+
+ "node_modules/sanitize-filename": {
+
+
+ "version": "1.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
+
+
+ "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "truncate-utf8-bytes": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/sax": {
+
+
+ "version": "1.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
+
+
+ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
+
+
+ },
+
+
+ "node_modules/semver": {
+
+
+ "version": "7.5.4",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+
+
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+
+
+ "dependencies": {
+
+
+ "lru-cache": "^6.0.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "semver": "bin/semver.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/semver-compare": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+
+
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/serialize-error": {
+
+
+ "version": "7.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
+
+
+ "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "type-fest": "^0.13.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/serialize-javascript": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
+
+
+ "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
+
+
+ "dependencies": {
+
+
+ "randombytes": "^2.1.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/serialport": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/serialport/-/serialport-12.0.0.tgz",
+
+
+ "integrity": "sha512-AmH3D9hHPFmnF/oq/rvigfiAouAKyK/TjnrkwZRYSFZxNggJxwvbAbfYrLeuvq7ktUdhuHdVdSjj852Z55R+uA==",
+
+
+ "dependencies": {
+
+
+ "@serialport/binding-mock": "10.2.2",
+
+
+ "@serialport/bindings-cpp": "12.0.1",
+
+
+ "@serialport/parser-byte-length": "12.0.0",
+
+
+ "@serialport/parser-cctalk": "12.0.0",
+
+
+ "@serialport/parser-delimiter": "12.0.0",
+
+
+ "@serialport/parser-inter-byte-timeout": "12.0.0",
+
+
+ "@serialport/parser-packet-length": "12.0.0",
+
+
+ "@serialport/parser-readline": "12.0.0",
+
+
+ "@serialport/parser-ready": "12.0.0",
+
+
+ "@serialport/parser-regex": "12.0.0",
+
+
+ "@serialport/parser-slip-encoder": "12.0.0",
+
+
+ "@serialport/parser-spacepacket": "12.0.0",
+
+
+ "@serialport/stream": "12.0.0",
+
+
+ "debug": "4.3.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=16.0.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/serialport/donate"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/set-blocking": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+
+
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/setprototypeof": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+
+
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+
+
+ },
+
+
+ "node_modules/sharp": {
+
+
+ "version": "0.32.6",
+
+
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
+
+
+ "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
+
+
+ "dev": true,
+
+
+ "hasInstallScript": true,
+
+
+ "dependencies": {
+
+
+ "color": "^4.2.3",
+
+
+ "detect-libc": "^2.0.2",
+
+
+ "node-addon-api": "^6.1.0",
+
+
+ "prebuild-install": "^7.1.1",
+
+
+ "semver": "^7.5.4",
+
+
+ "simple-get": "^4.0.1",
+
+
+ "tar-fs": "^3.0.4",
+
+
+ "tunnel-agent": "^0.6.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=14.15.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://opencollective.com/libvips"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/sharp/node_modules/node-addon-api": {
+
+
+ "version": "6.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+
+
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/shebang-command": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+
+
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+
+
+ "dependencies": {
+
+
+ "shebang-regex": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/shebang-regex": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+
+
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/side-channel": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+
+
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+
+
+ "dependencies": {
+
+
+ "call-bind": "^1.0.0",
+
+
+ "get-intrinsic": "^1.0.2",
+
+
+ "object-inspect": "^1.9.0"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/signal-exit": {
+
+
+ "version": "3.0.7",
+
+
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+
+
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+
+
+ },
+
+
+ "node_modules/simple-concat": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+
+
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+
+
+ "dev": true,
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "github",
+
+
+ "url": "https://github.com/sponsors/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "patreon",
+
+
+ "url": "https://www.patreon.com/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "consulting",
+
+
+ "url": "https://feross.org/support"
+
+
+ }
+
+
+ ]
+
+
+ },
+
+
+ "node_modules/simple-get": {
+
+
+ "version": "4.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+
+
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+
+
+ "dev": true,
+
+
+ "funding": [
+
+
+ {
+
+
+ "type": "github",
+
+
+ "url": "https://github.com/sponsors/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "patreon",
+
+
+ "url": "https://www.patreon.com/feross"
+
+
+ },
+
+
+ {
+
+
+ "type": "consulting",
+
+
+ "url": "https://feross.org/support"
+
+
+ }
+
+
+ ],
+
+
+ "dependencies": {
+
+
+ "decompress-response": "^6.0.0",
+
+
+ "once": "^1.3.1",
+
+
+ "simple-concat": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/simple-swizzle": {
+
+
+ "version": "0.2.2",
+
+
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+
+
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "is-arrayish": "^0.3.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/simple-update-notifier": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz",
+
+
+ "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "semver": "~7.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/simple-update-notifier/node_modules/semver": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+
+
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "semver": "bin/semver.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/slash": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+
+
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/slice-ansi": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+
+
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^4.0.0",
+
+
+ "astral-regex": "^2.0.0",
+
+
+ "is-fullwidth-code-point": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/smart-buffer": {
+
+
+ "version": "4.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+
+
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 6.0.0",
+
+
+ "npm": ">= 3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/socket.io": {
+
+
+ "version": "4.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz",
+
+
+ "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==",
+
+
+ "dependencies": {
+
+
+ "accepts": "~1.3.4",
+
+
+ "base64id": "~2.0.0",
+
+
+ "cors": "~2.8.5",
+
+
+ "debug": "~4.3.2",
+
+
+ "engine.io": "~6.5.2",
+
+
+ "socket.io-adapter": "~2.5.2",
+
+
+ "socket.io-parser": "~4.2.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10.2.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/socket.io-adapter": {
+
+
+ "version": "2.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
+
+
+ "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
+
+
+ "dependencies": {
+
+
+ "ws": "~8.11.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/socket.io-client": {
+
+
+ "version": "4.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz",
+
+
+ "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==",
+
+
+ "dependencies": {
+
+
+ "@socket.io/component-emitter": "~3.1.0",
+
+
+ "debug": "~4.3.2",
+
+
+ "engine.io-client": "~6.5.2",
+
+
+ "socket.io-parser": "~4.2.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/socket.io-parser": {
+
+
+ "version": "4.2.4",
+
+
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+
+
+ "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
+
+
+ "dependencies": {
+
+
+ "@socket.io/component-emitter": "~3.1.0",
+
+
+ "debug": "~4.3.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/socks": {
+
+
+ "version": "2.7.1",
+
+
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+
+
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ip": "^2.0.0",
+
+
+ "smart-buffer": "^4.2.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 10.13.0",
+
+
+ "npm": ">= 3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/socks-proxy-agent": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz",
+
+
+ "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "agent-base": "^6.0.2",
+
+
+ "debug": "^4.3.3",
+
+
+ "socks": "^2.6.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/source-map": {
+
+
+ "version": "0.6.1",
+
+
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+
+
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/source-map-support": {
+
+
+ "version": "0.5.21",
+
+
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+
+
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "buffer-from": "^1.0.0",
+
+
+ "source-map": "^0.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/sprintf-js": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+
+
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/ssri": {
+
+
+ "version": "10.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz",
+
+
+ "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minipass": "^7.0.3"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ssri/node_modules/minipass": {
+
+
+ "version": "7.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+
+
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=16 || 14 >=14.17"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/stat-mode": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz",
+
+
+ "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/statuses": {
+
+
+ "version": "1.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+
+
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/streamx": {
+
+
+ "version": "2.15.5",
+
+
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz",
+
+
+ "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "fast-fifo": "^1.1.0",
+
+
+ "queue-tick": "^1.0.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/string_decoder": {
+
+
+ "version": "1.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+
+
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "safe-buffer": "~5.2.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/string-template": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
+
+
+ "integrity": "sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/string-width": {
+
+
+ "version": "4.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+
+
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "emoji-regex": "^8.0.0",
+
+
+ "is-fullwidth-code-point": "^3.0.0",
+
+
+ "strip-ansi": "^6.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/string-width-cjs": {
+
+
+ "name": "string-width",
+
+
+ "version": "4.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+
+
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "emoji-regex": "^8.0.0",
+
+
+ "is-fullwidth-code-point": "^3.0.0",
+
+
+ "strip-ansi": "^6.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/string-width/node_modules/ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/string-width/node_modules/strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/stringz": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/stringz/-/stringz-2.1.0.tgz",
+
+
+ "integrity": "sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "char-regex": "^1.0.2"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/strip-ansi": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+
+
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/strip-ansi-cjs": {
+
+
+ "name": "strip-ansi",
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/strip-final-newline": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+
+
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/strip-json-comments": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+
+
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/sumchecker": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz",
+
+
+ "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "debug": "^4.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/supports-color": {
+
+
+ "version": "7.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+
+
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+
+
+ "dependencies": {
+
+
+ "has-flag": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/table": {
+
+
+ "version": "5.4.6",
+
+
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+
+
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ajv": "^6.10.2",
+
+
+ "lodash": "^4.17.14",
+
+
+ "slice-ansi": "^2.1.0",
+
+
+ "string-width": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/table/node_modules/ansi-regex": {
+
+
+ "version": "4.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+
+
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/table/node_modules/ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/table/node_modules/astral-regex": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+
+
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/table/node_modules/color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/table/node_modules/color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/table/node_modules/emoji-regex": {
+
+
+ "version": "7.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+
+
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/table/node_modules/is-fullwidth-code-point": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+
+
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/table/node_modules/slice-ansi": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+
+
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^3.2.0",
+
+
+ "astral-regex": "^1.0.0",
+
+
+ "is-fullwidth-code-point": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/table/node_modules/string-width": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+
+
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "emoji-regex": "^7.0.1",
+
+
+ "is-fullwidth-code-point": "^2.0.0",
+
+
+ "strip-ansi": "^5.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/table/node_modules/strip-ansi": {
+
+
+ "version": "5.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+
+
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^4.1.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tar": {
+
+
+ "version": "6.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+
+
+ "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "chownr": "^2.0.0",
+
+
+ "fs-minipass": "^2.0.0",
+
+
+ "minipass": "^5.0.0",
+
+
+ "minizlib": "^2.1.1",
+
+
+ "mkdirp": "^1.0.3",
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tar-fs": {
+
+
+ "version": "3.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
+
+
+ "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "mkdirp-classic": "^0.5.2",
+
+
+ "pump": "^3.0.0",
+
+
+ "tar-stream": "^3.1.5"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tar-stream": {
+
+
+ "version": "3.1.6",
+
+
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
+
+
+ "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "b4a": "^1.6.4",
+
+
+ "fast-fifo": "^1.2.0",
+
+
+ "streamx": "^2.15.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tar/node_modules/fs-minipass": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+
+
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minipass": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tar/node_modules/mkdirp": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+
+
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+
+
+ "dev": true,
+
+
+ "bin": {
+
+
+ "mkdirp": "bin/cmd.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/temp-file": {
+
+
+ "version": "3.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz",
+
+
+ "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "async-exit-hook": "^2.0.1",
+
+
+ "fs-extra": "^10.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/text-table": {
+
+
+ "version": "0.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+
+
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/thenify": {
+
+
+ "version": "3.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+
+
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+
+
+ "dependencies": {
+
+
+ "any-promise": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/thenify-all": {
+
+
+ "version": "1.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+
+
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+
+
+ "dependencies": {
+
+
+ "thenify": ">= 3.1.0 < 4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/through": {
+
+
+ "version": "2.3.8",
+
+
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+
+
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+
+
+ },
+
+
+ "node_modules/tmp": {
+
+
+ "version": "0.0.33",
+
+
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+
+
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "os-tmpdir": "~1.0.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tmp-promise": {
+
+
+ "version": "3.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz",
+
+
+ "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "tmp": "^0.2.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tmp-promise/node_modules/rimraf": {
+
+
+ "version": "3.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+
+
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "glob": "^7.1.3"
+
+
+ },
+
+
+ "bin": {
+
+
+ "rimraf": "bin.js"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tmp-promise/node_modules/tmp": {
+
+
+ "version": "0.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
+
+
+ "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "rimraf": "^3.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.17.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/to-readable-stream": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+
+
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/to-regex-range": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+
+
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+
+
+ "dependencies": {
+
+
+ "is-number": "^7.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/toidentifier": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+
+
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+
+
+ "engines": {
+
+
+ "node": ">=0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/touch": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
+
+
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "nopt": "~1.0.10"
+
+
+ },
+
+
+ "bin": {
+
+
+ "nodetouch": "bin/nodetouch.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/touch/node_modules/nopt": {
+
+
+ "version": "1.0.10",
+
+
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+
+
+ "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "abbrev": "1"
+
+
+ },
+
+
+ "bin": {
+
+
+ "nopt": "bin/nopt.js"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/truncate-utf8-bytes": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
+
+
+ "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "utf8-byte-length": "^1.0.1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tslib": {
+
+
+ "version": "2.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+
+
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/tsscmp": {
+
+
+ "version": "1.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
+
+
+ "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==",
+
+
+ "engines": {
+
+
+ "node": ">=0.6.x"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tunnel": {
+
+
+ "version": "0.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
+
+
+ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tunnel-agent": {
+
+
+ "version": "0.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+
+
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "safe-buffer": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/type-check": {
+
+
+ "version": "0.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+
+
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "prelude-ls": "~1.1.2"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.8.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/type-fest": {
+
+
+ "version": "0.13.1",
+
+
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+
+
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/type-is": {
+
+
+ "version": "1.6.18",
+
+
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+
+
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+
+
+ "dependencies": {
+
+
+ "media-typer": "0.3.0",
+
+
+ "mime-types": "~2.1.24"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.6"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/typed-emitter": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz",
+
+
+ "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==",
+
+
+ "optionalDependencies": {
+
+
+ "rxjs": "*"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/undefsafe": {
+
+
+ "version": "2.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
+
+
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/unescape": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz",
+
+
+ "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==",
+
+
+ "dependencies": {
+
+
+ "extend-shallow": "^2.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/unique-filename": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz",
+
+
+ "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "unique-slug": "^4.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/unique-slug": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz",
+
+
+ "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "imurmurhash": "^0.1.4"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/universalify": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+
+
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+
+
+ "engines": {
+
+
+ "node": ">= 10.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/unpipe": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+
+
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/uri-js": {
+
+
+ "version": "4.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+
+
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "punycode": "^2.1.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/url-parse-lax": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+
+
+ "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "prepend-http": "^2.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/urllib": {
+
+
+ "version": "2.41.0",
+
+
+ "resolved": "https://registry.npmjs.org/urllib/-/urllib-2.41.0.tgz",
+
+
+ "integrity": "sha512-pNXdxEv52L67jahLT+/7QE+Fup1y2Gc6EdmrAhQ6OpQIC2rl14oWwv9hvk1GXOZqEnJNwRXHABuwgPOs1CtL7g==",
+
+
+ "dependencies": {
+
+
+ "any-promise": "^1.3.0",
+
+
+ "content-type": "^1.0.2",
+
+
+ "debug": "^2.6.9",
+
+
+ "default-user-agent": "^1.0.0",
+
+
+ "digest-header": "^1.0.0",
+
+
+ "ee-first": "~1.1.1",
+
+
+ "formstream": "^1.1.0",
+
+
+ "humanize-ms": "^1.2.0",
+
+
+ "iconv-lite": "^0.4.15",
+
+
+ "ip": "^1.1.5",
+
+
+ "pump": "^3.0.0",
+
+
+ "qs": "^6.4.0",
+
+
+ "statuses": "^1.3.1",
+
+
+ "utility": "^1.16.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.10.0"
+
+
+ },
+
+
+ "peerDependencies": {
+
+
+ "proxy-agent": "^5.0.0"
+
+
+ },
+
+
+ "peerDependenciesMeta": {
+
+
+ "proxy-agent": {
+
+
+ "optional": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "node_modules/urllib/node_modules/debug": {
+
+
+ "version": "2.6.9",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+
+
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+
+
+ "dependencies": {
+
+
+ "ms": "2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/urllib/node_modules/ip": {
+
+
+ "version": "1.1.8",
+
+
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
+
+
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
+
+
+ },
+
+
+ "node_modules/urllib/node_modules/ms": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+
+
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+
+
+ },
+
+
+ "node_modules/utf8-byte-length": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
+
+
+ "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/util": {
+
+
+ "version": "0.12.5",
+
+
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+
+
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "inherits": "^2.0.3",
+
+
+ "is-arguments": "^1.0.4",
+
+
+ "is-generator-function": "^1.0.7",
+
+
+ "is-typed-array": "^1.1.3",
+
+
+ "which-typed-array": "^1.1.2"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/util-deprecate": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+
+
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node_modules/utility": {
+
+
+ "version": "1.18.0",
+
+
+ "resolved": "https://registry.npmjs.org/utility/-/utility-1.18.0.tgz",
+
+
+ "integrity": "sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==",
+
+
+ "dependencies": {
+
+
+ "copy-to": "^2.0.1",
+
+
+ "escape-html": "^1.0.3",
+
+
+ "mkdirp": "^0.5.1",
+
+
+ "mz": "^2.7.0",
+
+
+ "unescape": "^1.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.12.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/utility/node_modules/mkdirp": {
+
+
+ "version": "0.5.6",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+
+
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+
+
+ "dependencies": {
+
+
+ "minimist": "^1.2.6"
+
+
+ },
+
+
+ "bin": {
+
+
+ "mkdirp": "bin/cmd.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/validator": {
+
+
+ "version": "13.11.0",
+
+
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz",
+
+
+ "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">= 0.10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/vary": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+
+
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+
+
+ "engines": {
+
+
+ "node": ">= 0.8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/verror": {
+
+
+ "version": "1.10.1",
+
+
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz",
+
+
+ "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "dependencies": {
+
+
+ "assert-plus": "^1.0.0",
+
+
+ "core-util-is": "1.0.2",
+
+
+ "extsprintf": "^1.2.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.6.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/verror/node_modules/core-util-is": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+
+
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node_modules/wcwidth": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+
+
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "defaults": "^1.0.3"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/which": {
+
+
+ "version": "2.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+
+
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+
+
+ "dependencies": {
+
+
+ "isexe": "^2.0.0"
+
+
+ },
+
+
+ "bin": {
+
+
+ "node-which": "bin/node-which"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/which-typed-array": {
+
+
+ "version": "1.1.11",
+
+
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
+
+
+ "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "available-typed-arrays": "^1.0.5",
+
+
+ "call-bind": "^1.0.2",
+
+
+ "for-each": "^0.3.3",
+
+
+ "gopd": "^1.0.1",
+
+
+ "has-tostringtag": "^1.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">= 0.4"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wide-align": {
+
+
+ "version": "1.1.5",
+
+
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+
+
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/win-release": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz",
+
+
+ "integrity": "sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==",
+
+
+ "dependencies": {
+
+
+ "semver": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/win-release/node_modules/semver": {
+
+
+ "version": "5.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+
+
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+
+
+ "bin": {
+
+
+ "semver": "bin/semver"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/word-wrap": {
+
+
+ "version": "1.2.5",
+
+
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+
+
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=0.10.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wrap-ansi": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+
+
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^4.0.0",
+
+
+ "string-width": "^4.1.0",
+
+
+ "strip-ansi": "^6.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wrap-ansi-cjs": {
+
+
+ "name": "wrap-ansi",
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+
+
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-styles": "^4.0.0",
+
+
+ "string-width": "^4.1.0",
+
+
+ "strip-ansi": "^6.0.0"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ },
+
+
+ "funding": {
+
+
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=8"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wrappy": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+
+
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+
+
+ },
+
+
+ "node_modules/write": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+
+
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "mkdirp": "^0.5.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=4"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/write/node_modules/mkdirp": {
+
+
+ "version": "0.5.6",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+
+
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "minimist": "^1.2.6"
+
+
+ },
+
+
+ "bin": {
+
+
+ "mkdirp": "bin/cmd.js"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ws": {
+
+
+ "version": "8.11.0",
+
+
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+
+
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
+
+
+ "engines": {
+
+
+ "node": ">=10.0.0"
+
+
+ },
+
+
+ "peerDependencies": {
+
+
+ "bufferutil": "^4.0.1",
+
+
+ "utf-8-validate": "^5.0.2"
+
+
+ },
+
+
+ "peerDependenciesMeta": {
+
+
+ "bufferutil": {
+
+
+ "optional": true
+
+
+ },
+
+
+ "utf-8-validate": {
+
+
+ "optional": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "node_modules/xmlbuilder": {
+
+
+ "version": "15.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+
+
+ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=8.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/xmlhttprequest-ssl": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
+
+
+ "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==",
+
+
+ "engines": {
+
+
+ "node": ">=0.4.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/y18n": {
+
+
+ "version": "5.0.8",
+
+
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+
+
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=10"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/yallist": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+
+
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+
+
+ },
+
+
+ "node_modules/yargs": {
+
+
+ "version": "17.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+
+
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "cliui": "^8.0.1",
+
+
+ "escalade": "^3.1.1",
+
+
+ "get-caller-file": "^2.0.5",
+
+
+ "require-directory": "^2.1.1",
+
+
+ "string-width": "^4.2.3",
+
+
+ "y18n": "^5.0.5",
+
+
+ "yargs-parser": "^21.1.1"
+
+
+ },
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/yargs-parser": {
+
+
+ "version": "21.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+
+
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+
+
+ "dev": true,
+
+
+ "engines": {
+
+
+ "node": ">=12"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/yauzl": {
+
+
+ "version": "2.10.0",
+
+
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+
+
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+
+
+ "dev": true,
+
+
+ "dependencies": {
+
+
+ "buffer-crc32": "~0.2.3",
+
+
+ "fd-slicer": "~1.1.0"
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ylru": {
+
+
+ "version": "1.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz",
+
+
+ "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==",
+
+
+ "engines": {
+
+
+ "node": ">= 4.0.0"
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "@babel/code-frame": {
+
+
+ "version": "7.22.13",
+
+
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+
+
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@babel/highlight": "^7.22.13",
+
+
+ "chalk": "^2.4.2"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ }
+
+
+ },
+
+
+ "chalk": {
+
+
+ "version": "2.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+
+
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-styles": "^3.2.1",
+
+
+ "escape-string-regexp": "^1.0.5",
+
+
+ "supports-color": "^5.3.0"
+
+
+ }
+
+
+ },
+
+
+ "color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "@babel/helper-validator-identifier": {
+
+
+ "version": "7.22.20",
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+
+
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "@babel/highlight": {
+
+
+ "version": "7.22.20",
+
+
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+
+
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@babel/helper-validator-identifier": "^7.22.20",
+
+
+ "chalk": "^2.4.2",
+
+
+ "js-tokens": "^4.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ }
+
+
+ },
+
+
+ "chalk": {
+
+
+ "version": "2.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+
+
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-styles": "^3.2.1",
+
+
+ "escape-string-regexp": "^1.0.5",
+
+
+ "supports-color": "^5.3.0"
+
+
+ }
+
+
+ },
+
+
+ "color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "@develar/schema-utils": {
+
+
+ "version": "2.6.5",
+
+
+ "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz",
+
+
+ "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ajv": "^6.12.0",
+
+
+ "ajv-keywords": "^3.4.1"
+
+
+ }
+
+
+ },
+
+
+ "@electron/get": {
+
+
+ "version": "1.14.1",
+
+
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz",
+
+
+ "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "debug": "^4.1.1",
+
+
+ "env-paths": "^2.2.0",
+
+
+ "fs-extra": "^8.1.0",
+
+
+ "global-agent": "^3.0.0",
+
+
+ "global-tunnel-ng": "^2.7.1",
+
+
+ "got": "^9.6.0",
+
+
+ "progress": "^2.0.3",
+
+
+ "semver": "^6.2.0",
+
+
+ "sumchecker": "^3.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "@sindresorhus/is": {
+
+
+ "version": "0.14.0",
+
+
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+
+
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "@szmarczak/http-timer": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+
+
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "defer-to-connect": "^1.0.1"
+
+
+ }
+
+
+ },
+
+
+ "cacheable-request": {
+
+
+ "version": "6.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+
+
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "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"
+
+
+ }
+
+
+ },
+
+
+ "decompress-response": {
+
+
+ "version": "3.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+
+
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "mimic-response": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "defer-to-connect": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+
+
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "fs-extra": {
+
+
+ "version": "8.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+
+
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "graceful-fs": "^4.2.0",
+
+
+ "jsonfile": "^4.0.0",
+
+
+ "universalify": "^0.1.0"
+
+
+ }
+
+
+ },
+
+
+ "got": {
+
+
+ "version": "9.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+
+
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@sindresorhus/is": "^0.14.0",
+
+
+ "@szmarczak/http-timer": "^1.1.2",
+
+
+ "cacheable-request": "^6.0.0",
+
+
+ "decompress-response": "^3.3.0",
+
+
+ "duplexer3": "^0.1.4",
+
+
+ "get-stream": "^4.1.0",
+
+
+ "lowercase-keys": "^1.0.1",
+
+
+ "mimic-response": "^1.0.1",
+
+
+ "p-cancelable": "^1.0.0",
+
+
+ "to-readable-stream": "^1.0.0",
+
+
+ "url-parse-lax": "^3.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "get-stream": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+
+
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "pump": "^3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "lowercase-keys": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+
+
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "json-buffer": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+
+
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "jsonfile": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+
+
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "graceful-fs": "^4.1.6"
+
+
+ }
+
+
+ },
+
+
+ "keyv": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+
+
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "json-buffer": "3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "normalize-url": {
+
+
+ "version": "4.5.1",
+
+
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
+
+
+ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "p-cancelable": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+
+
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "responselike": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+
+
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "lowercase-keys": "^1.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "lowercase-keys": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+
+
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "semver": {
+
+
+ "version": "6.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+
+
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "universalify": {
+
+
+ "version": "0.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+
+
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "@electron/rebuild": {
+
+
+ "version": "3.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.3.0.tgz",
+
+
+ "integrity": "sha512-S1vgpzIOS1wCJmsYjdLz97MTUV6UTLcMk/HE3w90HYtVxvW+PQdwxLbgsrECX2bysqcnmM5a0K6mXj/gwVgYtQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@malept/cross-spawn-promise": "^2.0.0",
+
+
+ "chalk": "^4.0.0",
+
+
+ "debug": "^4.1.1",
+
+
+ "detect-libc": "^2.0.1",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "got": "^11.7.0",
+
+
+ "node-abi": "^3.45.0",
+
+
+ "node-api-version": "^0.1.4",
+
+
+ "node-gyp": "^9.0.0",
+
+
+ "ora": "^5.1.0",
+
+
+ "semver": "^7.3.5",
+
+
+ "tar": "^6.0.5",
+
+
+ "yargs": "^17.0.1"
+
+
+ }
+
+
+ },
+
+
+ "@electron/universal": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz",
+
+
+ "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@malept/cross-spawn-promise": "^1.1.0",
+
+
+ "asar": "^3.1.0",
+
+
+ "debug": "^4.3.1",
+
+
+ "dir-compare": "^2.4.0",
+
+
+ "fs-extra": "^9.0.1",
+
+
+ "minimatch": "^3.0.4",
+
+
+ "plist": "^3.0.4"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "@malept/cross-spawn-promise": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz",
+
+
+ "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "cross-spawn": "^7.0.1"
+
+
+ }
+
+
+ },
+
+
+ "fs-extra": {
+
+
+ "version": "9.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+
+
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "at-least-node": "^1.0.0",
+
+
+ "graceful-fs": "^4.2.0",
+
+
+ "jsonfile": "^6.0.1",
+
+
+ "universalify": "^2.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "@isaacs/cliui": {
+
+
+ "version": "8.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+
+
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "string-width": "^5.1.2",
+
+
+ "string-width-cjs": "npm:string-width@^4.2.0",
+
+
+ "strip-ansi": "^7.0.1",
+
+
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+
+
+ "wrap-ansi": "^8.1.0",
+
+
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+
+
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "ansi-styles": {
+
+
+ "version": "6.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+
+
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "emoji-regex": {
+
+
+ "version": "9.2.2",
+
+
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+
+
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "string-width": {
+
+
+ "version": "5.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+
+
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "eastasianwidth": "^0.2.0",
+
+
+ "emoji-regex": "^9.2.2",
+
+
+ "strip-ansi": "^7.0.1"
+
+
+ }
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "7.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+
+
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^6.0.1"
+
+
+ }
+
+
+ },
+
+
+ "wrap-ansi": {
+
+
+ "version": "8.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+
+
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-styles": "^6.1.0",
+
+
+ "string-width": "^5.0.1",
+
+
+ "strip-ansi": "^7.0.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "@javascript-obfuscator/escodegen": {
+
+
+ "version": "2.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.3.0.tgz",
+
+
+ "integrity": "sha512-QVXwMIKqYMl3KwtTirYIA6gOCiJ0ZDtptXqAv/8KWLG9uQU2fZqTVy7a/A5RvcoZhbDoFfveTxuGxJ5ibzQtkw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@javascript-obfuscator/estraverse": "^5.3.0",
+
+
+ "esprima": "^4.0.1",
+
+
+ "esutils": "^2.0.2",
+
+
+ "optionator": "^0.8.1",
+
+
+ "source-map": "~0.6.1"
+
+
+ }
+
+
+ },
+
+
+ "@javascript-obfuscator/estraverse": {
+
+
+ "version": "5.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz",
+
+
+ "integrity": "sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "@lzwme/get-physical-address": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/@lzwme/get-physical-address/-/get-physical-address-1.0.5.tgz",
+
+
+ "integrity": "sha512-P7oQIWW8I1y4NCMFubcsagyrjShRTmRueU1e+J0EcBzj6jmqA+JSwypsJdXcHyD41ytDvW0BeZAUtB0EsIEytw==",
+
+
+ "requires": {}
+
+
+ },
+
+
+ "@malept/cross-spawn-promise": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz",
+
+
+ "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "cross-spawn": "^7.0.1"
+
+
+ }
+
+
+ },
+
+
+ "@malept/flatpak-bundler": {
+
+
+ "version": "0.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz",
+
+
+ "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "debug": "^4.1.1",
+
+
+ "fs-extra": "^9.0.0",
+
+
+ "lodash": "^4.17.15",
+
+
+ "tmp-promise": "^3.0.2"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "fs-extra": {
+
+
+ "version": "9.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+
+
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "at-least-node": "^1.0.0",
+
+
+ "graceful-fs": "^4.2.0",
+
+
+ "jsonfile": "^6.0.1",
+
+
+ "universalify": "^2.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "@nodelib/fs.scandir": {
+
+
+ "version": "2.1.5",
+
+
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+
+
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+
+
+ "requires": {
+
+
+ "@nodelib/fs.stat": "2.0.5",
+
+
+ "run-parallel": "^1.1.9"
+
+
+ }
+
+
+ },
+
+
+ "@nodelib/fs.stat": {
+
+
+ "version": "2.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+
+
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
+
+
+ },
+
+
+ "@nodelib/fs.walk": {
+
+
+ "version": "1.2.8",
+
+
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+
+
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+
+
+ "requires": {
+
+
+ "@nodelib/fs.scandir": "2.1.5",
+
+
+ "fastq": "^1.6.0"
+
+
+ }
+
+
+ },
+
+
+ "@npmcli/fs": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz",
+
+
+ "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "semver": "^7.3.5"
+
+
+ }
+
+
+ },
+
+
+ "@pkgjs/parseargs": {
+
+
+ "version": "0.11.0",
+
+
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+
+
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "@serialport/binding-mock": {
+
+
+ "version": "10.2.2",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-10.2.2.tgz",
+
+
+ "integrity": "sha512-HAFzGhk9OuFMpuor7aT5G1ChPgn5qSsklTFOTUX72Rl6p0xwcSVsRtG/xaGp6bxpN7fI9D/S8THLBWbBgS6ldw==",
+
+
+ "requires": {
+
+
+ "@serialport/bindings-interface": "^1.2.1",
+
+
+ "debug": "^4.3.3"
+
+
+ }
+
+
+ },
+
+
+ "@serialport/bindings-cpp": {
+
+
+ "version": "12.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/bindings-cpp/-/bindings-cpp-12.0.1.tgz",
+
+
+ "integrity": "sha512-r2XOwY2dDvbW7dKqSPIk2gzsr6M6Qpe9+/Ngs94fNaNlcTRCV02PfaoDmRgcubpNVVcLATlxSxPTIDw12dbKOg==",
+
+
+ "requires": {
+
+
+ "@serialport/bindings-interface": "1.2.2",
+
+
+ "@serialport/parser-readline": "11.0.0",
+
+
+ "debug": "4.3.4",
+
+
+ "node-addon-api": "7.0.0",
+
+
+ "node-gyp-build": "4.6.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "@serialport/parser-delimiter": {
+
+
+ "version": "11.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-11.0.0.tgz",
+
+
+ "integrity": "sha512-aZLJhlRTjSmEwllLG7S4J8s8ctRAS0cbvCpO87smLvl3e4BgzbVgF6Z6zaJd3Aji2uSiYgfedCdNc4L6W+1E2g=="
+
+
+ },
+
+
+ "@serialport/parser-readline": {
+
+
+ "version": "11.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-11.0.0.tgz",
+
+
+ "integrity": "sha512-rRAivhRkT3YO28WjmmG4FQX6L+KMb5/ikhyylRfzWPw0nSXy97+u07peS9CbHqaNvJkMhH1locp2H36aGMOEIA==",
+
+
+ "requires": {
+
+
+ "@serialport/parser-delimiter": "11.0.0"
+
+
+ }
+
+
+ },
+
+
+ "node-addon-api": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz",
+
+
+ "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA=="
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "@serialport/bindings-interface": {
+
+
+ "version": "1.2.2",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.2.tgz",
+
+
+ "integrity": "sha512-CJaUd5bLvtM9c5dmO9rPBHPXTa9R2UwpkJ0wdh9JCYcbrPWsKz+ErvR0hBLeo7NPeiFdjFO4sonRljiw4d2XiA=="
+
+
+ },
+
+
+ "@serialport/parser-byte-length": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-12.0.0.tgz",
+
+
+ "integrity": "sha512-0ei0txFAj+s6FTiCJFBJ1T2hpKkX8Md0Pu6dqMrYoirjPskDLJRgZGLqoy3/lnU1bkvHpnJO+9oJ3PB9v8rNlg=="
+
+
+ },
+
+
+ "@serialport/parser-cctalk": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-12.0.0.tgz",
+
+
+ "integrity": "sha512-0PfLzO9t2X5ufKuBO34DQKLXrCCqS9xz2D0pfuaLNeTkyGUBv426zxoMf3rsMRodDOZNbFblu3Ae84MOQXjnZw=="
+
+
+ },
+
+
+ "@serialport/parser-delimiter": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-12.0.0.tgz",
+
+
+ "integrity": "sha512-gu26tVt5lQoybhorLTPsH2j2LnX3AOP2x/34+DUSTNaUTzu2fBXw+isVjQJpUBFWu6aeQRZw5bJol5X9Gxjblw=="
+
+
+ },
+
+
+ "@serialport/parser-inter-byte-timeout": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-12.0.0.tgz",
+
+
+ "integrity": "sha512-GnCh8K0NAESfhCuXAt+FfBRz1Cf9CzIgXfp7SdMgXwrtuUnCC/yuRTUFWRvuzhYKoAo1TL0hhUo77SFHUH1T/w=="
+
+
+ },
+
+
+ "@serialport/parser-packet-length": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-packet-length/-/parser-packet-length-12.0.0.tgz",
+
+
+ "integrity": "sha512-p1hiCRqvGHHLCN/8ZiPUY/G0zrxd7gtZs251n+cfNTn+87rwcdUeu9Dps3Aadx30/sOGGFL6brIRGK4l/t7MuQ=="
+
+
+ },
+
+
+ "@serialport/parser-readline": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-12.0.0.tgz",
+
+
+ "integrity": "sha512-O7cywCWC8PiOMvo/gglEBfAkLjp/SENEML46BXDykfKP5mTPM46XMaX1L0waWU6DXJpBgjaL7+yX6VriVPbN4w==",
+
+
+ "requires": {
+
+
+ "@serialport/parser-delimiter": "12.0.0"
+
+
+ }
+
+
+ },
+
+
+ "@serialport/parser-ready": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-12.0.0.tgz",
+
+
+ "integrity": "sha512-ygDwj3O4SDpZlbrRUraoXIoIqb8sM7aMKryGjYTIF0JRnKeB1ys8+wIp0RFMdFbO62YriUDextHB5Um5cKFSWg=="
+
+
+ },
+
+
+ "@serialport/parser-regex": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-12.0.0.tgz",
+
+
+ "integrity": "sha512-dCAVh4P/pZrLcPv9NJ2mvPRBg64L5jXuiRxIlyxxdZGH4WubwXVXY/kBTihQmiAMPxbT3yshSX8f2+feqWsxqA=="
+
+
+ },
+
+
+ "@serialport/parser-slip-encoder": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-slip-encoder/-/parser-slip-encoder-12.0.0.tgz",
+
+
+ "integrity": "sha512-0APxDGR9YvJXTRfY+uRGhzOhTpU5akSH183RUcwzN7QXh8/1jwFsFLCu0grmAUfi+fItCkR+Xr1TcNJLR13VNA=="
+
+
+ },
+
+
+ "@serialport/parser-spacepacket": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-spacepacket/-/parser-spacepacket-12.0.0.tgz",
+
+
+ "integrity": "sha512-dozONxhPC/78pntuxpz/NOtVps8qIc/UZzdc/LuPvVsqCoJXiRxOg6ZtCP/W58iibJDKPZPAWPGYeZt9DJxI+Q=="
+
+
+ },
+
+
+ "@serialport/stream": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-12.0.0.tgz",
+
+
+ "integrity": "sha512-9On64rhzuqKdOQyiYLYv2lQOh3TZU/D3+IWCR5gk0alPel2nwpp4YwDEGiUBfrQZEdQ6xww0PWkzqth4wqwX3Q==",
+
+
+ "requires": {
+
+
+ "@serialport/bindings-interface": "1.2.2",
+
+
+ "debug": "4.3.4"
+
+
+ }
+
+
+ },
+
+
+ "@sindresorhus/is": {
+
+
+ "version": "4.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+
+
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "@socket.io/component-emitter": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
+
+
+ "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
+
+
+ },
+
+
+ "@szmarczak/http-timer": {
+
+
+ "version": "4.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+
+
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "defer-to-connect": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "@tootallnate/once": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
+
+
+ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "@types/cacheable-request": {
+
+
+ "version": "6.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
+
+
+ "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/http-cache-semantics": "*",
+
+
+ "@types/keyv": "^3.1.4",
+
+
+ "@types/node": "*",
+
+
+ "@types/responselike": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "@types/cookie": {
+
+
+ "version": "0.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
+
+
+ "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
+
+
+ },
+
+
+ "@types/cors": {
+
+
+ "version": "2.8.14",
+
+
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.14.tgz",
+
+
+ "integrity": "sha512-RXHUvNWYICtbP6s18PnOCaqToK8y14DnLd75c6HfyKf228dxy7pHNOQkxPtvXKp/hINFMDjbYzsj63nnpPMSRQ==",
+
+
+ "requires": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "@types/debug": {
+
+
+ "version": "4.1.9",
+
+
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.9.tgz",
+
+
+ "integrity": "sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/ms": "*"
+
+
+ }
+
+
+ },
+
+
+ "@types/formidable": {
+
+
+ "version": "2.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/@types/formidable/-/formidable-2.0.6.tgz",
+
+
+ "integrity": "sha512-L4HcrA05IgQyNYJj6kItuIkXrInJvsXTPC5B1i64FggWKKqSL+4hgt7asiSNva75AoLQjq29oPxFfU4GAQ6Z2w==",
+
+
+ "requires": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "@types/fs-extra": {
+
+
+ "version": "9.0.13",
+
+
+ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz",
+
+
+ "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "@types/glob": {
+
+
+ "version": "7.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+
+
+ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+
+
+ "requires": {
+
+
+ "@types/minimatch": "*",
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "@types/http-cache-semantics": {
+
+
+ "version": "4.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz",
+
+
+ "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "@types/keyv": {
+
+
+ "version": "3.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
+
+
+ "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "@types/minimatch": {
+
+
+ "version": "5.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+
+
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA=="
+
+
+ },
+
+
+ "@types/ms": {
+
+
+ "version": "0.7.32",
+
+
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.32.tgz",
+
+
+ "integrity": "sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "@types/node": {
+
+
+ "version": "16.18.58",
+
+
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.58.tgz",
+
+
+ "integrity": "sha512-YGncyA25/MaVtQkjWW9r0EFBukZ+JulsLcVZBlGUfIb96OBMjkoRWwQo5IEWJ8Fj06Go3GHw+bjYDitv6BaGsA=="
+
+
+ },
+
+
+ "@types/plist": {
+
+
+ "version": "3.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.3.tgz",
+
+
+ "integrity": "sha512-DXkBoKc7jwUR0p439icInmXXMJNhoImdpOrrgA5/nDFK7LVtcJ9MyQNKhJEKpEztnHGWnNWMWLOIR62By0Ln0A==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "@types/node": "*",
+
+
+ "xmlbuilder": ">=11.0.1"
+
+
+ }
+
+
+ },
+
+
+ "@types/responselike": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.1.tgz",
+
+
+ "integrity": "sha512-TiGnitEDxj2X0j+98Eqk5lv/Cij8oHd32bU4D/Yw6AOq7vvTk0gSD2GPj0G/HkvhMoVsdlhYF4yqqlyPBTM6Sg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "@types/semver": {
+
+
+ "version": "7.5.3",
+
+
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz",
+
+
+ "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw=="
+
+
+ },
+
+
+ "@types/validator": {
+
+
+ "version": "13.11.2",
+
+
+ "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.2.tgz",
+
+
+ "integrity": "sha512-nIKVVQKT6kGKysnNt+xLobr+pFJNssJRi2s034wgWeFBUx01fI8BeHTW2TcRp7VcFu9QCYG8IlChTuovcm0oKQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "@types/verror": {
+
+
+ "version": "1.10.7",
+
+
+ "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.7.tgz",
+
+
+ "integrity": "sha512-4c5F4T0qMSoXq1KHx7WV1FMuD2h0xdaFoJ7HSVWUfQ8w5YbqCwLOA8K7/yy1I+Txuzvm417dnPUaLmqazX1F7g==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "@types/yargs": {
+
+
+ "version": "17.0.28",
+
+
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.28.tgz",
+
+
+ "integrity": "sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/yargs-parser": "*"
+
+
+ }
+
+
+ },
+
+
+ "@types/yargs-parser": {
+
+
+ "version": "21.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz",
+
+
+ "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "@types/yauzl": {
+
+
+ "version": "2.10.1",
+
+
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz",
+
+
+ "integrity": "sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "@types/node": "*"
+
+
+ }
+
+
+ },
+
+
+ "@xmldom/xmldom": {
+
+
+ "version": "0.8.10",
+
+
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+
+
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "7zip-bin": {
+
+
+ "version": "5.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz",
+
+
+ "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "abbrev": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+
+
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "accepts": {
+
+
+ "version": "1.3.8",
+
+
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+
+
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+
+
+ "requires": {
+
+
+ "mime-types": "~2.1.34",
+
+
+ "negotiator": "0.6.3"
+
+
+ }
+
+
+ },
+
+
+ "acorn": {
+
+
+ "version": "6.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+
+
+ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "acorn-jsx": {
+
+
+ "version": "5.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+
+
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+
+
+ "dev": true,
+
+
+ "requires": {}
+
+
+ },
+
+
+ "agent-base": {
+
+
+ "version": "6.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+
+
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "debug": "4"
+
+
+ }
+
+
+ },
+
+
+ "agentkeepalive": {
+
+
+ "version": "4.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz",
+
+
+ "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==",
+
+
+ "requires": {
+
+
+ "humanize-ms": "^1.2.1"
+
+
+ }
+
+
+ },
+
+
+ "aggregate-error": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+
+
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "clean-stack": "^2.0.0",
+
+
+ "indent-string": "^4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "ajv": {
+
+
+ "version": "6.12.6",
+
+
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+
+
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "fast-deep-equal": "^3.1.1",
+
+
+ "fast-json-stable-stringify": "^2.0.0",
+
+
+ "json-schema-traverse": "^0.4.1",
+
+
+ "uri-js": "^4.2.2"
+
+
+ }
+
+
+ },
+
+
+ "ajv-keywords": {
+
+
+ "version": "3.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+
+
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+
+
+ "dev": true,
+
+
+ "requires": {}
+
+
+ },
+
+
+ "ansi-escapes": {
+
+
+ "version": "3.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+
+
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "ansi-regex": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+
+
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "ansi-styles": {
+
+
+ "version": "4.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+
+
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+
+
+ "requires": {
+
+
+ "color-convert": "^2.0.1"
+
+
+ }
+
+
+ },
+
+
+ "any-promise": {
+
+
+ "version": "1.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+
+
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
+
+
+ },
+
+
+ "anymatch": {
+
+
+ "version": "3.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+
+
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "normalize-path": "^3.0.0",
+
+
+ "picomatch": "^2.0.4"
+
+
+ }
+
+
+ },
+
+
+ "app-builder-bin": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz",
+
+
+ "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "app-builder-lib": {
+
+
+ "version": "23.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.6.0.tgz",
+
+
+ "integrity": "sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@develar/schema-utils": "~2.6.5",
+
+
+ "@electron/universal": "1.2.1",
+
+
+ "@malept/flatpak-bundler": "^0.4.0",
+
+
+ "7zip-bin": "~5.1.1",
+
+
+ "async-exit-hook": "^2.0.1",
+
+
+ "bluebird-lst": "^1.0.9",
+
+
+ "builder-util": "23.6.0",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "chromium-pickle-js": "^0.2.0",
+
+
+ "debug": "^4.3.4",
+
+
+ "ejs": "^3.1.7",
+
+
+ "electron-osx-sign": "^0.6.0",
+
+
+ "electron-publish": "23.6.0",
+
+
+ "form-data": "^4.0.0",
+
+
+ "fs-extra": "^10.1.0",
+
+
+ "hosted-git-info": "^4.1.0",
+
+
+ "is-ci": "^3.0.0",
+
+
+ "isbinaryfile": "^4.0.10",
+
+
+ "js-yaml": "^4.1.0",
+
+
+ "lazy-val": "^1.0.5",
+
+
+ "minimatch": "^3.1.2",
+
+
+ "read-config-file": "6.2.0",
+
+
+ "sanitize-filename": "^1.6.3",
+
+
+ "semver": "^7.3.7",
+
+
+ "tar": "^6.1.11",
+
+
+ "temp-file": "^3.4.0"
+
+
+ }
+
+
+ },
+
+
+ "aproba": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
+
+
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "are-we-there-yet": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
+
+
+ "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "delegates": "^1.0.0",
+
+
+ "readable-stream": "^3.6.0"
+
+
+ }
+
+
+ },
+
+
+ "argparse": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+
+
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+
+
+ },
+
+
+ "array-differ": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
+
+
+ "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "array-union": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+
+
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
+
+
+ },
+
+
+ "arrify": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+
+
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "asap": {
+
+
+ "version": "2.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+
+
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+
+
+ },
+
+
+ "asar": {
+
+
+ "version": "3.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz",
+
+
+ "integrity": "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/glob": "^7.1.1",
+
+
+ "chromium-pickle-js": "^0.2.0",
+
+
+ "commander": "^5.0.0",
+
+
+ "glob": "^7.1.6",
+
+
+ "minimatch": "^3.0.4"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "commander": {
+
+
+ "version": "5.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+
+
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "assert": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
+
+
+ "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "es6-object-assign": "^1.1.0",
+
+
+ "is-nan": "^1.2.1",
+
+
+ "object-is": "^1.0.1",
+
+
+ "util": "^0.12.0"
+
+
+ }
+
+
+ },
+
+
+ "assert-plus": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+
+
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "astral-regex": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+
+
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "async": {
+
+
+ "version": "3.2.4",
+
+
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+
+
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "async-exit-hook": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz",
+
+
+ "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "asynckit": {
+
+
+ "version": "0.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+
+
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "at-least-node": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+
+
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "available-typed-arrays": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+
+
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "b4a": {
+
+
+ "version": "1.6.4",
+
+
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
+
+
+ "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "balanced-match": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+
+
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+
+
+ },
+
+
+ "base64-js": {
+
+
+ "version": "1.5.1",
+
+
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+
+
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "base64id": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+
+
+ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog=="
+
+
+ },
+
+
+ "binary-extensions": {
+
+
+ "version": "2.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+
+
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "bl": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+
+
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "buffer": "^5.5.0",
+
+
+ "inherits": "^2.0.4",
+
+
+ "readable-stream": "^3.4.0"
+
+
+ }
+
+
+ },
+
+
+ "bluebird": {
+
+
+ "version": "3.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+
+
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "bluebird-lst": {
+
+
+ "version": "1.0.9",
+
+
+ "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz",
+
+
+ "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "bluebird": "^3.5.5"
+
+
+ }
+
+
+ },
+
+
+ "boolean": {
+
+
+ "version": "3.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
+
+
+ "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "brace-expansion": {
+
+
+ "version": "1.1.11",
+
+
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+
+
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+
+
+ "requires": {
+
+
+ "balanced-match": "^1.0.0",
+
+
+ "concat-map": "0.0.1"
+
+
+ }
+
+
+ },
+
+
+ "braces": {
+
+
+ "version": "3.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+
+
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+
+
+ "requires": {
+
+
+ "fill-range": "^7.0.1"
+
+
+ }
+
+
+ },
+
+
+ "buffer": {
+
+
+ "version": "5.7.1",
+
+
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+
+
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "base64-js": "^1.3.1",
+
+
+ "ieee754": "^1.1.13"
+
+
+ }
+
+
+ },
+
+
+ "buffer-alloc": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+
+
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "buffer-alloc-unsafe": "^1.1.0",
+
+
+ "buffer-fill": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "buffer-alloc-unsafe": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+
+
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "buffer-crc32": {
+
+
+ "version": "0.2.13",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+
+
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "buffer-equal": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
+
+
+ "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "buffer-fill": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+
+
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "buffer-from": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+
+
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "builder-util": {
+
+
+ "version": "23.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.6.0.tgz",
+
+
+ "integrity": "sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/debug": "^4.1.6",
+
+
+ "@types/fs-extra": "^9.0.11",
+
+
+ "7zip-bin": "~5.1.1",
+
+
+ "app-builder-bin": "4.0.0",
+
+
+ "bluebird-lst": "^1.0.9",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "chalk": "^4.1.1",
+
+
+ "cross-spawn": "^7.0.3",
+
+
+ "debug": "^4.3.4",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "http-proxy-agent": "^5.0.0",
+
+
+ "https-proxy-agent": "^5.0.0",
+
+
+ "is-ci": "^3.0.0",
+
+
+ "js-yaml": "^4.1.0",
+
+
+ "source-map-support": "^0.5.19",
+
+
+ "stat-mode": "^1.0.0",
+
+
+ "temp-file": "^3.4.0"
+
+
+ }
+
+
+ },
+
+
+ "builder-util-runtime": {
+
+
+ "version": "9.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz",
+
+
+ "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==",
+
+
+ "requires": {
+
+
+ "debug": "^4.3.4",
+
+
+ "sax": "^1.2.4"
+
+
+ }
+
+
+ },
+
+
+ "bytenode": {
+
+
+ "version": "1.5.1",
+
+
+ "resolved": "https://registry.npmjs.org/bytenode/-/bytenode-1.5.1.tgz",
+
+
+ "integrity": "sha512-99JiRxnOYs+89VAPfvh1NG6xqsB6flCifJkvQM3jWwYTO+Y7B+Ed85o+yIBt8a4JRMLYo/F0JqY8NyDAgGOs2w=="
+
+
+ },
+
+
+ "bytes": {
+
+
+ "version": "3.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+
+
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+
+
+ },
+
+
+ "cacache": {
+
+
+ "version": "17.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz",
+
+
+ "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@npmcli/fs": "^3.1.0",
+
+
+ "fs-minipass": "^3.0.0",
+
+
+ "glob": "^10.2.2",
+
+
+ "lru-cache": "^7.7.1",
+
+
+ "minipass": "^7.0.3",
+
+
+ "minipass-collect": "^1.0.2",
+
+
+ "minipass-flush": "^1.0.5",
+
+
+ "minipass-pipeline": "^1.2.4",
+
+
+ "p-map": "^4.0.0",
+
+
+ "ssri": "^10.0.0",
+
+
+ "tar": "^6.1.11",
+
+
+ "unique-filename": "^3.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "brace-expansion": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+
+
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "balanced-match": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "glob": {
+
+
+ "version": "10.3.10",
+
+
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+
+
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "foreground-child": "^3.1.0",
+
+
+ "jackspeak": "^2.3.5",
+
+
+ "minimatch": "^9.0.1",
+
+
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+
+
+ "path-scurry": "^1.10.1"
+
+
+ }
+
+
+ },
+
+
+ "lru-cache": {
+
+
+ "version": "7.18.3",
+
+
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+
+
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "minimatch": {
+
+
+ "version": "9.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+
+
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "brace-expansion": "^2.0.1"
+
+
+ }
+
+
+ },
+
+
+ "minipass": {
+
+
+ "version": "7.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+
+
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "cache-content-type": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz",
+
+
+ "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==",
+
+
+ "requires": {
+
+
+ "mime-types": "^2.1.18",
+
+
+ "ylru": "^1.2.0"
+
+
+ }
+
+
+ },
+
+
+ "cacheable-lookup": {
+
+
+ "version": "5.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
+
+
+ "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "cacheable-request": {
+
+
+ "version": "7.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+
+
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "clone-response": "^1.0.2",
+
+
+ "get-stream": "^5.1.0",
+
+
+ "http-cache-semantics": "^4.0.0",
+
+
+ "keyv": "^4.0.0",
+
+
+ "lowercase-keys": "^2.0.0",
+
+
+ "normalize-url": "^6.0.1",
+
+
+ "responselike": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "call-bind": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+
+
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+
+
+ "requires": {
+
+
+ "function-bind": "^1.1.1",
+
+
+ "get-intrinsic": "^1.0.2"
+
+
+ }
+
+
+ },
+
+
+ "callsites": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+
+
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "chalk": {
+
+
+ "version": "4.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+
+
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+
+
+ "requires": {
+
+
+ "ansi-styles": "^4.1.0",
+
+
+ "supports-color": "^7.1.0"
+
+
+ }
+
+
+ },
+
+
+ "chance": {
+
+
+ "version": "1.1.9",
+
+
+ "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.9.tgz",
+
+
+ "integrity": "sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "char-regex": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+
+
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "chardet": {
+
+
+ "version": "0.7.0",
+
+
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+
+
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "charenc": {
+
+
+ "version": "0.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+
+
+ "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "chokidar": {
+
+
+ "version": "3.5.3",
+
+
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+
+
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "anymatch": "~3.1.2",
+
+
+ "braces": "~3.0.2",
+
+
+ "fsevents": "~2.3.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"
+
+
+ }
+
+
+ },
+
+
+ "chownr": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+
+
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "chromium-pickle-js": {
+
+
+ "version": "0.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
+
+
+ "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "ci-info": {
+
+
+ "version": "3.9.0",
+
+
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+
+
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "circular-json-for-egg": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/circular-json-for-egg/-/circular-json-for-egg-1.0.0.tgz",
+
+
+ "integrity": "sha512-BzMR1dg0+YqcFoMETHq0gFeQNNKliXI1Oe+C0nx/4npLaohsR7/Oj3UFht65MLwF7zs6x13gOr+f4+JeYni6vw=="
+
+
+ },
+
+
+ "class-validator": {
+
+
+ "version": "0.14.0",
+
+
+ "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.0.tgz",
+
+
+ "integrity": "sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/validator": "^13.7.10",
+
+
+ "libphonenumber-js": "^1.10.14",
+
+
+ "validator": "^13.7.0"
+
+
+ }
+
+
+ },
+
+
+ "clean-stack": {
+
+
+ "version": "2.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+
+
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "cli-cursor": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+
+
+ "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "restore-cursor": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "cli-spinners": {
+
+
+ "version": "2.9.1",
+
+
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz",
+
+
+ "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "cli-truncate": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+
+
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "slice-ansi": "^3.0.0",
+
+
+ "string-width": "^4.2.0"
+
+
+ }
+
+
+ },
+
+
+ "cli-width": {
+
+
+ "version": "2.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+
+
+ "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "cliui": {
+
+
+ "version": "8.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+
+
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "string-width": "^4.2.0",
+
+
+ "strip-ansi": "^6.0.1",
+
+
+ "wrap-ansi": "^7.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "clone": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+
+
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "clone-response": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+
+
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "mimic-response": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "co": {
+
+
+ "version": "4.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+
+
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="
+
+
+ },
+
+
+ "co-body": {
+
+
+ "version": "5.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz",
+
+
+ "integrity": "sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==",
+
+
+ "requires": {
+
+
+ "inflation": "^2.0.0",
+
+
+ "qs": "^6.4.0",
+
+
+ "raw-body": "^2.2.0",
+
+
+ "type-is": "^1.6.14"
+
+
+ }
+
+
+ },
+
+
+ "color": {
+
+
+ "version": "4.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+
+
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-convert": "^2.0.1",
+
+
+ "color-string": "^1.9.0"
+
+
+ }
+
+
+ },
+
+
+ "color-convert": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+
+
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+
+
+ "requires": {
+
+
+ "color-name": "~1.1.4"
+
+
+ }
+
+
+ },
+
+
+ "color-name": {
+
+
+ "version": "1.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+
+
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+
+
+ },
+
+
+ "color-string": {
+
+
+ "version": "1.9.1",
+
+
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+
+
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-name": "^1.0.0",
+
+
+ "simple-swizzle": "^0.2.2"
+
+
+ }
+
+
+ },
+
+
+ "color-support": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+
+
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "colors": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+
+
+ "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "combined-stream": {
+
+
+ "version": "1.0.8",
+
+
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+
+
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "delayed-stream": "~1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "commander": {
+
+
+ "version": "11.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+
+
+ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "compare-version": {
+
+
+ "version": "0.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
+
+
+ "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "concat-map": {
+
+
+ "version": "0.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+
+
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+
+
+ },
+
+
+ "config-chain": {
+
+
+ "version": "1.1.13",
+
+
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
+
+
+ "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "ini": "^1.3.4",
+
+
+ "proto-list": "~1.2.1"
+
+
+ }
+
+
+ },
+
+
+ "console-control-strings": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+
+
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "content-disposition": {
+
+
+ "version": "0.5.4",
+
+
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+
+
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+
+
+ "requires": {
+
+
+ "safe-buffer": "5.2.1"
+
+
+ }
+
+
+ },
+
+
+ "content-type": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+
+
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
+
+
+ },
+
+
+ "cookie": {
+
+
+ "version": "0.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+
+
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
+
+
+ },
+
+
+ "cookies": {
+
+
+ "version": "0.8.0",
+
+
+ "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
+
+
+ "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
+
+
+ "requires": {
+
+
+ "depd": "~2.0.0",
+
+
+ "keygrip": "~1.1.0"
+
+
+ }
+
+
+ },
+
+
+ "copy-to": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
+
+
+ "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w=="
+
+
+ },
+
+
+ "core-util-is": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+
+
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+
+
+ },
+
+
+ "cors": {
+
+
+ "version": "2.8.5",
+
+
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+
+
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+
+
+ "requires": {
+
+
+ "object-assign": "^4",
+
+
+ "vary": "^1"
+
+
+ }
+
+
+ },
+
+
+ "crc": {
+
+
+ "version": "3.8.0",
+
+
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
+
+
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "buffer": "^5.1.0"
+
+
+ }
+
+
+ },
+
+
+ "cross-spawn": {
+
+
+ "version": "7.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+
+
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+
+
+ "requires": {
+
+
+ "path-key": "^3.1.0",
+
+
+ "shebang-command": "^2.0.0",
+
+
+ "which": "^2.0.1"
+
+
+ }
+
+
+ },
+
+
+ "crypt": {
+
+
+ "version": "0.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+
+
+ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "dayjs": {
+
+
+ "version": "1.11.10",
+
+
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+
+
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+
+
+ },
+
+
+ "debug": {
+
+
+ "version": "4.3.4",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+
+
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+
+
+ "requires": {
+
+
+ "ms": "2.1.2"
+
+
+ }
+
+
+ },
+
+
+ "decompress-response": {
+
+
+ "version": "6.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+
+
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "mimic-response": "^3.1.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "mimic-response": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+
+
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "deep-equal": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
+
+
+ "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw=="
+
+
+ },
+
+
+ "deep-extend": {
+
+
+ "version": "0.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+
+
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "deep-is": {
+
+
+ "version": "0.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+
+
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "default-user-agent": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/default-user-agent/-/default-user-agent-1.0.0.tgz",
+
+
+ "integrity": "sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==",
+
+
+ "requires": {
+
+
+ "os-name": "~1.0.3"
+
+
+ }
+
+
+ },
+
+
+ "defaults": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+
+
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "clone": "^1.0.2"
+
+
+ }
+
+
+ },
+
+
+ "defer-to-connect": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+
+
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "define-data-property": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz",
+
+
+ "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "get-intrinsic": "^1.2.1",
+
+
+ "gopd": "^1.0.1",
+
+
+ "has-property-descriptors": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "define-properties": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+
+
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "define-data-property": "^1.0.1",
+
+
+ "has-property-descriptors": "^1.0.0",
+
+
+ "object-keys": "^1.1.1"
+
+
+ }
+
+
+ },
+
+
+ "delayed-stream": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+
+
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "delegates": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+
+
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
+
+
+ },
+
+
+ "depd": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+
+
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+
+
+ },
+
+
+ "destroy": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+
+
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
+
+
+ },
+
+
+ "detect-libc": {
+
+
+ "version": "2.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+
+
+ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "detect-node": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
+
+
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "dezalgo": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+
+
+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
+
+
+ "requires": {
+
+
+ "asap": "^2.0.0",
+
+
+ "wrappy": "1"
+
+
+ }
+
+
+ },
+
+
+ "digest-header": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/digest-header/-/digest-header-1.1.0.tgz",
+
+
+ "integrity": "sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg=="
+
+
+ },
+
+
+ "dir-compare": {
+
+
+ "version": "2.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz",
+
+
+ "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "buffer-equal": "1.0.0",
+
+
+ "colors": "1.0.3",
+
+
+ "commander": "2.9.0",
+
+
+ "minimatch": "3.0.4"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "commander": {
+
+
+ "version": "2.9.0",
+
+
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+
+
+ "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "graceful-readlink": ">= 1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "minimatch": {
+
+
+ "version": "3.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+
+
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "brace-expansion": "^1.1.7"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "dir-glob": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+
+
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+
+
+ "requires": {
+
+
+ "path-type": "^4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "dmg-builder": {
+
+
+ "version": "23.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.6.0.tgz",
+
+
+ "integrity": "sha512-jFZvY1JohyHarIAlTbfQOk+HnceGjjAdFjVn3n8xlDWKsYNqbO4muca6qXEZTfGXeQMG7TYim6CeS5XKSfSsGA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "app-builder-lib": "23.6.0",
+
+
+ "builder-util": "23.6.0",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "dmg-license": "^1.0.11",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "iconv-lite": "^0.6.2",
+
+
+ "js-yaml": "^4.1.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "iconv-lite": {
+
+
+ "version": "0.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+
+
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "dmg-license": {
+
+
+ "version": "1.0.11",
+
+
+ "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz",
+
+
+ "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "@types/plist": "^3.0.1",
+
+
+ "@types/verror": "^1.10.3",
+
+
+ "ajv": "^6.10.0",
+
+
+ "crc": "^3.8.0",
+
+
+ "iconv-corefoundation": "^1.1.7",
+
+
+ "plist": "^3.0.4",
+
+
+ "smart-buffer": "^4.0.2",
+
+
+ "verror": "^1.10.0"
+
+
+ }
+
+
+ },
+
+
+ "doctrine": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+
+
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "esutils": "^2.0.2"
+
+
+ }
+
+
+ },
+
+
+ "dotenv": {
+
+
+ "version": "9.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz",
+
+
+ "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "dotenv-expand": {
+
+
+ "version": "5.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+
+
+ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "duplexer3": {
+
+
+ "version": "0.1.5",
+
+
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
+
+
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "eastasianwidth": {
+
+
+ "version": "0.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+
+
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "ee-bin": {
+
+
+ "version": "1.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/ee-bin/-/ee-bin-1.5.0.tgz",
+
+
+ "integrity": "sha512-PELFev7hNX103a3WCIalZKGzRIKM1UkFpQ/jGjj8CsjV1cDbvMLU7JEd3veBywosu4qwjTrKizG37bx5M/BLUA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "bytenode": "^1.3.6",
+
+
+ "chalk": "^4.1.2",
+
+
+ "commander": "^11.0.0",
+
+
+ "cross-spawn": "^7.0.3",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "globby": "^10.0.0",
+
+
+ "is-type-of": "^1.2.1",
+
+
+ "javascript-obfuscator": "^4.0.2"
+
+
+ }
+
+
+ },
+
+
+ "ee-core": {
+
+
+ "version": "2.9.2",
+
+
+ "resolved": "https://registry.npmjs.org/ee-core/-/ee-core-2.9.2.tgz",
+
+
+ "integrity": "sha512-ZzWcS6/oU/9rAiDqxssqSHnixbgaFMHnRySVlZNhUUAh+ZyBgbroicYWXQohcVbPBCztw/iGDezMJ0FscEn7fg==",
+
+
+ "requires": {
+
+
+ "agentkeepalive": "^4.2.0",
+
+
+ "bytenode": "^1.3.6",
+
+
+ "chalk": "^4.1.2",
+
+
+ "cross-spawn": "^7.0.3",
+
+
+ "dayjs": "^1.11.7",
+
+
+ "debug": "^4.3.3",
+
+
+ "egg-errors": "^2.3.0",
+
+
+ "egg-logger": "^2.7.1",
+
+
+ "globby": "^10.0.0",
+
+
+ "is-type-of": "^1.2.1",
+
+
+ "koa": "^2.13.4",
+
+
+ "koa-body": "^5.0.0",
+
+
+ "koa-convert": "^2.0.0",
+
+
+ "koa-static": "^5.0.0",
+
+
+ "koa2-cors": "^2.0.6",
+
+
+ "lodash": "^4.17.21",
+
+
+ "mkdirp": "^2.1.3",
+
+
+ "semver": "^7.3.8",
+
+
+ "serialize-javascript": "^6.0.1",
+
+
+ "socket.io": "^4.6.1",
+
+
+ "socket.io-client": "^4.6.1",
+
+
+ "urllib": "^2.38.0"
+
+
+ }
+
+
+ },
+
+
+ "ee-first": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+
+
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+
+
+ },
+
+
+ "egg-errors": {
+
+
+ "version": "2.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/egg-errors/-/egg-errors-2.3.2.tgz",
+
+
+ "integrity": "sha512-E+Sx7IBVrfRyHSjFXaq4sCZ3Uk3ka9PYySaQ8VbRZmLEt9ENBCD99yVzLIeWUH2QfzvkrjY9El1eHmLeRx7cfw=="
+
+
+ },
+
+
+ "egg-logger": {
+
+
+ "version": "2.9.1",
+
+
+ "resolved": "https://registry.npmjs.org/egg-logger/-/egg-logger-2.9.1.tgz",
+
+
+ "integrity": "sha512-TPYdNthc7yGV+08A2U4g1T1wgRAjfTnsYC53JgfdKiYukaH3na1KPXEu+TEWni7IooqkFGkQ0t0WY+ylWFnvbw==",
+
+
+ "requires": {
+
+
+ "chalk": "^2.4.1",
+
+
+ "circular-json-for-egg": "^1.0.0",
+
+
+ "debug": "^2.6.9",
+
+
+ "depd": "^2.0.0",
+
+
+ "egg-errors": "^2.2.0",
+
+
+ "iconv-lite": "^0.4.24",
+
+
+ "mkdirp": "^0.5.1",
+
+
+ "utility": "^1.15.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "requires": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ }
+
+
+ },
+
+
+ "chalk": {
+
+
+ "version": "2.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+
+
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+
+
+ "requires": {
+
+
+ "ansi-styles": "^3.2.1",
+
+
+ "escape-string-regexp": "^1.0.5",
+
+
+ "supports-color": "^5.3.0"
+
+
+ }
+
+
+ },
+
+
+ "color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "requires": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+
+
+ },
+
+
+ "debug": {
+
+
+ "version": "2.6.9",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+
+
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+
+
+ "requires": {
+
+
+ "ms": "2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+
+
+ },
+
+
+ "mkdirp": {
+
+
+ "version": "0.5.6",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+
+
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+
+
+ "requires": {
+
+
+ "minimist": "^1.2.6"
+
+
+ }
+
+
+ },
+
+
+ "ms": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+
+
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+
+
+ },
+
+
+ "supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "requires": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "ejs": {
+
+
+ "version": "3.1.9",
+
+
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+
+
+ "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "jake": "^10.8.5"
+
+
+ }
+
+
+ },
+
+
+ "electron": {
+
+
+ "version": "21.4.4",
+
+
+ "resolved": "https://registry.npmjs.org/electron/-/electron-21.4.4.tgz",
+
+
+ "integrity": "sha512-N5O7y7Gtt7mDgkJLkW49ETiT8M3myZ9tNIEvGTKhpBduX4WdgMj6c3hYeYBD6XW7SvbRkWEQaTl25RNday8Xpw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@electron/get": "^1.14.1",
+
+
+ "@types/node": "^16.11.26",
+
+
+ "extract-zip": "^2.0.1"
+
+
+ }
+
+
+ },
+
+
+ "electron-builder": {
+
+
+ "version": "23.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.6.0.tgz",
+
+
+ "integrity": "sha512-y8D4zO+HXGCNxFBV/JlyhFnoQ0Y0K7/sFH+XwIbj47pqaW8S6PGYQbjoObolKBR1ddQFPt4rwp4CnwMJrW3HAw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/yargs": "^17.0.1",
+
+
+ "app-builder-lib": "23.6.0",
+
+
+ "builder-util": "23.6.0",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "chalk": "^4.1.1",
+
+
+ "dmg-builder": "23.6.0",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "is-ci": "^3.0.0",
+
+
+ "lazy-val": "^1.0.5",
+
+
+ "read-config-file": "6.2.0",
+
+
+ "simple-update-notifier": "^1.0.7",
+
+
+ "yargs": "^17.5.1"
+
+
+ }
+
+
+ },
+
+
+ "electron-osx-sign": {
+
+
+ "version": "0.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz",
+
+
+ "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "bluebird": "^3.5.0",
+
+
+ "compare-version": "^0.1.2",
+
+
+ "debug": "^2.6.8",
+
+
+ "isbinaryfile": "^3.0.2",
+
+
+ "minimist": "^1.2.0",
+
+
+ "plist": "^3.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "debug": {
+
+
+ "version": "2.6.9",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+
+
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ms": "2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "isbinaryfile": {
+
+
+ "version": "3.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
+
+
+ "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "buffer-alloc": "^1.2.0"
+
+
+ }
+
+
+ },
+
+
+ "ms": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+
+
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "electron-publish": {
+
+
+ "version": "23.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.6.0.tgz",
+
+
+ "integrity": "sha512-jPj3y+eIZQJF/+t5SLvsI5eS4mazCbNYqatv5JihbqOstIM13k0d1Z3vAWntvtt13Itl61SO6seicWdioOU5dg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/fs-extra": "^9.0.11",
+
+
+ "builder-util": "23.6.0",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "chalk": "^4.1.1",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "lazy-val": "^1.0.5",
+
+
+ "mime": "^2.5.2"
+
+
+ }
+
+
+ },
+
+
+ "electron-shutdown-command": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/electron-shutdown-command/-/electron-shutdown-command-2.0.1.tgz",
+
+
+ "integrity": "sha512-u8fpVGBpKGv0u7c7uAodUWzjF37+FbOeWBxr3vNO/DKt3KISFT48/UIfu/7smTHluCwrWvjwUXLkrZTA8pWPtg=="
+
+
+ },
+
+
+ "electron-updater": {
+
+
+ "version": "5.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.3.0.tgz",
+
+
+ "integrity": "sha512-iKEr7yQBcvnQUPnSDYGSWC9t0eF2YbZWeYYYZzYxdl+HiRejXFENjYMnYjoOm2zxyD6Cr2JTHZhp9pqxiXuCOw==",
+
+
+ "requires": {
+
+
+ "@types/semver": "^7.3.6",
+
+
+ "builder-util-runtime": "9.1.1",
+
+
+ "fs-extra": "^10.0.0",
+
+
+ "js-yaml": "^4.1.0",
+
+
+ "lazy-val": "^1.0.5",
+
+
+ "lodash.escaperegexp": "^4.1.2",
+
+
+ "lodash.isequal": "^4.5.0",
+
+
+ "semver": "^7.3.5",
+
+
+ "typed-emitter": "^2.1.0"
+
+
+ }
+
+
+ },
+
+
+ "emoji-regex": {
+
+
+ "version": "8.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+
+
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "encodeurl": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+
+
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
+
+
+ },
+
+
+ "encoding": {
+
+
+ "version": "0.1.13",
+
+
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+
+
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "iconv-lite": "^0.6.2"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "iconv-lite": {
+
+
+ "version": "0.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+
+
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "end-of-stream": {
+
+
+ "version": "1.4.4",
+
+
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+
+
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+
+
+ "requires": {
+
+
+ "once": "^1.4.0"
+
+
+ }
+
+
+ },
+
+
+ "engine.io": {
+
+
+ "version": "6.5.3",
+
+
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.3.tgz",
+
+
+ "integrity": "sha512-IML/R4eG/pUS5w7OfcDE0jKrljWS9nwnEfsxWCIJF5eO6AHo6+Hlv+lQbdlAYsiJPHzUthLm1RUjnBzWOs45cw==",
+
+
+ "requires": {
+
+
+ "@types/cookie": "^0.4.1",
+
+
+ "@types/cors": "^2.8.12",
+
+
+ "@types/node": ">=10.0.0",
+
+
+ "accepts": "~1.3.4",
+
+
+ "base64id": "2.0.0",
+
+
+ "cookie": "~0.4.1",
+
+
+ "cors": "~2.8.5",
+
+
+ "debug": "~4.3.1",
+
+
+ "engine.io-parser": "~5.2.1",
+
+
+ "ws": "~8.11.0"
+
+
+ }
+
+
+ },
+
+
+ "engine.io-client": {
+
+
+ "version": "6.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz",
+
+
+ "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==",
+
+
+ "requires": {
+
+
+ "@socket.io/component-emitter": "~3.1.0",
+
+
+ "debug": "~4.3.1",
+
+
+ "engine.io-parser": "~5.2.1",
+
+
+ "ws": "~8.11.0",
+
+
+ "xmlhttprequest-ssl": "~2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "engine.io-parser": {
+
+
+ "version": "5.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz",
+
+
+ "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ=="
+
+
+ },
+
+
+ "env-paths": {
+
+
+ "version": "2.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+
+
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "err-code": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+
+
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "es6-error": {
+
+
+ "version": "4.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+
+
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "es6-object-assign": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
+
+
+ "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "escalade": {
+
+
+ "version": "3.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+
+
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "escape-html": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+
+
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+
+
+ },
+
+
+ "escape-string-regexp": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+
+
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
+
+
+ },
+
+
+ "eslint": {
+
+
+ "version": "5.16.0",
+
+
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz",
+
+
+ "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@babel/code-frame": "^7.0.0",
+
+
+ "ajv": "^6.9.1",
+
+
+ "chalk": "^2.1.0",
+
+
+ "cross-spawn": "^6.0.5",
+
+
+ "debug": "^4.0.1",
+
+
+ "doctrine": "^3.0.0",
+
+
+ "eslint-scope": "^4.0.3",
+
+
+ "eslint-utils": "^1.3.1",
+
+
+ "eslint-visitor-keys": "^1.0.0",
+
+
+ "espree": "^5.0.1",
+
+
+ "esquery": "^1.0.1",
+
+
+ "esutils": "^2.0.2",
+
+
+ "file-entry-cache": "^5.0.1",
+
+
+ "functional-red-black-tree": "^1.0.1",
+
+
+ "glob": "^7.1.2",
+
+
+ "globals": "^11.7.0",
+
+
+ "ignore": "^4.0.6",
+
+
+ "import-fresh": "^3.0.0",
+
+
+ "imurmurhash": "^0.1.4",
+
+
+ "inquirer": "^6.2.2",
+
+
+ "js-yaml": "^3.13.0",
+
+
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+
+
+ "levn": "^0.3.0",
+
+
+ "lodash": "^4.17.11",
+
+
+ "minimatch": "^3.0.4",
+
+
+ "mkdirp": "^0.5.1",
+
+
+ "natural-compare": "^1.4.0",
+
+
+ "optionator": "^0.8.2",
+
+
+ "path-is-inside": "^1.0.2",
+
+
+ "progress": "^2.0.0",
+
+
+ "regexpp": "^2.0.1",
+
+
+ "semver": "^5.5.1",
+
+
+ "strip-ansi": "^4.0.0",
+
+
+ "strip-json-comments": "^2.0.1",
+
+
+ "table": "^5.2.3",
+
+
+ "text-table": "^0.2.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ }
+
+
+ },
+
+
+ "argparse": {
+
+
+ "version": "1.0.10",
+
+
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+
+
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "sprintf-js": "~1.0.2"
+
+
+ }
+
+
+ },
+
+
+ "chalk": {
+
+
+ "version": "2.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+
+
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-styles": "^3.2.1",
+
+
+ "escape-string-regexp": "^1.0.5",
+
+
+ "supports-color": "^5.3.0"
+
+
+ }
+
+
+ },
+
+
+ "color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "cross-spawn": {
+
+
+ "version": "6.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+
+
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "nice-try": "^1.0.4",
+
+
+ "path-key": "^2.0.1",
+
+
+ "semver": "^5.5.0",
+
+
+ "shebang-command": "^1.2.0",
+
+
+ "which": "^1.2.9"
+
+
+ }
+
+
+ },
+
+
+ "has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "js-yaml": {
+
+
+ "version": "3.14.1",
+
+
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+
+
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "argparse": "^1.0.7",
+
+
+ "esprima": "^4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "mkdirp": {
+
+
+ "version": "0.5.6",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+
+
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minimist": "^1.2.6"
+
+
+ }
+
+
+ },
+
+
+ "path-key": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+
+
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "semver": {
+
+
+ "version": "5.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+
+
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "shebang-command": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+
+
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "shebang-regex": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "shebang-regex": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+
+
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "sprintf-js": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+
+
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "which": {
+
+
+ "version": "1.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+
+
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "isexe": "^2.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "eslint-plugin-prettier": {
+
+
+ "version": "3.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz",
+
+
+ "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "prettier-linter-helpers": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "eslint-scope": {
+
+
+ "version": "4.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+
+
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "esrecurse": "^4.1.0",
+
+
+ "estraverse": "^4.1.1"
+
+
+ }
+
+
+ },
+
+
+ "eslint-utils": {
+
+
+ "version": "1.4.3",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+
+
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "eslint-visitor-keys": "^1.1.0"
+
+
+ }
+
+
+ },
+
+
+ "eslint-visitor-keys": {
+
+
+ "version": "1.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+
+
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "espree": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
+
+
+ "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "acorn": "^6.0.7",
+
+
+ "acorn-jsx": "^5.0.0",
+
+
+ "eslint-visitor-keys": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "esprima": {
+
+
+ "version": "4.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+
+
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "esquery": {
+
+
+ "version": "1.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+
+
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "estraverse": "^5.1.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "estraverse": {
+
+
+ "version": "5.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+
+
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "esrecurse": {
+
+
+ "version": "4.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+
+
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "estraverse": "^5.2.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "estraverse": {
+
+
+ "version": "5.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+
+
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "estraverse": {
+
+
+ "version": "4.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+
+
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "esutils": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+
+
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "execa": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+
+
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+
+
+ "requires": {
+
+
+ "cross-spawn": "^7.0.0",
+
+
+ "get-stream": "^5.0.0",
+
+
+ "human-signals": "^1.1.1",
+
+
+ "is-stream": "^2.0.0",
+
+
+ "merge-stream": "^2.0.0",
+
+
+ "npm-run-path": "^4.0.0",
+
+
+ "onetime": "^5.1.0",
+
+
+ "signal-exit": "^3.0.2",
+
+
+ "strip-final-newline": "^2.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "mimic-fn": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+
+
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+
+
+ },
+
+
+ "onetime": {
+
+
+ "version": "5.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+
+
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+
+
+ "requires": {
+
+
+ "mimic-fn": "^2.1.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "expand-template": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+
+
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "exponential-backoff": {
+
+
+ "version": "3.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz",
+
+
+ "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "extend-shallow": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+
+
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+
+
+ "requires": {
+
+
+ "is-extendable": "^0.1.0"
+
+
+ }
+
+
+ },
+
+
+ "external-editor": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+
+
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "chardet": "^0.7.0",
+
+
+ "iconv-lite": "^0.4.24",
+
+
+ "tmp": "^0.0.33"
+
+
+ }
+
+
+ },
+
+
+ "extract-zip": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+
+
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/yauzl": "^2.9.1",
+
+
+ "debug": "^4.1.1",
+
+
+ "get-stream": "^5.1.0",
+
+
+ "yauzl": "^2.10.0"
+
+
+ }
+
+
+ },
+
+
+ "extsprintf": {
+
+
+ "version": "1.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz",
+
+
+ "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "fast-deep-equal": {
+
+
+ "version": "3.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+
+
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "fast-diff": {
+
+
+ "version": "1.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+
+
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "fast-fifo": {
+
+
+ "version": "1.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+
+
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "fast-glob": {
+
+
+ "version": "3.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
+
+
+ "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+
+
+ "requires": {
+
+
+ "@nodelib/fs.stat": "^2.0.2",
+
+
+ "@nodelib/fs.walk": "^1.2.3",
+
+
+ "glob-parent": "^5.1.2",
+
+
+ "merge2": "^1.3.0",
+
+
+ "micromatch": "^4.0.4"
+
+
+ }
+
+
+ },
+
+
+ "fast-json-stable-stringify": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+
+
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "fast-levenshtein": {
+
+
+ "version": "2.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+
+
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "fastq": {
+
+
+ "version": "1.15.0",
+
+
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+
+
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+
+
+ "requires": {
+
+
+ "reusify": "^1.0.4"
+
+
+ }
+
+
+ },
+
+
+ "fd-slicer": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+
+
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "pend": "~1.2.0"
+
+
+ }
+
+
+ },
+
+
+ "figures": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+
+
+ "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "escape-string-regexp": "^1.0.5"
+
+
+ }
+
+
+ },
+
+
+ "file-entry-cache": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+
+
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "flat-cache": "^2.0.1"
+
+
+ }
+
+
+ },
+
+
+ "filelist": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+
+
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minimatch": "^5.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "brace-expansion": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+
+
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "balanced-match": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "minimatch": {
+
+
+ "version": "5.1.6",
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+
+
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "brace-expansion": "^2.0.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "fill-range": {
+
+
+ "version": "7.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+
+
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+
+
+ "requires": {
+
+
+ "to-regex-range": "^5.0.1"
+
+
+ }
+
+
+ },
+
+
+ "flat-cache": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+
+
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "flatted": "^2.0.0",
+
+
+ "rimraf": "2.6.3",
+
+
+ "write": "1.0.3"
+
+
+ }
+
+
+ },
+
+
+ "flatted": {
+
+
+ "version": "2.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+
+
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "for-each": {
+
+
+ "version": "0.3.3",
+
+
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+
+
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "is-callable": "^1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "foreground-child": {
+
+
+ "version": "3.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+
+
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "cross-spawn": "^7.0.0",
+
+
+ "signal-exit": "^4.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "signal-exit": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+
+
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "form-data": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+
+
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "asynckit": "^0.4.0",
+
+
+ "combined-stream": "^1.0.8",
+
+
+ "mime-types": "^2.1.12"
+
+
+ }
+
+
+ },
+
+
+ "formidable": {
+
+
+ "version": "2.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz",
+
+
+ "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==",
+
+
+ "requires": {
+
+
+ "dezalgo": "^1.0.4",
+
+
+ "hexoid": "^1.0.0",
+
+
+ "once": "^1.4.0",
+
+
+ "qs": "^6.11.0"
+
+
+ }
+
+
+ },
+
+
+ "formstream": {
+
+
+ "version": "1.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/formstream/-/formstream-1.3.1.tgz",
+
+
+ "integrity": "sha512-FkW++ub+VbE5dpwukJVDizNWhSgp8FhmhI65pF7BZSVStBqe6Wgxe2Z9/Vhsn7l7nXCPwP+G1cyYlX8VwWOf0g==",
+
+
+ "requires": {
+
+
+ "destroy": "^1.0.4",
+
+
+ "mime": "^2.5.2",
+
+
+ "pause-stream": "~0.0.11"
+
+
+ }
+
+
+ },
+
+
+ "fresh": {
+
+
+ "version": "0.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+
+
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
+
+
+ },
+
+
+ "fs-constants": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+
+
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "fs-extra": {
+
+
+ "version": "10.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+
+
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+
+
+ "requires": {
+
+
+ "graceful-fs": "^4.2.0",
+
+
+ "jsonfile": "^6.0.1",
+
+
+ "universalify": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "fs-minipass": {
+
+
+ "version": "3.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz",
+
+
+ "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minipass": "^7.0.3"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "minipass": {
+
+
+ "version": "7.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+
+
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "fs.realpath": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+
+
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+
+
+ },
+
+
+ "fsevents": {
+
+
+ "version": "2.3.3",
+
+
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+
+
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "function-bind": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+
+
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
+
+
+ },
+
+
+ "functional-red-black-tree": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+
+
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "gauge": {
+
+
+ "version": "4.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
+
+
+ "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "aproba": "^1.0.3 || ^2.0.0",
+
+
+ "color-support": "^1.1.3",
+
+
+ "console-control-strings": "^1.1.0",
+
+
+ "has-unicode": "^2.0.1",
+
+
+ "signal-exit": "^3.0.7",
+
+
+ "string-width": "^4.2.3",
+
+
+ "strip-ansi": "^6.0.1",
+
+
+ "wide-align": "^1.1.5"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "get-caller-file": {
+
+
+ "version": "2.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+
+
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "get-intrinsic": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+
+
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+
+
+ "requires": {
+
+
+ "function-bind": "^1.1.1",
+
+
+ "has": "^1.0.3",
+
+
+ "has-proto": "^1.0.1",
+
+
+ "has-symbols": "^1.0.3"
+
+
+ }
+
+
+ },
+
+
+ "get-stream": {
+
+
+ "version": "5.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+
+
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+
+
+ "requires": {
+
+
+ "pump": "^3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "github-from-package": {
+
+
+ "version": "0.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+
+
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "glob": {
+
+
+ "version": "7.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+
+
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+
+
+ "requires": {
+
+
+ "fs.realpath": "^1.0.0",
+
+
+ "inflight": "^1.0.4",
+
+
+ "inherits": "2",
+
+
+ "minimatch": "^3.1.1",
+
+
+ "once": "^1.3.0",
+
+
+ "path-is-absolute": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "glob-parent": {
+
+
+ "version": "5.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+
+
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+
+
+ "requires": {
+
+
+ "is-glob": "^4.0.1"
+
+
+ }
+
+
+ },
+
+
+ "global-agent": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz",
+
+
+ "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "boolean": "^3.0.1",
+
+
+ "es6-error": "^4.1.1",
+
+
+ "matcher": "^3.0.0",
+
+
+ "roarr": "^2.15.3",
+
+
+ "semver": "^7.3.2",
+
+
+ "serialize-error": "^7.0.1"
+
+
+ }
+
+
+ },
+
+
+ "global-tunnel-ng": {
+
+
+ "version": "2.7.1",
+
+
+ "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz",
+
+
+ "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "encodeurl": "^1.0.2",
+
+
+ "lodash": "^4.17.10",
+
+
+ "npm-conf": "^1.1.3",
+
+
+ "tunnel": "^0.0.6"
+
+
+ }
+
+
+ },
+
+
+ "globals": {
+
+
+ "version": "11.12.0",
+
+
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+
+
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "globalthis": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+
+
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "define-properties": "^1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "globby": {
+
+
+ "version": "10.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz",
+
+
+ "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==",
+
+
+ "requires": {
+
+
+ "@types/glob": "^7.1.1",
+
+
+ "array-union": "^2.1.0",
+
+
+ "dir-glob": "^3.0.1",
+
+
+ "fast-glob": "^3.0.3",
+
+
+ "glob": "^7.1.3",
+
+
+ "ignore": "^5.1.1",
+
+
+ "merge2": "^1.2.3",
+
+
+ "slash": "^3.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ignore": {
+
+
+ "version": "5.2.4",
+
+
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+
+
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "gopd": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+
+
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "get-intrinsic": "^1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "got": {
+
+
+ "version": "11.8.6",
+
+
+ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
+
+
+ "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@sindresorhus/is": "^4.0.0",
+
+
+ "@szmarczak/http-timer": "^4.0.5",
+
+
+ "@types/cacheable-request": "^6.0.1",
+
+
+ "@types/responselike": "^1.0.0",
+
+
+ "cacheable-lookup": "^5.0.3",
+
+
+ "cacheable-request": "^7.0.2",
+
+
+ "decompress-response": "^6.0.0",
+
+
+ "http2-wrapper": "^1.0.0-beta.5.2",
+
+
+ "lowercase-keys": "^2.0.0",
+
+
+ "p-cancelable": "^2.0.0",
+
+
+ "responselike": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "graceful-fs": {
+
+
+ "version": "4.2.11",
+
+
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+
+
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+
+
+ },
+
+
+ "graceful-readlink": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+
+
+ "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "has": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
+
+
+ "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ=="
+
+
+ },
+
+
+ "has-flag": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+
+
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+
+
+ },
+
+
+ "has-property-descriptors": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+
+
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "get-intrinsic": "^1.1.1"
+
+
+ }
+
+
+ },
+
+
+ "has-proto": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+
+
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
+
+
+ },
+
+
+ "has-symbols": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+
+
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+
+
+ },
+
+
+ "has-tostringtag": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+
+
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+
+
+ "requires": {
+
+
+ "has-symbols": "^1.0.2"
+
+
+ }
+
+
+ },
+
+
+ "has-unicode": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+
+
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "hexoid": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
+
+
+ "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g=="
+
+
+ },
+
+
+ "hosted-git-info": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+
+
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "lru-cache": "^6.0.0"
+
+
+ }
+
+
+ },
+
+
+ "http-assert": {
+
+
+ "version": "1.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz",
+
+
+ "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==",
+
+
+ "requires": {
+
+
+ "deep-equal": "~1.0.1",
+
+
+ "http-errors": "~1.8.0"
+
+
+ }
+
+
+ },
+
+
+ "http-cache-semantics": {
+
+
+ "version": "4.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+
+
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "http-errors": {
+
+
+ "version": "1.8.1",
+
+
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+
+
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+
+
+ "requires": {
+
+
+ "depd": "~1.1.2",
+
+
+ "inherits": "2.0.4",
+
+
+ "setprototypeof": "1.2.0",
+
+
+ "statuses": ">= 1.5.0 < 2",
+
+
+ "toidentifier": "1.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "depd": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+
+
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "http-proxy-agent": {
+
+
+ "version": "5.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
+
+
+ "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@tootallnate/once": "2",
+
+
+ "agent-base": "6",
+
+
+ "debug": "4"
+
+
+ }
+
+
+ },
+
+
+ "http2-wrapper": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
+
+
+ "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "quick-lru": "^5.1.1",
+
+
+ "resolve-alpn": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "https-proxy-agent": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+
+
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "agent-base": "6",
+
+
+ "debug": "4"
+
+
+ }
+
+
+ },
+
+
+ "human-signals": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+
+
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw=="
+
+
+ },
+
+
+ "humanize-ms": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+
+
+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+
+
+ "requires": {
+
+
+ "ms": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "icon-gen": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/icon-gen/-/icon-gen-4.0.0.tgz",
+
+
+ "integrity": "sha512-31B1AFpMHeVxrx0IWr8ch17+SHHsdPLxr293ZhefHA+WaNW20vZUfr/3GfTN/oV3DuO+yphgwMvZc78/bzfA4g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "commander": "^8.3.0",
+
+
+ "pngjs": "^7.0.0",
+
+
+ "sharp": "^0.32.4"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "commander": {
+
+
+ "version": "8.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+
+
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "iconv-corefoundation": {
+
+
+ "version": "1.1.7",
+
+
+ "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz",
+
+
+ "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "cli-truncate": "^2.1.0",
+
+
+ "node-addon-api": "^1.6.3"
+
+
+ }
+
+
+ },
+
+
+ "iconv-lite": {
+
+
+ "version": "0.4.24",
+
+
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+
+
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+
+
+ "requires": {
+
+
+ "safer-buffer": ">= 2.1.2 < 3"
+
+
+ }
+
+
+ },
+
+
+ "ieee754": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+
+
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "ignore": {
+
+
+ "version": "4.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+
+
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "ignore-by-default": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+
+
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "import-fresh": {
+
+
+ "version": "3.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+
+
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "parent-module": "^1.0.0",
+
+
+ "resolve-from": "^4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "imurmurhash": {
+
+
+ "version": "0.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+
+
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "indent-string": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+
+
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "inflation": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz",
+
+
+ "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw=="
+
+
+ },
+
+
+ "inflight": {
+
+
+ "version": "1.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+
+
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+
+
+ "requires": {
+
+
+ "once": "^1.3.0",
+
+
+ "wrappy": "1"
+
+
+ }
+
+
+ },
+
+
+ "inherits": {
+
+
+ "version": "2.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+
+
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+
+
+ },
+
+
+ "ini": {
+
+
+ "version": "1.3.8",
+
+
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+
+
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "inquirer": {
+
+
+ "version": "6.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+
+
+ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-escapes": "^3.2.0",
+
+
+ "chalk": "^2.4.2",
+
+
+ "cli-cursor": "^2.1.0",
+
+
+ "cli-width": "^2.0.0",
+
+
+ "external-editor": "^3.0.3",
+
+
+ "figures": "^2.0.0",
+
+
+ "lodash": "^4.17.12",
+
+
+ "mute-stream": "0.0.7",
+
+
+ "run-async": "^2.2.0",
+
+
+ "rxjs": "^6.4.0",
+
+
+ "string-width": "^2.1.0",
+
+
+ "strip-ansi": "^5.1.0",
+
+
+ "through": "^2.3.6"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ }
+
+
+ },
+
+
+ "chalk": {
+
+
+ "version": "2.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+
+
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-styles": "^3.2.1",
+
+
+ "escape-string-regexp": "^1.0.5",
+
+
+ "supports-color": "^5.3.0"
+
+
+ }
+
+
+ },
+
+
+ "color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "is-fullwidth-code-point": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+
+
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "string-width": {
+
+
+ "version": "2.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+
+
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "is-fullwidth-code-point": "^2.0.0",
+
+
+ "strip-ansi": "^4.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "strip-ansi": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+
+
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^3.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "5.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+
+
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^4.1.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "4.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+
+
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "inversify": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/inversify/-/inversify-6.0.1.tgz",
+
+
+ "integrity": "sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "ip": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+
+
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "is-arguments": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+
+
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "call-bind": "^1.0.2",
+
+
+ "has-tostringtag": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "is-arrayish": {
+
+
+ "version": "0.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+
+
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "is-binary-path": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+
+
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "binary-extensions": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "is-buffer": {
+
+
+ "version": "1.1.6",
+
+
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+
+
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "is-callable": {
+
+
+ "version": "1.2.7",
+
+
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+
+
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "is-ci": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+
+
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ci-info": "^3.2.0"
+
+
+ }
+
+
+ },
+
+
+ "is-class-hotfix": {
+
+
+ "version": "0.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/is-class-hotfix/-/is-class-hotfix-0.0.6.tgz",
+
+
+ "integrity": "sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ=="
+
+
+ },
+
+
+ "is-extendable": {
+
+
+ "version": "0.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+
+
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
+
+
+ },
+
+
+ "is-extglob": {
+
+
+ "version": "2.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+
+
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
+
+
+ },
+
+
+ "is-fullwidth-code-point": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+
+
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "is-generator-function": {
+
+
+ "version": "1.0.10",
+
+
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+
+
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+
+
+ "requires": {
+
+
+ "has-tostringtag": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "is-glob": {
+
+
+ "version": "4.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+
+
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+
+
+ "requires": {
+
+
+ "is-extglob": "^2.1.1"
+
+
+ }
+
+
+ },
+
+
+ "is-interactive": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+
+
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "is-lambda": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+
+
+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "is-nan": {
+
+
+ "version": "1.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
+
+
+ "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "call-bind": "^1.0.0",
+
+
+ "define-properties": "^1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "is-number": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+
+
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+
+
+ },
+
+
+ "is-stream": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+
+
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+
+
+ },
+
+
+ "is-type-of": {
+
+
+ "version": "1.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-type-of/-/is-type-of-1.4.0.tgz",
+
+
+ "integrity": "sha512-EddYllaovi5ysMLMEN7yzHEKh8A850cZ7pykrY1aNRQGn/CDjRDE9qEWbIdt7xGEVJmjBXzU/fNnC4ABTm8tEQ==",
+
+
+ "requires": {
+
+
+ "core-util-is": "^1.0.2",
+
+
+ "is-class-hotfix": "~0.0.6",
+
+
+ "isstream": "~0.1.2"
+
+
+ }
+
+
+ },
+
+
+ "is-typed-array": {
+
+
+ "version": "1.1.12",
+
+
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
+
+
+ "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "which-typed-array": "^1.1.11"
+
+
+ }
+
+
+ },
+
+
+ "is-unicode-supported": {
+
+
+ "version": "0.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+
+
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "isbinaryfile": {
+
+
+ "version": "4.0.10",
+
+
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
+
+
+ "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "isexe": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+
+
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+
+
+ },
+
+
+ "isstream": {
+
+
+ "version": "0.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+
+
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
+
+
+ },
+
+
+ "jackspeak": {
+
+
+ "version": "2.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
+
+
+ "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@isaacs/cliui": "^8.0.2",
+
+
+ "@pkgjs/parseargs": "^0.11.0"
+
+
+ }
+
+
+ },
+
+
+ "jake": {
+
+
+ "version": "10.8.7",
+
+
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
+
+
+ "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "async": "^3.2.3",
+
+
+ "chalk": "^4.0.2",
+
+
+ "filelist": "^1.0.4",
+
+
+ "minimatch": "^3.1.2"
+
+
+ }
+
+
+ },
+
+
+ "javascript-obfuscator": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.1.0.tgz",
+
+
+ "integrity": "sha512-ckC0VFKQ0/sFtLH9apW/ZLfsP8LuZqZhVEM4VTJ5KLzyLaodW6C1lTU8808eboDmddKyvd2uyRx5bzc0Me0GYg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@javascript-obfuscator/escodegen": "2.3.0",
+
+
+ "@javascript-obfuscator/estraverse": "5.4.0",
+
+
+ "acorn": "8.8.2",
+
+
+ "assert": "2.0.0",
+
+
+ "chalk": "4.1.2",
+
+
+ "chance": "1.1.9",
+
+
+ "class-validator": "0.14.0",
+
+
+ "commander": "10.0.0",
+
+
+ "eslint-scope": "7.1.1",
+
+
+ "eslint-visitor-keys": "3.3.0",
+
+
+ "fast-deep-equal": "3.1.3",
+
+
+ "inversify": "6.0.1",
+
+
+ "js-string-escape": "1.0.1",
+
+
+ "md5": "2.3.0",
+
+
+ "mkdirp": "2.1.3",
+
+
+ "multimatch": "5.0.0",
+
+
+ "opencollective-postinstall": "2.0.3",
+
+
+ "process": "0.11.10",
+
+
+ "reflect-metadata": "0.1.13",
+
+
+ "source-map-support": "0.5.21",
+
+
+ "string-template": "1.0.0",
+
+
+ "stringz": "2.1.0",
+
+
+ "tslib": "2.5.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "acorn": {
+
+
+ "version": "8.8.2",
+
+
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+
+
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "commander": {
+
+
+ "version": "10.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
+
+
+ "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "eslint-scope": {
+
+
+ "version": "7.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+
+
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "esrecurse": "^4.3.0",
+
+
+ "estraverse": "^5.2.0"
+
+
+ }
+
+
+ },
+
+
+ "eslint-visitor-keys": {
+
+
+ "version": "3.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+
+
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "estraverse": {
+
+
+ "version": "5.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+
+
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "mkdirp": {
+
+
+ "version": "2.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz",
+
+
+ "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "js-string-escape": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
+
+
+ "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "js-tokens": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+
+
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "js-yaml": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+
+
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+
+
+ "requires": {
+
+
+ "argparse": "^2.0.1"
+
+
+ }
+
+
+ },
+
+
+ "json-buffer": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+
+
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "json-schema-traverse": {
+
+
+ "version": "0.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+
+
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "json-stable-stringify-without-jsonify": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+
+
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "json-stringify-safe": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+
+
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "json5": {
+
+
+ "version": "2.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+
+
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "jsonfile": {
+
+
+ "version": "6.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+
+
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+
+
+ "requires": {
+
+
+ "graceful-fs": "^4.1.6",
+
+
+ "universalify": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "keygrip": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
+
+
+ "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
+
+
+ "requires": {
+
+
+ "tsscmp": "1.0.6"
+
+
+ }
+
+
+ },
+
+
+ "keyv": {
+
+
+ "version": "4.5.4",
+
+
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+
+
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "json-buffer": "3.0.1"
+
+
+ }
+
+
+ },
+
+
+ "koa": {
+
+
+ "version": "2.14.2",
+
+
+ "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz",
+
+
+ "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==",
+
+
+ "requires": {
+
+
+ "accepts": "^1.3.5",
+
+
+ "cache-content-type": "^1.0.0",
+
+
+ "content-disposition": "~0.5.2",
+
+
+ "content-type": "^1.0.4",
+
+
+ "cookies": "~0.8.0",
+
+
+ "debug": "^4.3.2",
+
+
+ "delegates": "^1.0.0",
+
+
+ "depd": "^2.0.0",
+
+
+ "destroy": "^1.0.4",
+
+
+ "encodeurl": "^1.0.2",
+
+
+ "escape-html": "^1.0.3",
+
+
+ "fresh": "~0.5.2",
+
+
+ "http-assert": "^1.3.0",
+
+
+ "http-errors": "^1.6.3",
+
+
+ "is-generator-function": "^1.0.7",
+
+
+ "koa-compose": "^4.1.0",
+
+
+ "koa-convert": "^2.0.0",
+
+
+ "on-finished": "^2.3.0",
+
+
+ "only": "~0.0.2",
+
+
+ "parseurl": "^1.3.2",
+
+
+ "statuses": "^1.5.0",
+
+
+ "type-is": "^1.6.16",
+
+
+ "vary": "^1.1.2"
+
+
+ }
+
+
+ },
+
+
+ "koa-body": {
+
+
+ "version": "5.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/koa-body/-/koa-body-5.0.0.tgz",
+
+
+ "integrity": "sha512-nHwEODrQGiyKBILCWO8QSS40C87cKr2cp3y/Cw8u9Z8w5t0CdSkGm3+y9WK5BIAlPpo9tTw5RtSbxpVyG79vmw==",
+
+
+ "requires": {
+
+
+ "@types/formidable": "^2.0.4",
+
+
+ "co-body": "^5.1.1",
+
+
+ "formidable": "^2.0.1"
+
+
+ }
+
+
+ },
+
+
+ "koa-compose": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
+
+
+ "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="
+
+
+ },
+
+
+ "koa-convert": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz",
+
+
+ "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==",
+
+
+ "requires": {
+
+
+ "co": "^4.6.0",
+
+
+ "koa-compose": "^4.1.0"
+
+
+ }
+
+
+ },
+
+
+ "koa-send": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz",
+
+
+ "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==",
+
+
+ "requires": {
+
+
+ "debug": "^4.1.1",
+
+
+ "http-errors": "^1.7.3",
+
+
+ "resolve-path": "^1.4.0"
+
+
+ }
+
+
+ },
+
+
+ "koa-static": {
+
+
+ "version": "5.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz",
+
+
+ "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==",
+
+
+ "requires": {
+
+
+ "debug": "^3.1.0",
+
+
+ "koa-send": "^5.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "debug": {
+
+
+ "version": "3.2.7",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+
+
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+
+
+ "requires": {
+
+
+ "ms": "^2.1.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "koa2-cors": {
+
+
+ "version": "2.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/koa2-cors/-/koa2-cors-2.0.6.tgz",
+
+
+ "integrity": "sha512-JRCcSM4lamM+8kvKGDKlesYk2ASrmSTczDtGUnIadqMgnHU4Ct5Gw7Bxt3w3m6d6dy3WN0PU4oMP43HbddDEWg=="
+
+
+ },
+
+
+ "lazy-val": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz",
+
+
+ "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q=="
+
+
+ },
+
+
+ "levn": {
+
+
+ "version": "0.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+
+
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "prelude-ls": "~1.1.2",
+
+
+ "type-check": "~0.3.2"
+
+
+ }
+
+
+ },
+
+
+ "libphonenumber-js": {
+
+
+ "version": "1.10.47",
+
+
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.47.tgz",
+
+
+ "integrity": "sha512-b4t7VQDV29xx/ni+58yl9KWPGjnDLDXCeCTLrD4V8vDpObXZRZBrg7uX/HWZ7YXiJKqdBDGgc+barUUTNB6Slw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "lodash": {
+
+
+ "version": "4.17.21",
+
+
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+
+
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+
+
+ },
+
+
+ "lodash.escaperegexp": {
+
+
+ "version": "4.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
+
+
+ "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="
+
+
+ },
+
+
+ "lodash.isequal": {
+
+
+ "version": "4.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+
+
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+
+
+ },
+
+
+ "log-symbols": {
+
+
+ "version": "4.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+
+
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "chalk": "^4.1.0",
+
+
+ "is-unicode-supported": "^0.1.0"
+
+
+ }
+
+
+ },
+
+
+ "loudness": {
+
+
+ "version": "0.4.2",
+
+
+ "resolved": "https://registry.npmjs.org/loudness/-/loudness-0.4.2.tgz",
+
+
+ "integrity": "sha512-D+1opqDjcpAdyv0JVt5KJju/4f6yLs/tqcDj8LCrtZciYMtD4I2I4brByt9nZkfU5bnnnHsLFPtBBDpv2oamkg==",
+
+
+ "requires": {
+
+
+ "execa": "^4.0.3"
+
+
+ }
+
+
+ },
+
+
+ "lowercase-keys": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+
+
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "lru-cache": {
+
+
+ "version": "6.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+
+
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+
+
+ "requires": {
+
+
+ "yallist": "^4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "make-fetch-happen": {
+
+
+ "version": "11.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz",
+
+
+ "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "agentkeepalive": "^4.2.1",
+
+
+ "cacache": "^17.0.0",
+
+
+ "http-cache-semantics": "^4.1.1",
+
+
+ "http-proxy-agent": "^5.0.0",
+
+
+ "https-proxy-agent": "^5.0.0",
+
+
+ "is-lambda": "^1.0.1",
+
+
+ "lru-cache": "^7.7.1",
+
+
+ "minipass": "^5.0.0",
+
+
+ "minipass-fetch": "^3.0.0",
+
+
+ "minipass-flush": "^1.0.5",
+
+
+ "minipass-pipeline": "^1.2.4",
+
+
+ "negotiator": "^0.6.3",
+
+
+ "promise-retry": "^2.0.1",
+
+
+ "socks-proxy-agent": "^7.0.0",
+
+
+ "ssri": "^10.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "lru-cache": {
+
+
+ "version": "7.18.3",
+
+
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+
+
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "matcher": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
+
+
+ "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "escape-string-regexp": "^4.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "escape-string-regexp": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+
+
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "md5": {
+
+
+ "version": "2.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
+
+
+ "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "charenc": "0.0.2",
+
+
+ "crypt": "0.0.2",
+
+
+ "is-buffer": "~1.1.6"
+
+
+ }
+
+
+ },
+
+
+ "media-typer": {
+
+
+ "version": "0.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+
+
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
+
+
+ },
+
+
+ "merge-stream": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+
+
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
+
+
+ },
+
+
+ "merge2": {
+
+
+ "version": "1.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+
+
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+
+
+ },
+
+
+ "micromatch": {
+
+
+ "version": "4.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+
+
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+
+
+ "requires": {
+
+
+ "braces": "^3.0.2",
+
+
+ "picomatch": "^2.3.1"
+
+
+ }
+
+
+ },
+
+
+ "mime": {
+
+
+ "version": "2.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+
+
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="
+
+
+ },
+
+
+ "mime-db": {
+
+
+ "version": "1.52.0",
+
+
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+
+
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+
+
+ },
+
+
+ "mime-types": {
+
+
+ "version": "2.1.35",
+
+
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+
+
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+
+
+ "requires": {
+
+
+ "mime-db": "1.52.0"
+
+
+ }
+
+
+ },
+
+
+ "mimic-fn": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+
+
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "mimic-response": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+
+
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "minimatch": {
+
+
+ "version": "3.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+
+
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+
+
+ "requires": {
+
+
+ "brace-expansion": "^1.1.7"
+
+
+ }
+
+
+ },
+
+
+ "minimist": {
+
+
+ "version": "1.2.8",
+
+
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+
+
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
+
+
+ },
+
+
+ "minipass": {
+
+
+ "version": "5.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+
+
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "minipass-collect": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+
+
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minipass": "^3.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "yallist": "^4.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "minipass-fetch": {
+
+
+ "version": "3.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz",
+
+
+ "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "encoding": "^0.1.13",
+
+
+ "minipass": "^7.0.3",
+
+
+ "minipass-sized": "^1.0.3",
+
+
+ "minizlib": "^2.1.2"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "minipass": {
+
+
+ "version": "7.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+
+
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "minipass-flush": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+
+
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minipass": "^3.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "yallist": "^4.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "minipass-pipeline": {
+
+
+ "version": "1.2.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+
+
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minipass": "^3.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "yallist": "^4.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "minipass-sized": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+
+
+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minipass": "^3.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "yallist": "^4.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "minizlib": {
+
+
+ "version": "2.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+
+
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minipass": "^3.0.0",
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "yallist": "^4.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "mkdirp": {
+
+
+ "version": "2.1.6",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz",
+
+
+ "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A=="
+
+
+ },
+
+
+ "mkdirp-classic": {
+
+
+ "version": "0.5.3",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+
+
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "modbus-serial": {
+
+
+ "version": "8.0.13",
+
+
+ "resolved": "https://registry.npmjs.org/modbus-serial/-/modbus-serial-8.0.13.tgz",
+
+
+ "integrity": "sha512-h/kEtN2aB4zfMic7H+Afg/LWlb0oHbMzo4cKlebGxUXimpe33TptDy6L9f4o/cg0BQrzEPV72RSH64PX3fgWTw==",
+
+
+ "requires": {
+
+
+ "debug": "^4.1.1",
+
+
+ "serialport": "^11.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "@serialport/bindings-cpp": {
+
+
+ "version": "11.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/bindings-cpp/-/bindings-cpp-11.0.3.tgz",
+
+
+ "integrity": "sha512-xgNDJ7pHHZCJMoDsEH+D8q5CV+V3RGN4/jLEG9SQ7q6kh+o03axV0l/upPHZ0HW4tTXpGgqPIGbXOTrD4RGQQA==",
+
+
+ "requires": {
+
+
+ "@serialport/bindings-interface": "1.2.2",
+
+
+ "@serialport/parser-readline": "11.0.0",
+
+
+ "debug": "4.3.4",
+
+
+ "node-addon-api": "6.1.0",
+
+
+ "node-gyp-build": "4.6.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "@serialport/parser-delimiter": {
+
+
+ "version": "11.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-11.0.0.tgz",
+
+
+ "integrity": "sha512-aZLJhlRTjSmEwllLG7S4J8s8ctRAS0cbvCpO87smLvl3e4BgzbVgF6Z6zaJd3Aji2uSiYgfedCdNc4L6W+1E2g=="
+
+
+ },
+
+
+ "@serialport/parser-readline": {
+
+
+ "version": "11.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-11.0.0.tgz",
+
+
+ "integrity": "sha512-rRAivhRkT3YO28WjmmG4FQX6L+KMb5/ikhyylRfzWPw0nSXy97+u07peS9CbHqaNvJkMhH1locp2H36aGMOEIA==",
+
+
+ "requires": {
+
+
+ "@serialport/parser-delimiter": "11.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "@serialport/parser-byte-length": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-11.0.1.tgz",
+
+
+ "integrity": "sha512-UsffR5b3NHwhjJzsWv5fZMkoq3wGNyUcRTA9jlu02w+2kMlBRJPzlPVB5szVX0VWUEqkCg+3VaU2XWuYr+uAUA=="
+
+
+ },
+
+
+ "@serialport/parser-cctalk": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-11.0.1.tgz",
+
+
+ "integrity": "sha512-klzVQfRcC1m0SVDV2Dy9hHfwweO2/mUMUyuXK04FRkKHy5/AdETmk9KTVVVVfpDCSysvHoyQPwiDFq8ddwX3cQ=="
+
+
+ },
+
+
+ "@serialport/parser-delimiter": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-11.0.1.tgz",
+
+
+ "integrity": "sha512-NAsYa3OFt2xEnj/+0BRkQP2qkRNbXBPEq6uFJEdNdzcTSF+BTRXkoIRrWBq3N6koovPqW6lnbxc/iJYe5AX/2Q=="
+
+
+ },
+
+
+ "@serialport/parser-inter-byte-timeout": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-11.0.1.tgz",
+
+
+ "integrity": "sha512-PEFV9dSpW+ptH1rLhdB9KgE+rbJ/FvQiZz0mx+4jkv/Po4g3PNsEEMXfMW0aQVSFVsmitvmE0jHlhGjLv8GQEg=="
+
+
+ },
+
+
+ "@serialport/parser-packet-length": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-packet-length/-/parser-packet-length-11.0.1.tgz",
+
+
+ "integrity": "sha512-KwPu8dsAI+eN4fnUS1vVmrOpUtBK4p9L9cHhwn5ZmfcvwvZMHp/J+IEu7xH0g5aM1/8QEoaql26BQP+sZ71NQQ=="
+
+
+ },
+
+
+ "@serialport/parser-readline": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-11.0.1.tgz",
+
+
+ "integrity": "sha512-wkJ3EI733+yhbi7eBWzs/qn8+cfIBcYQjfrILPNqslAy6VlgdKw+pHoblDFmg78GN0TqGUDSWlTJ65oLEPVp5Q==",
+
+
+ "requires": {
+
+
+ "@serialport/parser-delimiter": "11.0.1"
+
+
+ }
+
+
+ },
+
+
+ "@serialport/parser-ready": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-11.0.1.tgz",
+
+
+ "integrity": "sha512-v/bvlgKhrNt+SVLSqlfXCO1HEinfRRMGnzqbpdVCgu2SiWIEenCLjs51JisKVYQoQFcXdP/EHZnzm7NPXHDlAg=="
+
+
+ },
+
+
+ "@serialport/parser-regex": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-11.0.1.tgz",
+
+
+ "integrity": "sha512-Lf3k7qibYqZ0+/wX3UA8fRng3WtQ+UyLpjQhG1COs6OBSq5/I5tYXczfhlrbA0gHo1qzgzr2V2t7m6FoBSc81Q=="
+
+
+ },
+
+
+ "@serialport/parser-slip-encoder": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-slip-encoder/-/parser-slip-encoder-11.0.1.tgz",
+
+
+ "integrity": "sha512-l4mXsAGzpmPO7+uqKJqtPDW643irfnGEWbiy34FoYvuOs8n0SmiMtgQZFAtvlTNQCRWE2tykF/WG6K/McJthDw=="
+
+
+ },
+
+
+ "@serialport/parser-spacepacket": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/parser-spacepacket/-/parser-spacepacket-11.0.1.tgz",
+
+
+ "integrity": "sha512-Lq7fXoOsLOMo4XEt9HB31zV5LhrteXlsOy2o6r39TfRwU6x8Nou9jQMA9vW0a6yPra5zwsHIaNrA6tDOGj2Ozg=="
+
+
+ },
+
+
+ "@serialport/stream": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-11.0.1.tgz",
+
+
+ "integrity": "sha512-6pjyKRg8MQuvhGfg36+PF7K5eGNQcEswCSiAg1UPilqqFS8X1QnaiSCn5UFp/hCN+pAtlFjkOi0ztvtmSI7n4g==",
+
+
+ "requires": {
+
+
+ "@serialport/bindings-interface": "1.2.2",
+
+
+ "debug": "4.3.4"
+
+
+ }
+
+
+ },
+
+
+ "node-addon-api": {
+
+
+ "version": "6.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+
+
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
+
+
+ },
+
+
+ "serialport": {
+
+
+ "version": "11.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/serialport/-/serialport-11.0.1.tgz",
+
+
+ "integrity": "sha512-j/ntDuewAkqL6g5wKjwV2RTyLBL9cpob8aRd3yLAViYApTsJoYqRleyuzst0OboNTBjBsoxQ4YKYhuYHi1XViQ==",
+
+
+ "requires": {
+
+
+ "@serialport/binding-mock": "10.2.2",
+
+
+ "@serialport/bindings-cpp": "11.0.3",
+
+
+ "@serialport/parser-byte-length": "11.0.1",
+
+
+ "@serialport/parser-cctalk": "11.0.1",
+
+
+ "@serialport/parser-delimiter": "11.0.1",
+
+
+ "@serialport/parser-inter-byte-timeout": "11.0.1",
+
+
+ "@serialport/parser-packet-length": "11.0.1",
+
+
+ "@serialport/parser-readline": "11.0.1",
+
+
+ "@serialport/parser-ready": "11.0.1",
+
+
+ "@serialport/parser-regex": "11.0.1",
+
+
+ "@serialport/parser-slip-encoder": "11.0.1",
+
+
+ "@serialport/parser-spacepacket": "11.0.1",
+
+
+ "@serialport/stream": "11.0.1",
+
+
+ "debug": "4.3.4"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "moment": {
+
+
+ "version": "2.29.4",
+
+
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+
+
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
+
+
+ },
+
+
+ "ms": {
+
+
+ "version": "2.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+
+
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+
+
+ },
+
+
+ "multimatch": {
+
+
+ "version": "5.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
+
+
+ "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@types/minimatch": "^3.0.3",
+
+
+ "array-differ": "^3.0.0",
+
+
+ "array-union": "^2.1.0",
+
+
+ "arrify": "^2.0.1",
+
+
+ "minimatch": "^3.0.4"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "@types/minimatch": {
+
+
+ "version": "3.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
+
+
+ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "mute-stream": {
+
+
+ "version": "0.0.7",
+
+
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+
+
+ "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "mz": {
+
+
+ "version": "2.7.0",
+
+
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+
+
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+
+
+ "requires": {
+
+
+ "any-promise": "^1.0.0",
+
+
+ "object-assign": "^4.0.1",
+
+
+ "thenify-all": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "napi-build-utils": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+
+
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "natural-compare": {
+
+
+ "version": "1.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+
+
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "negotiator": {
+
+
+ "version": "0.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+
+
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
+
+
+ },
+
+
+ "nice-try": {
+
+
+ "version": "1.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+
+
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "node-abi": {
+
+
+ "version": "3.50.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.50.0.tgz",
+
+
+ "integrity": "sha512-2Gxu7Eq7vnBIRfYSmqPruEllMM14FjOQFJSoqdGWthVn+tmwEXzmdPpya6cvvwf0uZA3F5N1fMFr9mijZBplFA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "semver": "^7.3.5"
+
+
+ }
+
+
+ },
+
+
+ "node-addon-api": {
+
+
+ "version": "1.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz",
+
+
+ "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "node-api-version": {
+
+
+ "version": "0.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.1.4.tgz",
+
+
+ "integrity": "sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "semver": "^7.3.5"
+
+
+ }
+
+
+ },
+
+
+ "node-gyp": {
+
+
+ "version": "9.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz",
+
+
+ "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "env-paths": "^2.2.0",
+
+
+ "exponential-backoff": "^3.1.1",
+
+
+ "glob": "^7.1.4",
+
+
+ "graceful-fs": "^4.2.6",
+
+
+ "make-fetch-happen": "^11.0.3",
+
+
+ "nopt": "^6.0.0",
+
+
+ "npmlog": "^6.0.0",
+
+
+ "rimraf": "^3.0.2",
+
+
+ "semver": "^7.3.5",
+
+
+ "tar": "^6.1.2",
+
+
+ "which": "^2.0.2"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "rimraf": {
+
+
+ "version": "3.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+
+
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "glob": "^7.1.3"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "node-gyp-build": {
+
+
+ "version": "4.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
+
+
+ "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ=="
+
+
+ },
+
+
+ "nodemon": {
+
+
+ "version": "2.0.22",
+
+
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz",
+
+
+ "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "chokidar": "^3.5.2",
+
+
+ "debug": "^3.2.7",
+
+
+ "ignore-by-default": "^1.0.1",
+
+
+ "minimatch": "^3.1.2",
+
+
+ "pstree.remy": "^1.1.8",
+
+
+ "semver": "^5.7.1",
+
+
+ "simple-update-notifier": "^1.0.7",
+
+
+ "supports-color": "^5.5.0",
+
+
+ "touch": "^3.1.0",
+
+
+ "undefsafe": "^2.0.5"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "debug": {
+
+
+ "version": "3.2.7",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+
+
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ms": "^2.1.1"
+
+
+ }
+
+
+ },
+
+
+ "has-flag": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+
+
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "semver": {
+
+
+ "version": "5.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+
+
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "supports-color": {
+
+
+ "version": "5.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+
+
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "has-flag": "^3.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "nopt": {
+
+
+ "version": "6.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz",
+
+
+ "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "abbrev": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "normalize-path": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+
+
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "normalize-url": {
+
+
+ "version": "6.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+
+
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "npm-conf": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
+
+
+ "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "config-chain": "^1.1.11",
+
+
+ "pify": "^3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "npm-run-path": {
+
+
+ "version": "4.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+
+
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+
+
+ "requires": {
+
+
+ "path-key": "^3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "npmlog": {
+
+
+ "version": "6.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
+
+
+ "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "are-we-there-yet": "^3.0.0",
+
+
+ "console-control-strings": "^1.1.0",
+
+
+ "gauge": "^4.0.3",
+
+
+ "set-blocking": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "object-assign": {
+
+
+ "version": "4.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+
+
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
+
+
+ },
+
+
+ "object-inspect": {
+
+
+ "version": "1.12.3",
+
+
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+
+
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
+
+
+ },
+
+
+ "object-is": {
+
+
+ "version": "1.1.5",
+
+
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
+
+
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "call-bind": "^1.0.2",
+
+
+ "define-properties": "^1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "object-keys": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+
+
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "on-finished": {
+
+
+ "version": "2.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+
+
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+
+
+ "requires": {
+
+
+ "ee-first": "1.1.1"
+
+
+ }
+
+
+ },
+
+
+ "once": {
+
+
+ "version": "1.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+
+
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+
+
+ "requires": {
+
+
+ "wrappy": "1"
+
+
+ }
+
+
+ },
+
+
+ "onetime": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+
+
+ "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "mimic-fn": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "only": {
+
+
+ "version": "0.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz",
+
+
+ "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ=="
+
+
+ },
+
+
+ "opencollective-postinstall": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+
+
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "optionator": {
+
+
+ "version": "0.8.3",
+
+
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+
+
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "deep-is": "~0.1.3",
+
+
+ "fast-levenshtein": "~2.0.6",
+
+
+ "levn": "~0.3.0",
+
+
+ "prelude-ls": "~1.1.2",
+
+
+ "type-check": "~0.3.2",
+
+
+ "word-wrap": "~1.2.3"
+
+
+ }
+
+
+ },
+
+
+ "ora": {
+
+
+ "version": "5.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+
+
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "bl": "^4.1.0",
+
+
+ "chalk": "^4.1.0",
+
+
+ "cli-cursor": "^3.1.0",
+
+
+ "cli-spinners": "^2.5.0",
+
+
+ "is-interactive": "^1.0.0",
+
+
+ "is-unicode-supported": "^0.1.0",
+
+
+ "log-symbols": "^4.1.0",
+
+
+ "strip-ansi": "^6.0.0",
+
+
+ "wcwidth": "^1.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "cli-cursor": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+
+
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "restore-cursor": "^3.1.0"
+
+
+ }
+
+
+ },
+
+
+ "mimic-fn": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+
+
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "onetime": {
+
+
+ "version": "5.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+
+
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "mimic-fn": "^2.1.0"
+
+
+ }
+
+
+ },
+
+
+ "restore-cursor": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+
+
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "onetime": "^5.1.0",
+
+
+ "signal-exit": "^3.0.2"
+
+
+ }
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "os-name": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz",
+
+
+ "integrity": "sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==",
+
+
+ "requires": {
+
+
+ "osx-release": "^1.0.0",
+
+
+ "win-release": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "os-tmpdir": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+
+
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "osx-release": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz",
+
+
+ "integrity": "sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==",
+
+
+ "requires": {
+
+
+ "minimist": "^1.1.0"
+
+
+ }
+
+
+ },
+
+
+ "p-cancelable": {
+
+
+ "version": "2.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
+
+
+ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "p-map": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+
+
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "aggregate-error": "^3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "parent-module": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+
+
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "callsites": "^3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "parseurl": {
+
+
+ "version": "1.3.3",
+
+
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+
+
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+
+
+ },
+
+
+ "path-is-absolute": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+
+
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
+
+
+ },
+
+
+ "path-is-inside": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+
+
+ "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "path-key": {
+
+
+ "version": "3.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+
+
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+
+
+ },
+
+
+ "path-scurry": {
+
+
+ "version": "1.10.1",
+
+
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
+
+
+ "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "lru-cache": "^9.1.1 || ^10.0.0",
+
+
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "lru-cache": {
+
+
+ "version": "10.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
+
+
+ "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "path-type": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+
+
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+
+
+ },
+
+
+ "pause-stream": {
+
+
+ "version": "0.0.11",
+
+
+ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+
+
+ "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
+
+
+ "requires": {
+
+
+ "through": "~2.3"
+
+
+ }
+
+
+ },
+
+
+ "pend": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+
+
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "picomatch": {
+
+
+ "version": "2.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+
+
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+
+
+ },
+
+
+ "pify": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+
+
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "plist": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
+
+
+ "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "@xmldom/xmldom": "^0.8.8",
+
+
+ "base64-js": "^1.5.1",
+
+
+ "xmlbuilder": "^15.1.1"
+
+
+ }
+
+
+ },
+
+
+ "pngjs": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz",
+
+
+ "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "prebuild-install": {
+
+
+ "version": "7.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
+
+
+ "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "detect-libc": "^2.0.0",
+
+
+ "expand-template": "^2.0.3",
+
+
+ "github-from-package": "0.0.0",
+
+
+ "minimist": "^1.2.3",
+
+
+ "mkdirp-classic": "^0.5.3",
+
+
+ "napi-build-utils": "^1.0.1",
+
+
+ "node-abi": "^3.3.0",
+
+
+ "pump": "^3.0.0",
+
+
+ "rc": "^1.2.7",
+
+
+ "simple-get": "^4.0.0",
+
+
+ "tar-fs": "^2.0.0",
+
+
+ "tunnel-agent": "^0.6.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "chownr": {
+
+
+ "version": "1.1.4",
+
+
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+
+
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "tar-fs": {
+
+
+ "version": "2.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+
+
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "chownr": "^1.1.1",
+
+
+ "mkdirp-classic": "^0.5.2",
+
+
+ "pump": "^3.0.0",
+
+
+ "tar-stream": "^2.1.4"
+
+
+ }
+
+
+ },
+
+
+ "tar-stream": {
+
+
+ "version": "2.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+
+
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "bl": "^4.0.3",
+
+
+ "end-of-stream": "^1.4.1",
+
+
+ "fs-constants": "^1.0.0",
+
+
+ "inherits": "^2.0.3",
+
+
+ "readable-stream": "^3.1.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "prelude-ls": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+
+
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "prepend-http": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+
+
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "prettier": {
+
+
+ "version": "3.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
+
+
+ "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
+
+
+ "dev": true,
+
+
+ "peer": true
+
+
+ },
+
+
+ "prettier-linter-helpers": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+
+
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "fast-diff": "^1.1.2"
+
+
+ }
+
+
+ },
+
+
+ "process": {
+
+
+ "version": "0.11.10",
+
+
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+
+
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "progress": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+
+
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "promise-retry": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+
+
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "err-code": "^2.0.2",
+
+
+ "retry": "^0.12.0"
+
+
+ }
+
+
+ },
+
+
+ "proto-list": {
+
+
+ "version": "1.2.4",
+
+
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+
+
+ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "pstree.remy": {
+
+
+ "version": "1.1.8",
+
+
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
+
+
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "pump": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+
+
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+
+
+ "requires": {
+
+
+ "end-of-stream": "^1.1.0",
+
+
+ "once": "^1.3.1"
+
+
+ }
+
+
+ },
+
+
+ "punycode": {
+
+
+ "version": "2.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+
+
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "qs": {
+
+
+ "version": "6.11.2",
+
+
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+
+
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+
+
+ "requires": {
+
+
+ "side-channel": "^1.0.4"
+
+
+ }
+
+
+ },
+
+
+ "queue-microtask": {
+
+
+ "version": "1.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+
+
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
+
+
+ },
+
+
+ "queue-tick": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+
+
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "quick-lru": {
+
+
+ "version": "5.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+
+
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "randombytes": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+
+
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+
+
+ "requires": {
+
+
+ "safe-buffer": "^5.1.0"
+
+
+ }
+
+
+ },
+
+
+ "raw-body": {
+
+
+ "version": "2.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+
+
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+
+
+ "requires": {
+
+
+ "bytes": "3.1.2",
+
+
+ "http-errors": "2.0.0",
+
+
+ "iconv-lite": "0.4.24",
+
+
+ "unpipe": "1.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "http-errors": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+
+
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+
+
+ "requires": {
+
+
+ "depd": "2.0.0",
+
+
+ "inherits": "2.0.4",
+
+
+ "setprototypeof": "1.2.0",
+
+
+ "statuses": "2.0.1",
+
+
+ "toidentifier": "1.0.1"
+
+
+ }
+
+
+ },
+
+
+ "statuses": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+
+
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "rc": {
+
+
+ "version": "1.2.8",
+
+
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+
+
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "deep-extend": "^0.6.0",
+
+
+ "ini": "~1.3.0",
+
+
+ "minimist": "^1.2.0",
+
+
+ "strip-json-comments": "~2.0.1"
+
+
+ }
+
+
+ },
+
+
+ "read-config-file": {
+
+
+ "version": "6.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz",
+
+
+ "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "dotenv": "^9.0.2",
+
+
+ "dotenv-expand": "^5.1.0",
+
+
+ "js-yaml": "^4.1.0",
+
+
+ "json5": "^2.2.0",
+
+
+ "lazy-val": "^1.0.4"
+
+
+ }
+
+
+ },
+
+
+ "readable-stream": {
+
+
+ "version": "3.6.2",
+
+
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+
+
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "inherits": "^2.0.3",
+
+
+ "string_decoder": "^1.1.1",
+
+
+ "util-deprecate": "^1.0.1"
+
+
+ }
+
+
+ },
+
+
+ "readdirp": {
+
+
+ "version": "3.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+
+
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "picomatch": "^2.2.1"
+
+
+ }
+
+
+ },
+
+
+ "reflect-metadata": {
+
+
+ "version": "0.1.13",
+
+
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
+
+
+ "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "regexpp": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+
+
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "require-directory": {
+
+
+ "version": "2.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+
+
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "resolve-alpn": {
+
+
+ "version": "1.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+
+
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "resolve-from": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+
+
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "resolve-path": {
+
+
+ "version": "1.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz",
+
+
+ "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==",
+
+
+ "requires": {
+
+
+ "http-errors": "~1.6.2",
+
+
+ "path-is-absolute": "1.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "depd": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+
+
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
+
+
+ },
+
+
+ "http-errors": {
+
+
+ "version": "1.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+
+
+ "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+
+
+ "requires": {
+
+
+ "depd": "~1.1.2",
+
+
+ "inherits": "2.0.3",
+
+
+ "setprototypeof": "1.1.0",
+
+
+ "statuses": ">= 1.4.0 < 2"
+
+
+ }
+
+
+ },
+
+
+ "inherits": {
+
+
+ "version": "2.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+
+
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+
+
+ },
+
+
+ "setprototypeof": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+
+
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "responselike": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+
+
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "lowercase-keys": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "restore-cursor": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+
+
+ "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "onetime": "^2.0.0",
+
+
+ "signal-exit": "^3.0.2"
+
+
+ }
+
+
+ },
+
+
+ "retry": {
+
+
+ "version": "0.12.0",
+
+
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+
+
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "reusify": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+
+
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+
+
+ },
+
+
+ "rimraf": {
+
+
+ "version": "2.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+
+
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "glob": "^7.1.3"
+
+
+ }
+
+
+ },
+
+
+ "roarr": {
+
+
+ "version": "2.15.4",
+
+
+ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
+
+
+ "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "boolean": "^3.0.1",
+
+
+ "detect-node": "^2.0.4",
+
+
+ "globalthis": "^1.0.1",
+
+
+ "json-stringify-safe": "^5.0.1",
+
+
+ "semver-compare": "^1.0.0",
+
+
+ "sprintf-js": "^1.1.2"
+
+
+ }
+
+
+ },
+
+
+ "run-async": {
+
+
+ "version": "2.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+
+
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "run-parallel": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+
+
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+
+
+ "requires": {
+
+
+ "queue-microtask": "^1.2.2"
+
+
+ }
+
+
+ },
+
+
+ "rxjs": {
+
+
+ "version": "6.6.7",
+
+
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+
+
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+
+
+ "devOptional": true,
+
+
+ "requires": {
+
+
+ "tslib": "^1.9.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "tslib": {
+
+
+ "version": "1.14.1",
+
+
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+
+
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+
+
+ "devOptional": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "safe-buffer": {
+
+
+ "version": "5.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+
+
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+
+
+ },
+
+
+ "safer-buffer": {
+
+
+ "version": "2.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+
+
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+
+
+ },
+
+
+ "sanitize-filename": {
+
+
+ "version": "1.6.3",
+
+
+ "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
+
+
+ "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "truncate-utf8-bytes": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "sax": {
+
+
+ "version": "1.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
+
+
+ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
+
+
+ },
+
+
+ "semver": {
+
+
+ "version": "7.5.4",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+
+
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+
+
+ "requires": {
+
+
+ "lru-cache": "^6.0.0"
+
+
+ }
+
+
+ },
+
+
+ "semver-compare": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+
+
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "serialize-error": {
+
+
+ "version": "7.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
+
+
+ "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "type-fest": "^0.13.1"
+
+
+ }
+
+
+ },
+
+
+ "serialize-javascript": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
+
+
+ "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
+
+
+ "requires": {
+
+
+ "randombytes": "^2.1.0"
+
+
+ }
+
+
+ },
+
+
+ "serialport": {
+
+
+ "version": "12.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/serialport/-/serialport-12.0.0.tgz",
+
+
+ "integrity": "sha512-AmH3D9hHPFmnF/oq/rvigfiAouAKyK/TjnrkwZRYSFZxNggJxwvbAbfYrLeuvq7ktUdhuHdVdSjj852Z55R+uA==",
+
+
+ "requires": {
+
+
+ "@serialport/binding-mock": "10.2.2",
+
+
+ "@serialport/bindings-cpp": "12.0.1",
+
+
+ "@serialport/parser-byte-length": "12.0.0",
+
+
+ "@serialport/parser-cctalk": "12.0.0",
+
+
+ "@serialport/parser-delimiter": "12.0.0",
+
+
+ "@serialport/parser-inter-byte-timeout": "12.0.0",
+
+
+ "@serialport/parser-packet-length": "12.0.0",
+
+
+ "@serialport/parser-readline": "12.0.0",
+
+
+ "@serialport/parser-ready": "12.0.0",
+
+
+ "@serialport/parser-regex": "12.0.0",
+
+
+ "@serialport/parser-slip-encoder": "12.0.0",
+
+
+ "@serialport/parser-spacepacket": "12.0.0",
+
+
+ "@serialport/stream": "12.0.0",
+
+
+ "debug": "4.3.4"
+
+
+ }
+
+
+ },
+
+
+ "set-blocking": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+
+
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "setprototypeof": {
+
+
+ "version": "1.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+
+
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+
+
+ },
+
+
+ "sharp": {
+
+
+ "version": "0.32.6",
+
+
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
+
+
+ "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color": "^4.2.3",
+
+
+ "detect-libc": "^2.0.2",
+
+
+ "node-addon-api": "^6.1.0",
+
+
+ "prebuild-install": "^7.1.1",
+
+
+ "semver": "^7.5.4",
+
+
+ "simple-get": "^4.0.1",
+
+
+ "tar-fs": "^3.0.4",
+
+
+ "tunnel-agent": "^0.6.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "node-addon-api": {
+
+
+ "version": "6.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+
+
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "shebang-command": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+
+
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+
+
+ "requires": {
+
+
+ "shebang-regex": "^3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "shebang-regex": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+
+
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+
+
+ },
+
+
+ "side-channel": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+
+
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+
+
+ "requires": {
+
+
+ "call-bind": "^1.0.0",
+
+
+ "get-intrinsic": "^1.0.2",
+
+
+ "object-inspect": "^1.9.0"
+
+
+ }
+
+
+ },
+
+
+ "signal-exit": {
+
+
+ "version": "3.0.7",
+
+
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+
+
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+
+
+ },
+
+
+ "simple-concat": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+
+
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "simple-get": {
+
+
+ "version": "4.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+
+
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "decompress-response": "^6.0.0",
+
+
+ "once": "^1.3.1",
+
+
+ "simple-concat": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "simple-swizzle": {
+
+
+ "version": "0.2.2",
+
+
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+
+
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "is-arrayish": "^0.3.1"
+
+
+ }
+
+
+ },
+
+
+ "simple-update-notifier": {
+
+
+ "version": "1.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz",
+
+
+ "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "semver": "~7.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "semver": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+
+
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "slash": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+
+
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+
+
+ },
+
+
+ "slice-ansi": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+
+
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "ansi-styles": "^4.0.0",
+
+
+ "astral-regex": "^2.0.0",
+
+
+ "is-fullwidth-code-point": "^3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "smart-buffer": {
+
+
+ "version": "4.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+
+
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "socket.io": {
+
+
+ "version": "4.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz",
+
+
+ "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==",
+
+
+ "requires": {
+
+
+ "accepts": "~1.3.4",
+
+
+ "base64id": "~2.0.0",
+
+
+ "cors": "~2.8.5",
+
+
+ "debug": "~4.3.2",
+
+
+ "engine.io": "~6.5.2",
+
+
+ "socket.io-adapter": "~2.5.2",
+
+
+ "socket.io-parser": "~4.2.4"
+
+
+ }
+
+
+ },
+
+
+ "socket.io-adapter": {
+
+
+ "version": "2.5.2",
+
+
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
+
+
+ "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
+
+
+ "requires": {
+
+
+ "ws": "~8.11.0"
+
+
+ }
+
+
+ },
+
+
+ "socket.io-client": {
+
+
+ "version": "4.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz",
+
+
+ "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==",
+
+
+ "requires": {
+
+
+ "@socket.io/component-emitter": "~3.1.0",
+
+
+ "debug": "~4.3.2",
+
+
+ "engine.io-client": "~6.5.2",
+
+
+ "socket.io-parser": "~4.2.4"
+
+
+ }
+
+
+ },
+
+
+ "socket.io-parser": {
+
+
+ "version": "4.2.4",
+
+
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+
+
+ "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
+
+
+ "requires": {
+
+
+ "@socket.io/component-emitter": "~3.1.0",
+
+
+ "debug": "~4.3.1"
+
+
+ }
+
+
+ },
+
+
+ "socks": {
+
+
+ "version": "2.7.1",
+
+
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+
+
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ip": "^2.0.0",
+
+
+ "smart-buffer": "^4.2.0"
+
+
+ }
+
+
+ },
+
+
+ "socks-proxy-agent": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz",
+
+
+ "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "agent-base": "^6.0.2",
+
+
+ "debug": "^4.3.3",
+
+
+ "socks": "^2.6.2"
+
+
+ }
+
+
+ },
+
+
+ "source-map": {
+
+
+ "version": "0.6.1",
+
+
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+
+
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "source-map-support": {
+
+
+ "version": "0.5.21",
+
+
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+
+
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "buffer-from": "^1.0.0",
+
+
+ "source-map": "^0.6.0"
+
+
+ }
+
+
+ },
+
+
+ "sprintf-js": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+
+
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "ssri": {
+
+
+ "version": "10.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz",
+
+
+ "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minipass": "^7.0.3"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "minipass": {
+
+
+ "version": "7.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+
+
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "stat-mode": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz",
+
+
+ "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "statuses": {
+
+
+ "version": "1.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+
+
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="
+
+
+ },
+
+
+ "streamx": {
+
+
+ "version": "2.15.5",
+
+
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz",
+
+
+ "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "fast-fifo": "^1.1.0",
+
+
+ "queue-tick": "^1.0.1"
+
+
+ }
+
+
+ },
+
+
+ "string_decoder": {
+
+
+ "version": "1.3.0",
+
+
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+
+
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "safe-buffer": "~5.2.0"
+
+
+ }
+
+
+ },
+
+
+ "string-template": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
+
+
+ "integrity": "sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "string-width": {
+
+
+ "version": "4.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+
+
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "emoji-regex": "^8.0.0",
+
+
+ "is-fullwidth-code-point": "^3.0.0",
+
+
+ "strip-ansi": "^6.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "string-width-cjs": {
+
+
+ "version": "npm:string-width@4.2.3",
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+
+
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "emoji-regex": "^8.0.0",
+
+
+ "is-fullwidth-code-point": "^3.0.0",
+
+
+ "strip-ansi": "^6.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "stringz": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/stringz/-/stringz-2.1.0.tgz",
+
+
+ "integrity": "sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "char-regex": "^1.0.2"
+
+
+ }
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+
+
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^3.0.0"
+
+
+ }
+
+
+ },
+
+
+ "strip-ansi-cjs": {
+
+
+ "version": "npm:strip-ansi@6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "strip-final-newline": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+
+
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
+
+
+ },
+
+
+ "strip-json-comments": {
+
+
+ "version": "2.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+
+
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "sumchecker": {
+
+
+ "version": "3.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz",
+
+
+ "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "debug": "^4.1.0"
+
+
+ }
+
+
+ },
+
+
+ "supports-color": {
+
+
+ "version": "7.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+
+
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+
+
+ "requires": {
+
+
+ "has-flag": "^4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "table": {
+
+
+ "version": "5.4.6",
+
+
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+
+
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ajv": "^6.10.2",
+
+
+ "lodash": "^4.17.14",
+
+
+ "slice-ansi": "^2.1.0",
+
+
+ "string-width": "^3.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "4.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+
+
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "ansi-styles": {
+
+
+ "version": "3.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+
+
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-convert": "^1.9.0"
+
+
+ }
+
+
+ },
+
+
+ "astral-regex": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+
+
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "color-convert": {
+
+
+ "version": "1.9.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+
+
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "color-name": "1.1.3"
+
+
+ }
+
+
+ },
+
+
+ "color-name": {
+
+
+ "version": "1.1.3",
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+
+
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "emoji-regex": {
+
+
+ "version": "7.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+
+
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "is-fullwidth-code-point": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+
+
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "slice-ansi": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+
+
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-styles": "^3.2.0",
+
+
+ "astral-regex": "^1.0.0",
+
+
+ "is-fullwidth-code-point": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "string-width": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+
+
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "emoji-regex": "^7.0.1",
+
+
+ "is-fullwidth-code-point": "^2.0.0",
+
+
+ "strip-ansi": "^5.1.0"
+
+
+ }
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "5.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+
+
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^4.1.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "tar": {
+
+
+ "version": "6.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+
+
+ "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "chownr": "^2.0.0",
+
+
+ "fs-minipass": "^2.0.0",
+
+
+ "minipass": "^5.0.0",
+
+
+ "minizlib": "^2.1.1",
+
+
+ "mkdirp": "^1.0.3",
+
+
+ "yallist": "^4.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "fs-minipass": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+
+
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minipass": "^3.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "minipass": {
+
+
+ "version": "3.3.6",
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "yallist": "^4.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "mkdirp": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+
+
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+
+
+ "dev": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "tar-fs": {
+
+
+ "version": "3.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
+
+
+ "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "mkdirp-classic": "^0.5.2",
+
+
+ "pump": "^3.0.0",
+
+
+ "tar-stream": "^3.1.5"
+
+
+ }
+
+
+ },
+
+
+ "tar-stream": {
+
+
+ "version": "3.1.6",
+
+
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
+
+
+ "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "b4a": "^1.6.4",
+
+
+ "fast-fifo": "^1.2.0",
+
+
+ "streamx": "^2.15.0"
+
+
+ }
+
+
+ },
+
+
+ "temp-file": {
+
+
+ "version": "3.4.0",
+
+
+ "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz",
+
+
+ "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "async-exit-hook": "^2.0.1",
+
+
+ "fs-extra": "^10.0.0"
+
+
+ }
+
+
+ },
+
+
+ "text-table": {
+
+
+ "version": "0.2.0",
+
+
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+
+
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "thenify": {
+
+
+ "version": "3.3.1",
+
+
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+
+
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+
+
+ "requires": {
+
+
+ "any-promise": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "thenify-all": {
+
+
+ "version": "1.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+
+
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+
+
+ "requires": {
+
+
+ "thenify": ">= 3.1.0 < 4"
+
+
+ }
+
+
+ },
+
+
+ "through": {
+
+
+ "version": "2.3.8",
+
+
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+
+
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+
+
+ },
+
+
+ "tmp": {
+
+
+ "version": "0.0.33",
+
+
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+
+
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "os-tmpdir": "~1.0.2"
+
+
+ }
+
+
+ },
+
+
+ "tmp-promise": {
+
+
+ "version": "3.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz",
+
+
+ "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "tmp": "^0.2.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "rimraf": {
+
+
+ "version": "3.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+
+
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "glob": "^7.1.3"
+
+
+ }
+
+
+ },
+
+
+ "tmp": {
+
+
+ "version": "0.2.1",
+
+
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
+
+
+ "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "rimraf": "^3.0.0"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "to-readable-stream": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+
+
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "to-regex-range": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+
+
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+
+
+ "requires": {
+
+
+ "is-number": "^7.0.0"
+
+
+ }
+
+
+ },
+
+
+ "toidentifier": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+
+
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
+
+
+ },
+
+
+ "touch": {
+
+
+ "version": "3.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
+
+
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "nopt": "~1.0.10"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "nopt": {
+
+
+ "version": "1.0.10",
+
+
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+
+
+ "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "abbrev": "1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "truncate-utf8-bytes": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
+
+
+ "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "utf8-byte-length": "^1.0.1"
+
+
+ }
+
+
+ },
+
+
+ "tslib": {
+
+
+ "version": "2.5.0",
+
+
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+
+
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "tsscmp": {
+
+
+ "version": "1.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
+
+
+ "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="
+
+
+ },
+
+
+ "tunnel": {
+
+
+ "version": "0.0.6",
+
+
+ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
+
+
+ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "tunnel-agent": {
+
+
+ "version": "0.6.0",
+
+
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+
+
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "safe-buffer": "^5.0.1"
+
+
+ }
+
+
+ },
+
+
+ "type-check": {
+
+
+ "version": "0.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+
+
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "prelude-ls": "~1.1.2"
+
+
+ }
+
+
+ },
+
+
+ "type-fest": {
+
+
+ "version": "0.13.1",
+
+
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+
+
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ },
+
+
+ "type-is": {
+
+
+ "version": "1.6.18",
+
+
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+
+
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+
+
+ "requires": {
+
+
+ "media-typer": "0.3.0",
+
+
+ "mime-types": "~2.1.24"
+
+
+ }
+
+
+ },
+
+
+ "typed-emitter": {
+
+
+ "version": "2.1.0",
+
+
+ "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz",
+
+
+ "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==",
+
+
+ "requires": {
+
+
+ "rxjs": "*"
+
+
+ }
+
+
+ },
+
+
+ "undefsafe": {
+
+
+ "version": "2.0.5",
+
+
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
+
+
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "unescape": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz",
+
+
+ "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==",
+
+
+ "requires": {
+
+
+ "extend-shallow": "^2.0.1"
+
+
+ }
+
+
+ },
+
+
+ "unique-filename": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz",
+
+
+ "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "unique-slug": "^4.0.0"
+
+
+ }
+
+
+ },
+
+
+ "unique-slug": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz",
+
+
+ "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "imurmurhash": "^0.1.4"
+
+
+ }
+
+
+ },
+
+
+ "universalify": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+
+
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+
+
+ },
+
+
+ "unpipe": {
+
+
+ "version": "1.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+
+
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
+
+
+ },
+
+
+ "uri-js": {
+
+
+ "version": "4.4.1",
+
+
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+
+
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "punycode": "^2.1.0"
+
+
+ }
+
+
+ },
+
+
+ "url-parse-lax": {
+
+
+ "version": "3.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+
+
+ "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "prepend-http": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "urllib": {
+
+
+ "version": "2.41.0",
+
+
+ "resolved": "https://registry.npmjs.org/urllib/-/urllib-2.41.0.tgz",
+
+
+ "integrity": "sha512-pNXdxEv52L67jahLT+/7QE+Fup1y2Gc6EdmrAhQ6OpQIC2rl14oWwv9hvk1GXOZqEnJNwRXHABuwgPOs1CtL7g==",
+
+
+ "requires": {
+
+
+ "any-promise": "^1.3.0",
+
+
+ "content-type": "^1.0.2",
+
+
+ "debug": "^2.6.9",
+
+
+ "default-user-agent": "^1.0.0",
+
+
+ "digest-header": "^1.0.0",
+
+
+ "ee-first": "~1.1.1",
+
+
+ "formstream": "^1.1.0",
+
+
+ "humanize-ms": "^1.2.0",
+
+
+ "iconv-lite": "^0.4.15",
+
+
+ "ip": "^1.1.5",
+
+
+ "pump": "^3.0.0",
+
+
+ "qs": "^6.4.0",
+
+
+ "statuses": "^1.3.1",
+
+
+ "utility": "^1.16.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "debug": {
+
+
+ "version": "2.6.9",
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+
+
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+
+
+ "requires": {
+
+
+ "ms": "2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "ip": {
+
+
+ "version": "1.1.8",
+
+
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
+
+
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
+
+
+ },
+
+
+ "ms": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+
+
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "utf8-byte-length": {
+
+
+ "version": "1.0.4",
+
+
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
+
+
+ "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "util": {
+
+
+ "version": "0.12.5",
+
+
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+
+
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "inherits": "^2.0.3",
+
+
+ "is-arguments": "^1.0.4",
+
+
+ "is-generator-function": "^1.0.7",
+
+
+ "is-typed-array": "^1.1.3",
+
+
+ "which-typed-array": "^1.1.2"
+
+
+ }
+
+
+ },
+
+
+ "util-deprecate": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+
+
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "utility": {
+
+
+ "version": "1.18.0",
+
+
+ "resolved": "https://registry.npmjs.org/utility/-/utility-1.18.0.tgz",
+
+
+ "integrity": "sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==",
+
+
+ "requires": {
+
+
+ "copy-to": "^2.0.1",
+
+
+ "escape-html": "^1.0.3",
+
+
+ "mkdirp": "^0.5.1",
+
+
+ "mz": "^2.7.0",
+
+
+ "unescape": "^1.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "mkdirp": {
+
+
+ "version": "0.5.6",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+
+
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+
+
+ "requires": {
+
+
+ "minimist": "^1.2.6"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "validator": {
+
+
+ "version": "13.11.0",
+
+
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz",
+
+
+ "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "vary": {
+
+
+ "version": "1.1.2",
+
+
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+
+
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
+
+
+ },
+
+
+ "verror": {
+
+
+ "version": "1.10.1",
+
+
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz",
+
+
+ "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==",
+
+
+ "dev": true,
+
+
+ "optional": true,
+
+
+ "requires": {
+
+
+ "assert-plus": "^1.0.0",
+
+
+ "core-util-is": "1.0.2",
+
+
+ "extsprintf": "^1.2.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "core-util-is": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+
+
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
+
+
+ "dev": true,
+
+
+ "optional": true
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "wcwidth": {
+
+
+ "version": "1.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+
+
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "defaults": "^1.0.3"
+
+
+ }
+
+
+ },
+
+
+ "which": {
+
+
+ "version": "2.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+
+
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+
+
+ "requires": {
+
+
+ "isexe": "^2.0.0"
+
+
+ }
+
+
+ },
+
+
+ "which-typed-array": {
+
+
+ "version": "1.1.11",
+
+
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
+
+
+ "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "available-typed-arrays": "^1.0.5",
+
+
+ "call-bind": "^1.0.2",
+
+
+ "for-each": "^0.3.3",
+
+
+ "gopd": "^1.0.1",
+
+
+ "has-tostringtag": "^1.0.0"
+
+
+ }
+
+
+ },
+
+
+ "wide-align": {
+
+
+ "version": "1.1.5",
+
+
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+
+
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+
+
+ }
+
+
+ },
+
+
+ "win-release": {
+
+
+ "version": "1.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz",
+
+
+ "integrity": "sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==",
+
+
+ "requires": {
+
+
+ "semver": "^5.0.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "semver": {
+
+
+ "version": "5.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+
+
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "word-wrap": {
+
+
+ "version": "1.2.5",
+
+
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+
+
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "wrap-ansi": {
+
+
+ "version": "7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+
+
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-styles": "^4.0.0",
+
+
+ "string-width": "^4.1.0",
+
+
+ "strip-ansi": "^6.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "wrap-ansi-cjs": {
+
+
+ "version": "npm:wrap-ansi@7.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+
+
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-styles": "^4.0.0",
+
+
+ "string-width": "^4.1.0",
+
+
+ "strip-ansi": "^6.0.0"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "ansi-regex": {
+
+
+ "version": "5.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "strip-ansi": {
+
+
+ "version": "6.0.1",
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "ansi-regex": "^5.0.1"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "wrappy": {
+
+
+ "version": "1.0.2",
+
+
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+
+
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+
+
+ },
+
+
+ "write": {
+
+
+ "version": "1.0.3",
+
+
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+
+
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "mkdirp": "^0.5.1"
+
+
+ },
+
+
+ "dependencies": {
+
+
+ "mkdirp": {
+
+
+ "version": "0.5.6",
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+
+
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "minimist": "^1.2.6"
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ },
+
+
+ "ws": {
+
+
+ "version": "8.11.0",
+
+
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+
+
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
+
+
+ "requires": {}
+
+
+ },
+
+
+ "xmlbuilder": {
+
+
+ "version": "15.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+
+
+ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "xmlhttprequest-ssl": {
+
+
+ "version": "2.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
+
+
+ "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
+
+
+ },
+
+
+ "y18n": {
+
+
+ "version": "5.0.8",
+
+
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+
+
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "yallist": {
+
+
+ "version": "4.0.0",
+
+
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+
+
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+
+
+ },
+
+
+ "yargs": {
+
+
+ "version": "17.7.2",
+
+
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+
+
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "cliui": "^8.0.1",
+
+
+ "escalade": "^3.1.1",
+
+
+ "get-caller-file": "^2.0.5",
+
+
+ "require-directory": "^2.1.1",
+
+
+ "string-width": "^4.2.3",
+
+
+ "y18n": "^5.0.5",
+
+
+ "yargs-parser": "^21.1.1"
+
+
+ }
+
+
+ },
+
+
+ "yargs-parser": {
+
+
+ "version": "21.1.1",
+
+
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+
+
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+
+
+ "dev": true
+
+
+ },
+
+
+ "yauzl": {
+
+
+ "version": "2.10.0",
+
+
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+
+
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+
+
+ "dev": true,
+
+
+ "requires": {
+
+
+ "buffer-crc32": "~0.2.3",
+
+
+ "fd-slicer": "~1.1.0"
+
+
+ }
+
+
+ },
+
+
+ "ylru": {
+
+
+ "version": "1.3.2",
+
+
+ "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz",
+
+
+ "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA=="
+
+
+ }
+
+
+ }
+
+
+}
+
+
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..eec12c6
--- /dev/null
+++ b/package.json
@@ -0,0 +1,79 @@
+{
+
+
+ "name": "appCtr",
+ "version": "3.9.0",
+ "description": "客户端控制程序",
+ "main": "main.js",
+ "scripts": {
+ "dev": "ee-bin dev",
+ "dev-frontend": "ee-bin dev --serve=frontend",
+ "dev-electron": "ee-bin dev --serve=electron",
+ "dev-go": "ee-bin dev --serve=go",
+ "dev-python": "ee-bin exec --cmds=python",
+ "build-frontend": "ee-bin build --cmds=frontend && ee-bin move --flag=frontend_dist",
+ "build-go-w": "ee-bin move --flag=go_static,go_config,go_package,go_images && ee-bin build --cmds=go_w",
+ "build-go-m": "ee-bin move --flag=go_static,go_config,go_package,go_images && ee-bin build --cmds=go_m",
+ "build-go-l": "ee-bin move --flag=go_static,go_config,go_package,go_images && ee-bin build --cmds=go_l",
+ "build-python": "ee-bin build --cmds=python && ee-bin move --flag=python_dist",
+ "start": "ee-bin start",
+ "move": "ee-bin move --flag=go_static,go_config,go_package,go_images",
+ "rd": "ee-bin move --flag=frontend_dist",
+ "encrypt": "ee-bin encrypt",
+ "clean": "ee-bin clean",
+ "icon": "ee-bin icon",
+ "reload": "nodemon --config ./electron/config/nodemon.json",
+ "rebuild": "electron-rebuild",
+ "re-sqlite": "electron-rebuild -f -w better-sqlite3",
+ "build-w": "electron-builder --config=./electron/config/builder.json -w=nsis --x64",
+ "build-w-32": "electron-builder --config=./electron/config/builder.json -w=nsis --ia32",
+ "build-w-64": "electron-builder --config=./electron/config/builder.json -w=nsis --x64",
+ "build-w-arm64": "electron-builder --config=./electron/config/builder.json -w=nsis --arm64",
+ "build-we": "electron-builder --config=./electron/config/builder.json -w=portable --x64",
+ "build-wz": "electron-builder --config=./electron/config/builder.json -w=7z --x64",
+ "build-wz-32": "electron-builder --config=./electron/config/builder.json -w=7z --ia32",
+ "build-wz-64": "electron-builder --config=./electron/config/builder.json -w=7z --x64",
+ "build-wz-arm64": "electron-builder --config=./electron/config/builder.json -w=7z --arm64",
+ "build-m": "electron-builder --config=./electron/config/builder.json -m",
+ "build-m-arm64": "electron-builder --config=./electron/config/builder.json -m --arm64",
+ "build-l": "electron-builder --config=./electron/config/builder.json -l=deb --x64",
+ "build-l-32": "electron-builder --config=./electron/config/builder.json -l=deb --ia32",
+ "build-l-64": "electron-builder --config=./electron/config/builder.json -l=deb --x64",
+ "build-l-arm64": "electron-builder --config=./electron/config/builder.json -l=deb --arm64",
+ "build-l-armv7l": "electron-builder --config=./electron/config/builder.json -l=deb --armv7l",
+ "build-lr-64": "electron-builder --config=./electron/config/builder.json -l=rpm --x64",
+ "build-lp-64": "electron-builder --config=./electron/config/builder.json -l=pacman --x64",
+ "test": "set DEBUG=* && electron . --env=local"
+ },
+ "repository": "https://github.com/dromara/electron-egg.git",
+ "keywords": [
+ "Electron",
+ "electron-egg",
+ "ElectronEgg"
+ ],
+ "author": "安徽烁景智能科技有限公司, Inc <247023187@qq.com>",
+ "license": "Apache",
+ "devDependencies": {
+ "@electron/rebuild": "^3.2.13",
+ "debug": "^4.3.3",
+ "ee-bin": "^1.5.0",
+ "electron": "^21.4.4",
+ "electron-builder": "^23.6.0",
+ "eslint": "^5.13.0",
+ "eslint-plugin-prettier": "^3.0.1",
+ "icon-gen": "^4.0.0",
+ "nodemon": "^2.0.16"
+ },
+ "dependencies": {
+ "@lzwme/get-physical-address": "^1.0.5",
+ "dayjs": "^1.10.7",
+ "electron-shutdown-command": "^2.0.1",
+ "ee-core": "^2.9.2",
+ "electron-updater": "^5.3.0",
+ "lodash": "^4.17.21",
+ "loudness": "^0.4.2",
+ "modbus-serial": "^8.0.13",
+ "moment": "^2.29.4",
+ "serialport": "^12.0.0"
+ }
+}
diff --git a/public/dist/assets/AppSider-686a98c7.js b/public/dist/assets/AppSider-686a98c7.js
new file mode 100644
index 0000000..5fa7efb
--- /dev/null
+++ b/public/dist/assets/AppSider-686a98c7.js
@@ -0,0 +1 @@
+import{_ as e,r as a,o as n,c as t,w as o,a as s,b as l,d as i,F as u,e as c,t as r,p as m,f as d,g as p}from"./index-265ac112.js";const g=""+new URL("logo-abcaf0c2.png",import.meta.url).href,f={name:"AppSider",data:()=>({collapsed:!0,current:"menu_1",menu:{menu_1:{icon:"icon-fengche",title:"框架",pageName:"Framework",params:{}},menu_2:{icon:"icon-niudan",title:"系统",pageName:"Os",params:{}},menu_3:{icon:"icon-xiangji",title:"硬件",pageName:"Hardware",params:{}},menu_4:{icon:"icon-liuxing",title:"特效",pageName:"Effect",params:{}},menu_5:{icon:"icon-gouwu",title:"cross",pageName:"Cross",params:{}}}}),created(){},mounted(){this.menuHandle()},methods:{menuHandle(e){console.log("sider menu e:",e),this.current=e?e.key:this.current,console.log("sider menu current:",this.current);const a=this.menu[this.current];console.log("[home] load linkInfo:",a),this.$router.push({name:a.pageName,params:a.params})},changeMenu(e){console.log("sider menu e:",e)}}},h=(e=>(m("data-v-a1fe120d"),e=e(),d(),e))((()=>p("div",{class:"logo"},[p("img",{class:"pic-logo",src:g})],-1)));const _=e(f,[["render",function(e,m,d,p,g,f){const _=a("icon-font"),y=a("a-menu-item"),w=a("a-menu"),k=a("a-layout-sider"),N=a("router-view"),v=a("a-layout-content"),x=a("a-layout");return n(),t(x,{id:"app-layout-sider"},{default:o((()=>[s(k,{modelValue:g.collapsed,"onUpdate:modelValue":m[0]||(m[0]=e=>g.collapsed=e),theme:"light",class:"layout-sider",width:"100"},{default:o((()=>[h,s(w,{class:"menu-item",theme:"light",mode:"inline",selectedKeys:[g.current],onClick:f.menuHandle},{default:o((()=>[(n(!0),l(u,null,i(g.menu,((e,a)=>(n(),t(y,{key:a},{default:o((()=>[s(_,{type:e.icon},null,8,["type"]),c(" "+r(e.title),1)])),_:2},1024)))),128))])),_:1},8,["selectedKeys","onClick"])])),_:1},8,["modelValue"]),s(x,null,{default:o((()=>[s(v,{class:"layout-content"},{default:o((()=>[s(N)])),_:1})])),_:1})])),_:1})}],["__scopeId","data-v-a1fe120d"]]);export{_ as default};
diff --git a/public/dist/assets/AppSider-686a98c7.js.gz b/public/dist/assets/AppSider-686a98c7.js.gz
new file mode 100644
index 0000000..1d2b3b3
Binary files /dev/null and b/public/dist/assets/AppSider-686a98c7.js.gz differ
diff --git a/public/dist/assets/AppSider-e43fb700.js b/public/dist/assets/AppSider-e43fb700.js
new file mode 100644
index 0000000..0d98408
--- /dev/null
+++ b/public/dist/assets/AppSider-e43fb700.js
@@ -0,0 +1 @@
+import{_ as e}from"./logo-9754eb61.js";import{_ as a,r as n,o as t,c as s,w as o,a as l,b as i,d as u,F as c,e as d,t as m,p as r,f as p,g}from"./index-ea5b20ee.js";const h={name:"AppSider",data:()=>({collapsed:!0,current:"menu_1",menu:{menu_1:{icon:"icon-fengche",title:"框架",pageName:"Framework",params:{}},menu_2:{icon:"icon-niudan",title:"系统",pageName:"Os",params:{}},menu_3:{icon:"icon-xiangji",title:"硬件",pageName:"Hardware",params:{}},menu_4:{icon:"icon-liuxing",title:"特效",pageName:"Effect",params:{}}}}),created(){},mounted(){this.menuHandle()},methods:{menuHandle(e){console.log("sider menu e:",e),this.current=e?e.key:this.current,console.log("sider menu current:",this.current);const a=this.menu[this.current];console.log("[home] load linkInfo:",a),this.$router.push({name:a.pageName,params:a.params})},changeMenu(e){console.log("sider menu e:",e)}}},f=(e=>(r("data-v-a4dde330"),e=e(),p(),e))((()=>g("div",{class:"logo"},[g("img",{class:"pic-logo",src:e})],-1)));const _=a(h,[["render",function(e,a,r,p,g,h){const _=n("icon-font"),y=n("a-menu-item"),k=n("a-menu"),w=n("a-layout-sider"),N=n("router-view"),v=n("a-layout-content"),x=n("a-layout");return t(),s(x,{id:"app-layout-sider"},{default:o((()=>[l(w,{modelValue:g.collapsed,"onUpdate:modelValue":a[0]||(a[0]=e=>g.collapsed=e),theme:"light",class:"layout-sider",width:"100"},{default:o((()=>[f,l(k,{class:"menu-item",theme:"light",mode:"inline",selectedKeys:[g.current],onClick:h.menuHandle},{default:o((()=>[(t(!0),i(c,null,u(g.menu,((e,a)=>(t(),s(y,{key:a},{default:o((()=>[l(_,{type:e.icon},null,8,["type"]),d(" "+m(e.title),1)])),_:2},1024)))),128))])),_:1},8,["selectedKeys","onClick"])])),_:1},8,["modelValue"]),l(x,null,{default:o((()=>[l(v,{class:"layout-content"},{default:o((()=>[l(N)])),_:1})])),_:1})])),_:1})}],["__scopeId","data-v-a4dde330"]]);export{_ as default};
diff --git a/public/dist/assets/AppSider-e43fb700.js.gz b/public/dist/assets/AppSider-e43fb700.js.gz
new file mode 100644
index 0000000..10a6841
Binary files /dev/null and b/public/dist/assets/AppSider-e43fb700.js.gz differ
diff --git a/public/dist/assets/AppSider-eae4d7cc.css b/public/dist/assets/AppSider-eae4d7cc.css
new file mode 100644
index 0000000..05a7e37
--- /dev/null
+++ b/public/dist/assets/AppSider-eae4d7cc.css
@@ -0,0 +1 @@
+#app-layout-sider[data-v-a1fe120d]{height:100%}#app-layout-sider .logo[data-v-a1fe120d]{border-bottom:1px solid #e8e8e8}#app-layout-sider .pic-logo[data-v-a1fe120d]{height:32px;margin:10px}#app-layout-sider .layout-sider[data-v-a1fe120d]{border-top:1px solid #e8e8e8;border-right:1px solid #e8e8e8}#app-layout-sider .menu-item .ant-menu-item[data-v-a1fe120d]{background-color:#fff;margin-top:0;margin-bottom:0;padding:0!important}
diff --git a/public/dist/assets/HttpServer-187e00e2.js b/public/dist/assets/HttpServer-187e00e2.js
new file mode 100644
index 0000000..f6f8782
--- /dev/null
+++ b/public/dist/assets/HttpServer-187e00e2.js
@@ -0,0 +1 @@
+import{i as t}from"./main-ce25b28f.js";import{i as e}from"./ipcRenderer-5e19eaee.js";import{a as s}from"./index-9a8e575f.js";import{s as o}from"./store2-5a46c4a6.js";import{_ as r,r as n,o as a,b as i,g as l,t as c,e as u,a as d,w as p,p as h,f as m}from"./index-265ac112.js";const v={data:()=>({currentStatus:"关闭",servicAddress:"无"}),mounted(){this.init()},methods:{init(){e.invoke(t.checkHttpServer,{}).then((t=>{t.enable&&(this.currentStatus="开启",this.servicAddress=t.server,o.set("httpServiceConfig",t))}))},sendRequest(e){"关闭"!=this.currentStatus?this.requestHttp(t.doHttpRequest,{id:e}).then((t=>{})):this.$message.error("http服务未开启")},requestHttp(t,e){const r=o.get("httpServiceConfig").server||"http://localhost:7071";let n=t.split(".").join("/");return n=r+"/"+n,console.log("url:",n),s({url:n,method:"post",data:e,timeout:6e4})},backendRequest(){console.log("GO_URL:","http://www.test.com");s({baseURL:"http://www.test.com",method:"get",url:"/hello",timeout:6e4}).then((t=>{console.log("res:",t);const e=t.data||null;this.$message.info(`go服务返回: ${e}`)}))}}},f=t=>(h("data-v-3508e997"),t=t(),m(),t),b={id:"app-base-httpserver"},g=f((()=>l("div",{class:"one-block-1"},[l("span",null," 1. 使用http与主进程通信 ")],-1))),k={class:"one-block-2"},w=f((()=>l("div",{class:"one-block-1"},[l("span",null," 2. 使用http与服务端通信 ")],-1))),R={class:"one-block-2"};const q=r(v,[["render",function(t,e,s,o,r,h){const m=n("a-button");return a(),i("div",b,[g,l("div",k,[l("p",null,"* 状态:"+c(r.currentStatus),1),l("p",null,"* 地址:"+c(r.servicAddress),1),l("p",null,[u("* 发送请求: "),d(m,{onClick:e[0]||(e[0]=t=>h.sendRequest("pictures"))},{default:p((()=>[u(" 打开【我的图片】 ")])),_:1})])]),w,l("div",R,[l("p",null,[d(m,{onClick:e[1]||(e[1]=t=>h.backendRequest())},{default:p((()=>[u(" 发送请求 ")])),_:1}),u(" (请自行创建服务) ")])])])}],["__scopeId","data-v-3508e997"]]);export{q as default};
diff --git a/public/dist/assets/HttpServer-187e00e2.js.gz b/public/dist/assets/HttpServer-187e00e2.js.gz
new file mode 100644
index 0000000..749eadd
Binary files /dev/null and b/public/dist/assets/HttpServer-187e00e2.js.gz differ
diff --git a/public/dist/assets/HttpServer-3120b23d.css b/public/dist/assets/HttpServer-3120b23d.css
new file mode 100644
index 0000000..7168d94
--- /dev/null
+++ b/public/dist/assets/HttpServer-3120b23d.css
@@ -0,0 +1 @@
+#app-base-httpserver[data-v-3508e997]{padding:0 10px;text-align:left;width:100%}#app-base-httpserver .one-block-1[data-v-3508e997]{font-size:16px;padding-top:10px}#app-base-httpserver .one-block-2[data-v-3508e997]{padding-top:10px}
diff --git a/public/dist/assets/HttpServer-d1901b59.js b/public/dist/assets/HttpServer-d1901b59.js
new file mode 100644
index 0000000..e9d3ac4
--- /dev/null
+++ b/public/dist/assets/HttpServer-d1901b59.js
@@ -0,0 +1 @@
+import{_ as t,i as e,h as s,r as o,o as a,b as n,g as r,t as l,e as i,a as c,w as u,p as d,f as p}from"./index-ea5b20ee.js";import{a as h}from"./index-1ef15d1b.js";import{s as v}from"./store2-204267a2.js";const m={data:()=>({currentStatus:"关闭",servicAddress:"无"}),mounted(){this.init()},methods:{init(){e.invoke(s.checkHttpServer,{}).then((t=>{t.enable&&(this.currentStatus="开启",this.servicAddress=t.server,v.set("httpServiceConfig",t))}))},sendRequest(t){"关闭"!=this.currentStatus?this.requestHttp(s.doHttpRequest,{id:t}).then((t=>{})):this.$message.error("http服务未开启")},requestHttp(t,e){const s=v.get("httpServiceConfig").server||"http://localhost:7071";let o=t.split(".").join("/");return o=s+"/"+o,console.log("url:",o),h({url:o,method:"post",data:e,timeout:6e4})},backendRequest(){console.log("GO_URL:","http://www.test.com");h({baseURL:"http://www.test.com",method:"get",url:"/hello",timeout:6e4}).then((t=>{console.log("res:",t);const e=t.data||null;this.$message.info(`go服务返回: ${e}`)}))}}},b=t=>(d("data-v-3508e997"),t=t(),p(),t),f={id:"app-base-httpserver"},g=b((()=>r("div",{class:"one-block-1"},[r("span",null," 1. 使用http与主进程通信 ")],-1))),k={class:"one-block-2"},q=b((()=>r("div",{class:"one-block-1"},[r("span",null," 2. 使用http与服务端通信 ")],-1))),w={class:"one-block-2"};const R=t(m,[["render",function(t,e,s,d,p,h){const v=o("a-button");return a(),n("div",f,[g,r("div",k,[r("p",null,"* 状态:"+l(p.currentStatus),1),r("p",null,"* 地址:"+l(p.servicAddress),1),r("p",null,[i("* 发送请求: "),c(v,{onClick:e[0]||(e[0]=t=>h.sendRequest("pictures"))},{default:u((()=>[i(" 打开【我的图片】 ")])),_:1})])]),q,r("div",w,[r("p",null,[c(v,{onClick:e[1]||(e[1]=t=>h.backendRequest())},{default:u((()=>[i(" 发送请求 ")])),_:1}),i(" (请自行创建服务) ")])])])}],["__scopeId","data-v-3508e997"]]);export{R as default};
diff --git a/public/dist/assets/HttpServer-d1901b59.js.gz b/public/dist/assets/HttpServer-d1901b59.js.gz
new file mode 100644
index 0000000..0de0677
Binary files /dev/null and b/public/dist/assets/HttpServer-d1901b59.js.gz differ
diff --git a/public/dist/assets/Index-05794807.js b/public/dist/assets/Index-05794807.js
new file mode 100644
index 0000000..88b80e7
--- /dev/null
+++ b/public/dist/assets/Index-05794807.js
@@ -0,0 +1 @@
+import{i as a}from"./main-ce25b28f.js";import{i as e}from"./ipcRenderer-5e19eaee.js";import{_ as t,r as n,o,b as s,g as u,a as c,w as i,p as l,f as h}from"./index-265ac112.js";const d={data:()=>({autoLaunchChecked:!1}),mounted(){this.init()},methods:{init(){e.invoke(a.autoLaunch,"check").then((a=>{console.log("[ipcRenderer] [autoLaunch] result:",a),this.autoLaunchChecked=a.status}))},autoLaunchChange(a){console.log("[ipcRenderer] [autoLaunch] self.autoLaunchChecked:",this.autoLaunchChecked)}}},r=a=>(l("data-v-1b008e01"),a=a(),h(),a),m={id:"app-base-system-launch"},p={class:"one-block-2"},C=r((()=>u("a",null,"启动",-1))),L=r((()=>u("span",null," 开机自动启动 ",-1)));const k=t(d,[["render",function(a,e,t,l,h,d){const r=n("a-list-item-meta"),k=n("a-switch"),f=n("a-list-item"),g=n("a-list");return o(),s("div",m,[u("div",p,[c(g,{class:"set-auto",itemLayout:"horizontal"},{default:i((()=>[c(f,{style:{"text-align":"left"}},{actions:i((()=>[c(k,{modelValue:h.autoLaunchChecked,"onUpdate:modelValue":e[0]||(e[0]=a=>h.autoLaunchChecked=a),checkedChildren:"开",unCheckedChildren:"关",onChange:e[1]||(e[1]=a=>d.autoLaunchChange())},null,8,["modelValue"])])),default:i((()=>[c(r,null,{title:i((()=>[C])),description:i((()=>[L])),_:1})])),_:1})])),_:1})])])}],["__scopeId","data-v-1b008e01"]]);export{k as default};
diff --git a/public/dist/assets/Index-05794807.js.gz b/public/dist/assets/Index-05794807.js.gz
new file mode 100644
index 0000000..1c524f6
Binary files /dev/null and b/public/dist/assets/Index-05794807.js.gz differ
diff --git a/public/dist/assets/Index-084e8516.js b/public/dist/assets/Index-084e8516.js
new file mode 100644
index 0000000..5741fbd
--- /dev/null
+++ b/public/dist/assets/Index-084e8516.js
@@ -0,0 +1 @@
+import{i as e}from"./main-ce25b28f.js";import{i as t}from"./ipcRenderer-5e19eaee.js";import{_ as o,h as n,r as a,o as l,b as s,g as i,a as d,w as c,e as w,p as m,f as v}from"./index-265ac112.js";const r={data:()=>({views:[{type:"web",content:"https://www.baidu.com/"},{type:"html",content:"/public/html/view_example.html"}]}),methods:{loadViewContent(o){t.invoke(e.loadViewContent,n(this.views[o])).then((e=>{console.log(e)}))},removeViewContent(o){t.invoke(e.removeViewContent,n(this.views[o])).then((e=>{console.log(e)}))}}},p=e=>(m("data-v-792e445a"),e=e(),v(),e),u={id:"app-base-window-view"},h=p((()=>i("div",{class:"one-block-1"},[i("span",null," 1. 嵌入web内容 ")],-1))),f={class:"one-block-2"},C=p((()=>i("div",{class:"one-block-1"},[i("span",null," 2. 嵌入html内容 ")],-1))),b={class:"one-block-2"};const k=o(r,[["render",function(e,t,o,n,m,v){const r=a("a-button"),p=a("a-space");return l(),s("div",u,[h,i("div",f,[d(p,null,{default:c((()=>[d(r,{onClick:t[0]||(t[0]=e=>v.loadViewContent(0))},{default:c((()=>[w("加载百度页面")])),_:1}),d(r,{onClick:t[1]||(t[1]=e=>v.removeViewContent(0))},{default:c((()=>[w("移除百度页面")])),_:1})])),_:1})]),C,i("div",b,[d(p,null,{default:c((()=>[d(r,{onClick:t[2]||(t[2]=e=>v.loadViewContent(1))},{default:c((()=>[w("加载html页面")])),_:1}),d(r,{onClick:t[3]||(t[3]=e=>v.removeViewContent(1))},{default:c((()=>[w("移除html页面")])),_:1})])),_:1})])])}],["__scopeId","data-v-792e445a"]]);export{k as default};
diff --git a/public/dist/assets/Index-084e8516.js.gz b/public/dist/assets/Index-084e8516.js.gz
new file mode 100644
index 0000000..7ae91f5
Binary files /dev/null and b/public/dist/assets/Index-084e8516.js.gz differ
diff --git a/public/dist/assets/Index-08cc02ab.js b/public/dist/assets/Index-08cc02ab.js
new file mode 100644
index 0000000..f6e9a97
--- /dev/null
+++ b/public/dist/assets/Index-08cc02ab.js
@@ -0,0 +1 @@
+import{_ as e,i as n,h as l,j as a,r as o,o as i,b as t,g as d,a as s,w,e as c,p as u,f as b}from"./index-ea5b20ee.js";const p={data:()=>({views:[{type:"web",content:"https://www.bilibili.com/",windowName:"window-web",windowTitle:"bilibili"},{type:"html",content:"/public/html/view_example.html",windowName:"window-html",windowTitle:"html window"},{type:"vue",content:"#/special/subwindow",windowName:"window-vue",windowTitle:"vue window"}]}),methods:{createWindow(e){n.invoke(l.createWindow,a(this.views[e])).then((e=>{console.log(e)}))}}},v=e=>(u("data-v-f82edd5f"),e=e(),b(),e),m={id:"app-base-window"},f=v((()=>d("div",{class:"one-block-1"},[d("span",null," 1. 新窗口中加载web内容 ")],-1))),r={class:"one-block-2"},h=v((()=>d("div",{class:"one-block-1"},[d("span",null," 2. 新窗口中加载html内容 ")],-1))),k={class:"one-block-2"},_=v((()=>d("div",{class:"one-block-1"},[d("span",null," 3. 新窗口中加载当前项目页面 ")],-1))),W={class:"one-block-2"};const x=e(p,[["render",function(e,n,l,a,u,b){const p=o("a-button"),v=o("a-space");return i(),t("div",m,[f,d("div",r,[s(v,null,{default:w((()=>[s(p,{onClick:n[0]||(n[0]=e=>b.createWindow(0))},{default:w((()=>[c("打开哔哩哔哩")])),_:1})])),_:1})]),h,d("div",k,[s(v,null,{default:w((()=>[s(p,{onClick:n[1]||(n[1]=e=>b.createWindow(1))},{default:w((()=>[c("打开html页面")])),_:1})])),_:1})]),_,d("div",W,[s(v,null,{default:w((()=>[s(p,{onClick:n[2]||(n[2]=e=>b.createWindow(2))},{default:w((()=>[c("打开vue页面")])),_:1})])),_:1})])])}],["__scopeId","data-v-f82edd5f"]]);export{x as default};
diff --git a/public/dist/assets/Index-08cc02ab.js.gz b/public/dist/assets/Index-08cc02ab.js.gz
new file mode 100644
index 0000000..ea447e5
Binary files /dev/null and b/public/dist/assets/Index-08cc02ab.js.gz differ
diff --git a/public/dist/assets/Index-096d4d09.css b/public/dist/assets/Index-096d4d09.css
new file mode 100644
index 0000000..de71a17
--- /dev/null
+++ b/public/dist/assets/Index-096d4d09.css
@@ -0,0 +1 @@
+#app-cross-java[data-v-5d226b2a]{padding:0 10px;text-align:left;width:100%}#app-cross-java .one-block-1[data-v-5d226b2a]{font-size:16px;padding-top:10px}#app-cross-java .one-block-2[data-v-5d226b2a]{padding-top:10px}
diff --git a/public/dist/assets/Index-0ca67f51.js b/public/dist/assets/Index-0ca67f51.js
new file mode 100644
index 0000000..0e80697
--- /dev/null
+++ b/public/dist/assets/Index-0ca67f51.js
@@ -0,0 +1 @@
+import{i as e}from"./main-ce25b28f.js";import{i}from"./ipcRenderer-5e19eaee.js";import{_ as n,h as o,r as a,o as l,b as t,g as s,a as d,w,e as c,p as u,f as m}from"./index-265ac112.js";const p={data:()=>({views:[{type:"web",content:"https://www.bilibili.com/",windowName:"window-web",windowTitle:"bilibili"},{type:"html",content:"/public/html/view_example.html",windowName:"window-html",windowTitle:"html window"},{type:"vue",content:"#/special/subwindow",windowName:"window-vue",windowTitle:"vue window"}]}),methods:{createWindow(n){i.invoke(e.createWindow,o(this.views[n])).then((e=>{console.log(e)}))}}},r=e=>(u("data-v-f82edd5f"),e=e(),m(),e),b={id:"app-base-window"},v=r((()=>s("div",{class:"one-block-1"},[s("span",null," 1. 新窗口中加载web内容 ")],-1))),f={class:"one-block-2"},h=r((()=>s("div",{class:"one-block-1"},[s("span",null," 2. 新窗口中加载html内容 ")],-1))),k={class:"one-block-2"},_=r((()=>s("div",{class:"one-block-1"},[s("span",null," 3. 新窗口中加载当前项目页面 ")],-1))),W={class:"one-block-2"};const j=n(p,[["render",function(e,i,n,o,u,m){const p=a("a-button"),r=a("a-space");return l(),t("div",b,[v,s("div",f,[d(r,null,{default:w((()=>[d(p,{onClick:i[0]||(i[0]=e=>m.createWindow(0))},{default:w((()=>[c("打开哔哩哔哩")])),_:1})])),_:1})]),h,s("div",k,[d(r,null,{default:w((()=>[d(p,{onClick:i[1]||(i[1]=e=>m.createWindow(1))},{default:w((()=>[c("打开html页面")])),_:1})])),_:1})]),_,s("div",W,[d(r,null,{default:w((()=>[d(p,{onClick:i[2]||(i[2]=e=>m.createWindow(2))},{default:w((()=>[c("打开vue页面")])),_:1})])),_:1})])])}],["__scopeId","data-v-f82edd5f"]]);export{j as default};
diff --git a/public/dist/assets/Index-0ca67f51.js.gz b/public/dist/assets/Index-0ca67f51.js.gz
new file mode 100644
index 0000000..668a5b6
Binary files /dev/null and b/public/dist/assets/Index-0ca67f51.js.gz differ
diff --git a/public/dist/assets/Index-1570e1ba.css b/public/dist/assets/Index-1570e1ba.css
new file mode 100644
index 0000000..4105d67
--- /dev/null
+++ b/public/dist/assets/Index-1570e1ba.css
@@ -0,0 +1 @@
+#app-base-file[data-v-d30dccef]{padding:0 10px;text-align:left;width:100%}#app-base-file .one-block-1[data-v-d30dccef]{font-size:16px;padding-top:10px}#app-base-file .one-block-2[data-v-d30dccef],#app-base-file .footer[data-v-d30dccef]{padding-top:10px}
diff --git a/public/dist/assets/Index-1980ce01.js b/public/dist/assets/Index-1980ce01.js
new file mode 100644
index 0000000..35292ef
--- /dev/null
+++ b/public/dist/assets/Index-1980ce01.js
@@ -0,0 +1 @@
+import{i as e}from"./main-ce25b28f.js";import{i as s}from"./ipcRenderer-5e19eaee.js";import{a}from"./index-9a8e575f.js";import{s as r}from"./store2-5a46c4a6.js";import{_ as t,r as o,o as i,b as n,g as v,a as c,w as d,e as m,p as l,f}from"./index-265ac112.js";const u={data:()=>({server:""}),methods:{startServer(){s.invoke(e.startJavaServer,{}).then((e=>{0!=e.code?this.$message.error(e.msg):(this.$message.info("异步启动"),r.set("javaService",e.server))}))},closeServer(){s.invoke(e.closeJavaServer,{}).then((e=>{0!=e.code&&this.$message.error(e.msg),this.$message.info("异步关闭"),r.remove("javaService")}))},sendRequest(){const e=r.get("javaService")||"";if(""==e)return void this.$message.error("服务未开启 或 正在启动中");a({method:"get",url:e+"/test1/get",params:{id:"1111111"},timeout:6e4}).then((e=>{const s=e.data||null;this.$message.info(`java服务返回: ${s}`)}))}}},p={id:"app-other"},g=(e=>(l("data-v-c3213243"),e=e(),f(),e))((()=>v("div",{class:"one-block-1"},[v("span",null," 请求java服务接口(废弃,请使用跨语言服务) ")],-1))),h={class:"one-block-2"};const j=t(u,[["render",function(e,s,a,r,t,l){const f=o("a-button"),u=o("a-space");return i(),n("div",p,[g,v("div",h,[c(u,null,{default:d((()=>[c(f,{onClick:s[0]||(s[0]=e=>l.startServer())},{default:d((()=>[m(" 启动java项目 ")])),_:1}),c(f,{onClick:s[1]||(s[1]=e=>l.sendRequest())},{default:d((()=>[m(" 测试接口 ")])),_:1}),c(f,{onClick:s[2]||(s[2]=e=>l.closeServer())},{default:d((()=>[m(" 关闭java项目 ")])),_:1})])),_:1})])])}],["__scopeId","data-v-c3213243"]]);export{j as default};
diff --git a/public/dist/assets/Index-1980ce01.js.gz b/public/dist/assets/Index-1980ce01.js.gz
new file mode 100644
index 0000000..dfd12fc
Binary files /dev/null and b/public/dist/assets/Index-1980ce01.js.gz differ
diff --git a/public/dist/assets/Index-2000eb61.js b/public/dist/assets/Index-2000eb61.js
new file mode 100644
index 0000000..e7560a9
--- /dev/null
+++ b/public/dist/assets/Index-2000eb61.js
@@ -0,0 +1 @@
+import{i as e}from"./main-ce25b28f.js";import{i as a}from"./ipcRenderer-5e19eaee.js";import{_ as l,r as n,o as t,b as s,g as d,a as o,w as u,e as i,t as p,p as _,f as r}from"./index-265ac112.js";const c={data:()=>({name:"张三",age:10,userList:["空"],search_age:10,update_name:"张三",update_age:21,delete_name:"张三",all_list:["空"],data_dir:""}),mounted(){this.init()},methods:{init(){a.invoke(e.jsondbOperation,{action:"getDataDir"}).then((e=>{this.data_dir=e.result,this.getAllTestData()}))},getAllTestData(){a.invoke(e.jsondbOperation,{action:"all"}).then((e=>{if(console.log("res:",e),0==e.all_list.length)return!1;this.all_list=e.all_list}))},selectDir(){a.invoke(e.selectFolder,"").then((e=>{this.data_dir=e,this.modifyDataDir(e)}))},openDir(){a.invoke(e.openDirectory,{id:this.data_dir}).then((e=>{}))},modifyDataDir(l){const n={action:"setDataDir",data_dir:l};a.invoke(e.jsondbOperation,n).then((e=>{this.all_list=e.all_list}))},dbOperation(l){const n={action:l,info:{name:this.name,age:parseInt(this.age)},search_age:parseInt(this.search_age),update_name:this.update_name,update_age:parseInt(this.update_age),delete_name:this.delete_name};"add"==l&&0==this.name.length&&this.$message.error("请填写数据"),a.invoke(e.jsondbOperation,n).then((e=>{if(console.log("res:",e),"get"==l){if(0==e.result.length)return void this.$message.error("没有数据");this.userList=e.result}0!=e.all_list.length?(this.all_list=e.all_list,this.$message.success("success")):this.all_list=["空"]}))}}},m=e=>(_("data-v-364fc463"),e=e(),r(),e),f={id:"app-base-db"},h=m((()=>d("div",{class:"one-block-1"},[d("span",null," 1. jsondb本地数据库 ")],-1))),v={class:"one-block-2"},b=m((()=>d("div",{class:"one-block-1"},[d("span",null," 2. 数据目录 ")],-1))),g={class:"one-block-2"},k=m((()=>d("div",{class:"one-block-1"},[d("span",null," 3. 测试数据 ")],-1))),V={class:"one-block-2"},D=m((()=>d("div",{class:"one-block-1"},[d("span",null," 4. 添加数据 ")],-1))),j={class:"one-block-2"},O=m((()=>d("div",{class:"one-block-1"},[d("span",null," 5. 获取数据 ")],-1))),C={class:"one-block-2"},U=m((()=>d("div",{class:"one-block-1"},[d("span",null," 6. 修改数据 ")],-1))),I={class:"one-block-2"},w=m((()=>d("div",{class:"one-block-1"},[d("span",null," 7. 删除数据 ")],-1))),y={class:"one-block-2"};const L=l(c,[["render",function(e,a,l,_,r,c){const m=n("a-col"),L=n("a-row"),$=n("a-input"),x=n("a-button");return t(),s("div",f,[h,d("div",v,[o(L,null,{default:u((()=>[o(m,{span:8},{default:u((()=>[i(" • 小数据量: 0~100M(单库) ")])),_:1}),o(m,{span:8},{default:u((()=>[i(" • json数据库 ")])),_:1}),o(m,{span:8},{default:u((()=>[i(" • 兼容lodash语法 ")])),_:1})])),_:1})]),b,d("div",g,[o(L,null,{default:u((()=>[o(m,{span:12},{default:u((()=>[o($,{modelValue:r.data_dir,"onUpdate:modelValue":a[0]||(a[0]=e=>r.data_dir=e),value:r.data_dir,"addon-before":"数据目录"},null,8,["modelValue","value"])])),_:1}),o(m,{span:2}),o(m,{span:5},{default:u((()=>[o(x,{onClick:c.selectDir},{default:u((()=>[i(" 修改目录 ")])),_:1},8,["onClick"])])),_:1}),o(m,{span:5},{default:u((()=>[o(x,{onClick:c.openDir},{default:u((()=>[i(" 打开目录 ")])),_:1},8,["onClick"])])),_:1})])),_:1})]),k,d("div",V,[o(L,null,{default:u((()=>[o(m,{span:24},{default:u((()=>[i(p(r.all_list),1)])),_:1})])),_:1})]),D,d("div",j,[o(L,null,{default:u((()=>[o(m,{span:6},{default:u((()=>[o($,{modelValue:r.name,"onUpdate:modelValue":a[1]||(a[1]=e=>r.name=e),value:r.name,"addon-before":"姓名"},null,8,["modelValue","value"])])),_:1}),o(m,{span:3}),o(m,{span:6},{default:u((()=>[o($,{modelValue:r.age,"onUpdate:modelValue":a[2]||(a[2]=e=>r.age=e),value:r.age,"addon-before":"年龄"},null,8,["modelValue","value"])])),_:1}),o(m,{span:3}),o(m,{span:6},{default:u((()=>[o(x,{onClick:a[3]||(a[3]=e=>c.dbOperation("add"))},{default:u((()=>[i(" 添加 ")])),_:1})])),_:1})])),_:1})]),O,d("div",C,[o(L,null,{default:u((()=>[o(m,{span:6},{default:u((()=>[o($,{modelValue:r.search_age,"onUpdate:modelValue":a[4]||(a[4]=e=>r.search_age=e),value:r.search_age,"addon-before":"年龄"},null,8,["modelValue","value"])])),_:1}),o(m,{span:3}),o(m,{span:6}),o(m,{span:3}),o(m,{span:6},{default:u((()=>[o(x,{onClick:a[5]||(a[5]=e=>c.dbOperation("get"))},{default:u((()=>[i(" 查找 ")])),_:1})])),_:1})])),_:1}),o(L,null,{default:u((()=>[o(m,{span:24},{default:u((()=>[i(p(r.userList),1)])),_:1})])),_:1})]),U,d("div",I,[o(L,null,{default:u((()=>[o(m,{span:6},{default:u((()=>[o($,{modelValue:r.update_name,"onUpdate:modelValue":a[6]||(a[6]=e=>r.update_name=e),value:r.update_name,"addon-before":"姓名"},null,8,["modelValue","value"])])),_:1}),o(m,{span:3}),o(m,{span:6},{default:u((()=>[o($,{modelValue:r.update_age,"onUpdate:modelValue":a[7]||(a[7]=e=>r.update_age=e),value:r.update_age,"addon-before":"年龄"},null,8,["modelValue","value"])])),_:1}),o(m,{span:3}),o(m,{span:6},{default:u((()=>[o(x,{onClick:a[8]||(a[8]=e=>c.dbOperation("update"))},{default:u((()=>[i(" 更新 ")])),_:1})])),_:1})])),_:1})]),w,d("div",y,[o(L,null,{default:u((()=>[o(m,{span:6},{default:u((()=>[o($,{modelValue:r.delete_name,"onUpdate:modelValue":a[9]||(a[9]=e=>r.delete_name=e),value:r.delete_name,"addon-before":"姓名"},null,8,["modelValue","value"])])),_:1}),o(m,{span:3}),o(m,{span:6}),o(m,{span:3}),o(m,{span:6},{default:u((()=>[o(x,{onClick:a[10]||(a[10]=e=>c.dbOperation("del"))},{default:u((()=>[i(" 删除 ")])),_:1})])),_:1})])),_:1})])])}],["__scopeId","data-v-364fc463"]]);export{L as default};
diff --git a/public/dist/assets/Index-2000eb61.js.gz b/public/dist/assets/Index-2000eb61.js.gz
new file mode 100644
index 0000000..a28a5a5
Binary files /dev/null and b/public/dist/assets/Index-2000eb61.js.gz differ
diff --git a/public/dist/assets/Index-22c8ad14.js b/public/dist/assets/Index-22c8ad14.js
new file mode 100644
index 0000000..b9e80d5
--- /dev/null
+++ b/public/dist/assets/Index-22c8ad14.js
@@ -0,0 +1 @@
+import{_ as e,i as s,h as a,r as l,o,b as t,g as i,a as n,w as d,e as c,p as r,f as u}from"./index-ea5b20ee.js";import{s as p}from"./store2-204267a2.js";const f=[{content:"【下载】目录",id:"downloads"},{content:"【图片】目录",id:"pictures"},{content:"【文档】目录",id:"documents"},{content:"【音乐】目录",id:"music"}],h={data:()=>({file_list:f,action_url:"",image_info:[],num:0,servicAddress:"",dir_path:"D:\\www\\ee"}),mounted(){this.getHost()},methods:{getHost(){s.invoke(a.checkHttpServer,{}).then((e=>{if(e.enable){this.servicAddress=e.server,p.set("httpServiceConfig",e);const s=e.server||"http://localhost:7071";let l=a.uploadFile.split(".").join("/");this.action_url=s+"/"+l}}))},openDirectry(e){s.invoke(a.openDirectory,{id:e}).then((e=>{}))},selectDir(){s.invoke(a.selectFolder,"").then((e=>{this.dir_path=e,this.$message.info(e)}))},messageShow(){s.invoke(a.messageShow,"").then((e=>{this.$message.info(e)}))},messageShowConfirm(){s.invoke(a.messageShowConfirm,"").then((e=>{this.$message.info(e)}))},handleFileChange(e){if(console.log("handleFileChange-----"),""==this.action_url)return void this.$message.error("http服务未开启");const s=e.file.status;if("uploading"!==s&&console.log(e.file),"done"===s){const s=e.file.response;if(console.log("uploadRes:",s),"success"!==s.code)return this.$message.error(`file upload failed ${s.code} .`),!1;this.num++;const a=s.data;a.id=this.num,a.imageUrlText="image url",this.image_info.push(a),this.$message.success(`${e.file.name} file uploaded successfully.`)}else"error"===s&&this.$message.error(`${e.file.name} file upload failed.`)}}},m=e=>(r("data-v-d30dccef"),e=e(),u(),e),g={id:"app-base-file"},_=m((()=>i("div",{class:"one-block-1"},[i("span",null," 1. 系统原生对话框 ")],-1))),v={class:"one-block-2"},k=m((()=>i("div",{class:"one-block-1"},[i("span",null," 2. 选择保存目录 ")],-1))),C={class:"one-block-2"},b=m((()=>i("div",{class:"one-block-1"},[i("span",null," 3. 打开文件夹 ")],-1))),w={class:"one-block-2"},$=m((()=>i("div",{class:"one-block-1"},[i("span",null," 4. 上传文件到图床 ")],-1))),S={class:"one-block-2"},D=m((()=>i("p",{class:"ant-upload-drag-icon"},null,-1))),y=m((()=>i("p",{class:"ant-upload-text"}," 点击 或 拖拽文件到这里 ",-1))),F=m((()=>i("p",{class:"ant-upload-hint"}," 注意:请使用您自己的图床token ",-1))),x=m((()=>i("div",{class:"footer"},null,-1)));const j=e(h,[["render",function(e,s,a,r,u,p){const f=l("a-button"),h=l("a-space"),m=l("a-input"),j=l("a-col"),H=l("a-row"),V=l("a-card"),A=l("a-list-item"),I=l("a-list"),U=l("a-upload-dragger");return o(),t("div",g,[_,i("div",v,[n(h,null,{default:d((()=>[n(f,{onClick:s[0]||(s[0]=e=>p.messageShow())},{default:d((()=>[c("消息提示(ipc)")])),_:1}),n(f,{onClick:s[1]||(s[1]=e=>p.messageShowConfirm())},{default:d((()=>[c("消息提示与确认(ipc)")])),_:1})])),_:1})]),k,i("div",C,[n(H,null,{default:d((()=>[n(j,{span:12},{default:d((()=>[n(m,{modelValue:u.dir_path,"onUpdate:modelValue":s[2]||(s[2]=e=>u.dir_path=e),value:u.dir_path,"addon-before":"保存目录"},null,8,["modelValue","value"])])),_:1}),n(j,{span:12},{default:d((()=>[n(f,{onClick:p.selectDir},{default:d((()=>[c(" 修改目录 ")])),_:1},8,["onClick"])])),_:1})])),_:1})]),b,i("div",w,[n(I,{grid:{gutter:16,column:4},"data-source":u.file_list},{renderItem:d((({item:e})=>[n(A,{onClick:s=>p.openDirectry(e.id)},{default:d((()=>[n(V,{title:e.content},{default:d((()=>[n(f,{type:"link"},{default:d((()=>[c(" 打开 ")])),_:1})])),_:2},1032,["title"])])),_:2},1032,["onClick"])])),_:1},8,["data-source"])]),$,i("div",S,[n(U,{name:"file",multiple:!0,action:u.action_url,onChange:p.handleFileChange},{default:d((()=>[D,y,F])),_:1},8,["action","onChange"])]),x])}],["__scopeId","data-v-d30dccef"]]);export{j as default};
diff --git a/public/dist/assets/Index-22c8ad14.js.gz b/public/dist/assets/Index-22c8ad14.js.gz
new file mode 100644
index 0000000..caa3cdc
Binary files /dev/null and b/public/dist/assets/Index-22c8ad14.js.gz differ
diff --git a/public/dist/assets/Index-254e6122.js b/public/dist/assets/Index-254e6122.js
new file mode 100644
index 0000000..85e0cc2
--- /dev/null
+++ b/public/dist/assets/Index-254e6122.js
@@ -0,0 +1 @@
+import{i as s}from"./main-ce25b28f.js";import{i as r}from"./ipcRenderer-5e19eaee.js";import{_ as e,r as o,o as i,b as p,g as l,a as d,w as t,e as a,t as n,p as u,f as c}from"./index-265ac112.js";const g={data:()=>({processPids:"",progress1:0,progress2:0,progress3:0,progress4:0,progress5:0,progress6:0,progress1_pid:0,progress2_pid:0,progress3_pid:0,progress4_pid:0,progress5_pid:0,progress6_pid:0}),mounted(){this.init()},methods:{init(){r.removeAllListeners(s.timerJobProgress),r.removeAllListeners(s.createPoolNotice),r.on(s.timerJobProgress,((s,r)=>{switch(r.jobId){case 1:this.progress1=r.number,this.progress1_pid=0==r.pid?r.pid:this.progress1_pid;break;case 2:this.progress2=r.number,this.progress2_pid=0==r.pid?r.pid:this.progress2_pid;break;case 3:this.progress3=r.number,this.progress3_pid=0==r.pid?r.pid:this.progress3_pid;break;case 4:this.progress4=r.number,this.progress4_pid=0==r.pid?r.pid:this.progress4_pid;break;case 5:this.progress5=r.number,this.progress5_pid=0==r.pid?r.pid:this.progress5_pid;break;case 6:this.progress6=r.number,this.progress6_pid=0==r.pid?r.pid:this.progress6_pid}})),r.on(s.createPoolNotice,((s,r)=>{let e=JSON.stringify(r);this.processPids=e}))},runJob(e,o){let i={id:e,type:"timer",action:o};r.invoke(s.someJob,i).then((s=>{if("close"!=o)switch(s.jobId){case 1:this.progress1_pid=s.result.pid;break;case 2:this.progress2_pid=s.result.pid}}))},createPool(){r.send(s.createPool,{number:3})},runJobByPool(e,o){let i={id:e,type:"timer",action:o};r.invoke(s.someJobByPool,i).then((s=>{switch(s.jobId){case 3:this.progress3_pid=s.result.pid;break;case 4:this.progress4_pid=s.result.pid;break;case 5:this.progress5_pid=s.result.pid;break;case 6:this.progress6_pid=s.result.pid}}))}}},_=s=>(u("data-v-71705fa7"),s=s(),c(),s),b={id:"app-base-jobs"},h=_((()=>l("div",{class:"one-block-1"},[l("span",null," 1. 任务 / 并发任务 ")],-1))),f={class:"one-block-2"},k=_((()=>l("p",null,null,-1))),m=_((()=>l("div",{class:"one-block-1"},[l("span",null," 2. 任务池 / 并发任务 ")],-1))),P={class:"one-block-2"},J=_((()=>l("p",null,null,-1))),v=_((()=>l("p",null,null,-1))),y=_((()=>l("p",null,null,-1))),C=_((()=>l("p",null,null,-1)));const j=e(g,[["render",function(s,r,e,u,c,g){const _=o("a-button"),j=o("a-space");return i(),p("div",b,[h,l("div",f,[d(j,null,{default:t((()=>[d(_,{onClick:r[0]||(r[0]=s=>g.runJob(1,"create"))},{default:t((()=>[a("执行任务1")])),_:1}),a(" 进度:"+n(c.progress1)+" , 进程pid:"+n(c.progress1_pid)+" ",1),d(_,{onClick:r[1]||(r[1]=s=>g.runJob(1,"close"))},{default:t((()=>[a("关闭")])),_:1})])),_:1}),k,d(j,null,{default:t((()=>[d(_,{onClick:r[2]||(r[2]=s=>g.runJob(2,"create"))},{default:t((()=>[a("执行任务2")])),_:1}),a(" 进度:"+n(c.progress2)+" , 进程pid:"+n(c.progress2_pid)+" ",1),d(_,{onClick:r[3]||(r[3]=s=>g.runJob(2,"close"))},{default:t((()=>[a("关闭")])),_:1})])),_:1})]),m,l("div",P,[d(j,null,{default:t((()=>[d(_,{onClick:r[4]||(r[4]=s=>g.createPool())},{default:t((()=>[a("创建进程池")])),_:1}),a(" 进程pids:"+n(c.processPids),1)])),_:1}),J,d(j,null,{default:t((()=>[d(_,{onClick:r[5]||(r[5]=s=>g.runJobByPool(3,"run"))},{default:t((()=>[a("执行任务3")])),_:1}),a(" 进度:"+n(c.progress3)+" ,进程pid:"+n(c.progress3_pid),1)])),_:1}),v,d(j,null,{default:t((()=>[d(_,{onClick:r[6]||(r[6]=s=>g.runJobByPool(4,"run"))},{default:t((()=>[a("执行任务4")])),_:1}),a(" 进度:"+n(c.progress4)+" ,进程pid:"+n(c.progress4_pid),1)])),_:1}),y,d(j,null,{default:t((()=>[d(_,{onClick:r[7]||(r[7]=s=>g.runJobByPool(5,"run"))},{default:t((()=>[a("执行任务5")])),_:1}),a(" 进度:"+n(c.progress5)+" ,进程pid:"+n(c.progress5_pid),1)])),_:1}),C,d(j,null,{default:t((()=>[d(_,{onClick:r[8]||(r[8]=s=>g.runJobByPool(6,"run"))},{default:t((()=>[a("执行任务6")])),_:1}),a(" 进度:"+n(c.progress6)+" ,进程pid:"+n(c.progress6_pid),1)])),_:1})])])}],["__scopeId","data-v-71705fa7"]]);export{j as default};
diff --git a/public/dist/assets/Index-254e6122.js.gz b/public/dist/assets/Index-254e6122.js.gz
new file mode 100644
index 0000000..ddb7e5f
Binary files /dev/null and b/public/dist/assets/Index-254e6122.js.gz differ
diff --git a/public/dist/assets/Index-266fdb27.js b/public/dist/assets/Index-266fdb27.js
new file mode 100644
index 0000000..c3b98be
--- /dev/null
+++ b/public/dist/assets/Index-266fdb27.js
@@ -0,0 +1 @@
+import{_ as e,i as a,h as l,r as n,o as t,b as s,g as d,a as o,w as u,e as i,t as p,p as _,f as r}from"./index-ea5b20ee.js";const c={data:()=>({name:"张三",age:10,userList:["空"],search_age:10,update_name:"张三",update_age:21,delete_name:"张三",all_list:["空"],data_dir:""}),mounted(){this.init()},methods:{init(){a.invoke(l.jsondbOperation,{action:"getDataDir"}).then((e=>{this.data_dir=e.result,this.getAllTestData()}))},getAllTestData(){a.invoke(l.jsondbOperation,{action:"all"}).then((e=>{if(console.log("res:",e),0==e.all_list.length)return!1;this.all_list=e.all_list}))},selectDir(){a.invoke(l.selectFolder,"").then((e=>{this.data_dir=e,this.modifyDataDir(e)}))},openDir(){a.invoke(l.openDirectory,{id:this.data_dir}).then((e=>{}))},modifyDataDir(e){const n={action:"setDataDir",data_dir:e};a.invoke(l.jsondbOperation,n).then((e=>{this.all_list=e.all_list}))},dbOperation(e){const n={action:e,info:{name:this.name,age:parseInt(this.age)},search_age:parseInt(this.search_age),update_name:this.update_name,update_age:parseInt(this.update_age),delete_name:this.delete_name};"add"==e&&0==this.name.length&&this.$message.error("请填写数据"),a.invoke(l.jsondbOperation,n).then((a=>{if(console.log("res:",a),"get"==e){if(0==a.result.length)return void this.$message.error("没有数据");this.userList=a.result}0!=a.all_list.length?(this.all_list=a.all_list,this.$message.success("success")):this.all_list=["空"]}))}}},f=e=>(_("data-v-364fc463"),e=e(),r(),e),m={id:"app-base-db"},h=f((()=>d("div",{class:"one-block-1"},[d("span",null," 1. jsondb本地数据库 ")],-1))),v={class:"one-block-2"},b=f((()=>d("div",{class:"one-block-1"},[d("span",null," 2. 数据目录 ")],-1))),g={class:"one-block-2"},k=f((()=>d("div",{class:"one-block-1"},[d("span",null," 3. 测试数据 ")],-1))),V={class:"one-block-2"},D=f((()=>d("div",{class:"one-block-1"},[d("span",null," 4. 添加数据 ")],-1))),O={class:"one-block-2"},C=f((()=>d("div",{class:"one-block-1"},[d("span",null," 5. 获取数据 ")],-1))),j={class:"one-block-2"},U=f((()=>d("div",{class:"one-block-1"},[d("span",null," 6. 修改数据 ")],-1))),I={class:"one-block-2"},y=f((()=>d("div",{class:"one-block-1"},[d("span",null," 7. 删除数据 ")],-1))),L={class:"one-block-2"};const $=e(c,[["render",function(e,a,l,_,r,c){const f=n("a-col"),$=n("a-row"),w=n("a-input"),x=n("a-button");return t(),s("div",m,[h,d("div",v,[o($,null,{default:u((()=>[o(f,{span:8},{default:u((()=>[i(" • 小数据量: 0~100M(单库) ")])),_:1}),o(f,{span:8},{default:u((()=>[i(" • json数据库 ")])),_:1}),o(f,{span:8},{default:u((()=>[i(" • 兼容lodash语法 ")])),_:1})])),_:1})]),b,d("div",g,[o($,null,{default:u((()=>[o(f,{span:12},{default:u((()=>[o(w,{modelValue:r.data_dir,"onUpdate:modelValue":a[0]||(a[0]=e=>r.data_dir=e),value:r.data_dir,"addon-before":"数据目录"},null,8,["modelValue","value"])])),_:1}),o(f,{span:2}),o(f,{span:5},{default:u((()=>[o(x,{onClick:c.selectDir},{default:u((()=>[i(" 修改目录 ")])),_:1},8,["onClick"])])),_:1}),o(f,{span:5},{default:u((()=>[o(x,{onClick:c.openDir},{default:u((()=>[i(" 打开目录 ")])),_:1},8,["onClick"])])),_:1})])),_:1})]),k,d("div",V,[o($,null,{default:u((()=>[o(f,{span:24},{default:u((()=>[i(p(r.all_list),1)])),_:1})])),_:1})]),D,d("div",O,[o($,null,{default:u((()=>[o(f,{span:6},{default:u((()=>[o(w,{modelValue:r.name,"onUpdate:modelValue":a[1]||(a[1]=e=>r.name=e),value:r.name,"addon-before":"姓名"},null,8,["modelValue","value"])])),_:1}),o(f,{span:3}),o(f,{span:6},{default:u((()=>[o(w,{modelValue:r.age,"onUpdate:modelValue":a[2]||(a[2]=e=>r.age=e),value:r.age,"addon-before":"年龄"},null,8,["modelValue","value"])])),_:1}),o(f,{span:3}),o(f,{span:6},{default:u((()=>[o(x,{onClick:a[3]||(a[3]=e=>c.dbOperation("add"))},{default:u((()=>[i(" 添加 ")])),_:1})])),_:1})])),_:1})]),C,d("div",j,[o($,null,{default:u((()=>[o(f,{span:6},{default:u((()=>[o(w,{modelValue:r.search_age,"onUpdate:modelValue":a[4]||(a[4]=e=>r.search_age=e),value:r.search_age,"addon-before":"年龄"},null,8,["modelValue","value"])])),_:1}),o(f,{span:3}),o(f,{span:6}),o(f,{span:3}),o(f,{span:6},{default:u((()=>[o(x,{onClick:a[5]||(a[5]=e=>c.dbOperation("get"))},{default:u((()=>[i(" 查找 ")])),_:1})])),_:1})])),_:1}),o($,null,{default:u((()=>[o(f,{span:24},{default:u((()=>[i(p(r.userList),1)])),_:1})])),_:1})]),U,d("div",I,[o($,null,{default:u((()=>[o(f,{span:6},{default:u((()=>[o(w,{modelValue:r.update_name,"onUpdate:modelValue":a[6]||(a[6]=e=>r.update_name=e),value:r.update_name,"addon-before":"姓名"},null,8,["modelValue","value"])])),_:1}),o(f,{span:3}),o(f,{span:6},{default:u((()=>[o(w,{modelValue:r.update_age,"onUpdate:modelValue":a[7]||(a[7]=e=>r.update_age=e),value:r.update_age,"addon-before":"年龄"},null,8,["modelValue","value"])])),_:1}),o(f,{span:3}),o(f,{span:6},{default:u((()=>[o(x,{onClick:a[8]||(a[8]=e=>c.dbOperation("update"))},{default:u((()=>[i(" 更新 ")])),_:1})])),_:1})])),_:1})]),y,d("div",L,[o($,null,{default:u((()=>[o(f,{span:6},{default:u((()=>[o(w,{modelValue:r.delete_name,"onUpdate:modelValue":a[9]||(a[9]=e=>r.delete_name=e),value:r.delete_name,"addon-before":"姓名"},null,8,["modelValue","value"])])),_:1}),o(f,{span:3}),o(f,{span:6}),o(f,{span:3}),o(f,{span:6},{default:u((()=>[o(x,{onClick:a[10]||(a[10]=e=>c.dbOperation("del"))},{default:u((()=>[i(" 删除 ")])),_:1})])),_:1})])),_:1})])])}],["__scopeId","data-v-364fc463"]]);export{$ as default};
diff --git a/public/dist/assets/Index-266fdb27.js.gz b/public/dist/assets/Index-266fdb27.js.gz
new file mode 100644
index 0000000..faa2787
Binary files /dev/null and b/public/dist/assets/Index-266fdb27.js.gz differ
diff --git a/public/dist/assets/Index-28b1ea1d.js b/public/dist/assets/Index-28b1ea1d.js
new file mode 100644
index 0000000..7f86548
--- /dev/null
+++ b/public/dist/assets/Index-28b1ea1d.js
@@ -0,0 +1 @@
+import{_ as s,i as e,s as a,h as t,r as o,o as n,b as r,g as c,a as d,w as l,e as p,t as i,p as u,f as h}from"./index-ea5b20ee.js";const f={data:()=>({status:0,progress:"",percentNumber:0}),mounted(){this.init()},methods:{init(){e.removeAllListeners(a.appUpdater),e.on(a.appUpdater,((s,e)=>{e=JSON.parse(e),this.status=e.status,3==e.status?(this.progress=e.desc,this.percentNumber=e.percentNumber):this.$message.info(e.desc)}))},checkForUpdater(){e.invoke(t.checkForUpdater).then((s=>{console.log(s)}))},download(){1===this.status?e.invoke(t.downloadApp).then((s=>{console.log(s)})):this.$message.info("没有可用版本")}}},m=s=>(u("data-v-88c3fe69"),s=s(),h(),s),k={id:"app-demo-window"},v=m((()=>c("div",{class:"one-block-1"},[c("span",null," 1. 自动更新 ")],-1))),b={class:"one-block-2"},g=m((()=>c("div",{class:"one-block-1"},[c("span",null," 2. 下载进度 ")],-1))),_={class:"one-block-2"};const w=s(f,[["render",function(s,e,a,t,u,h){const f=o("a-button"),m=o("a-space"),w=o("a-progress");return n(),r("div",k,[v,c("div",b,[d(m,null,{default:l((()=>[d(f,{onClick:e[0]||(e[0]=s=>h.checkForUpdater())},{default:l((()=>[p("检查更新")])),_:1}),d(f,{onClick:e[1]||(e[1]=s=>h.download())},{default:l((()=>[p("下载并安装")])),_:1})])),_:1})]),g,c("div",_,[d(w,{percent:u.percentNumber,status:"active"},null,8,["percent"]),d(m,null,{default:l((()=>[p(i(u.progress),1)])),_:1})])])}],["__scopeId","data-v-88c3fe69"]]);export{w as default};
diff --git a/public/dist/assets/Index-28b1ea1d.js.gz b/public/dist/assets/Index-28b1ea1d.js.gz
new file mode 100644
index 0000000..4254dae
Binary files /dev/null and b/public/dist/assets/Index-28b1ea1d.js.gz differ
diff --git a/public/dist/assets/Index-2aab5368.js b/public/dist/assets/Index-2aab5368.js
new file mode 100644
index 0000000..28fa811
--- /dev/null
+++ b/public/dist/assets/Index-2aab5368.js
@@ -0,0 +1 @@
+import{_ as a,i as e,h as t,r as n,o as s,b as o,g as u,a as c,w as l,p as h,f as i}from"./index-ea5b20ee.js";const d={data:()=>({autoLaunchChecked:!1}),mounted(){this.init()},methods:{init(){e.invoke(t.autoLaunch,"check").then((a=>{console.log("[ipcRenderer] [autoLaunch] result:",a),this.autoLaunchChecked=a.status}))},autoLaunchChange(a){console.log("[ipcRenderer] [autoLaunch] self.autoLaunchChecked:",this.autoLaunchChecked)}}},r=a=>(h("data-v-1b008e01"),a=a(),i(),a),m={id:"app-base-system-launch"},C={class:"one-block-2"},L=r((()=>u("a",null,"启动",-1))),k=r((()=>u("span",null," 开机自动启动 ",-1)));const p=a(d,[["render",function(a,e,t,h,i,d){const r=n("a-list-item-meta"),p=n("a-switch"),f=n("a-list-item"),g=n("a-list");return s(),o("div",m,[u("div",C,[c(g,{class:"set-auto",itemLayout:"horizontal"},{default:l((()=>[c(f,{style:{"text-align":"left"}},{actions:l((()=>[c(p,{modelValue:i.autoLaunchChecked,"onUpdate:modelValue":e[0]||(e[0]=a=>i.autoLaunchChecked=a),checkedChildren:"开",unCheckedChildren:"关",onChange:e[1]||(e[1]=a=>d.autoLaunchChange())},null,8,["modelValue"])])),default:l((()=>[c(r,null,{title:l((()=>[L])),description:l((()=>[k])),_:1})])),_:1})])),_:1})])])}],["__scopeId","data-v-1b008e01"]]);export{p as default};
diff --git a/public/dist/assets/Index-2aab5368.js.gz b/public/dist/assets/Index-2aab5368.js.gz
new file mode 100644
index 0000000..2fc2dd3
Binary files /dev/null and b/public/dist/assets/Index-2aab5368.js.gz differ
diff --git a/public/dist/assets/Index-2fac77ef.js b/public/dist/assets/Index-2fac77ef.js
new file mode 100644
index 0000000..e22de30
--- /dev/null
+++ b/public/dist/assets/Index-2fac77ef.js
@@ -0,0 +1 @@
+import{_ as e,i as t,h as o,j as n,r as a,o as l,b as s,g as i,a as d,w as c,e as w,p as v,f as u}from"./index-ea5b20ee.js";const m={data:()=>({views:[{type:"web",content:"https://www.baidu.com/"},{type:"html",content:"/public/html/view_example.html"}]}),methods:{loadViewContent(e){t.invoke(o.loadViewContent,n(this.views[e])).then((e=>{console.log(e)}))},removeViewContent(e){t.invoke(o.removeViewContent,n(this.views[e])).then((e=>{console.log(e)}))}}},p=e=>(v("data-v-792e445a"),e=e(),u(),e),h={id:"app-base-window-view"},r=p((()=>i("div",{class:"one-block-1"},[i("span",null," 1. 嵌入web内容 ")],-1))),C={class:"one-block-2"},b=p((()=>i("div",{class:"one-block-1"},[i("span",null," 2. 嵌入html内容 ")],-1))),f={class:"one-block-2"};const k=e(m,[["render",function(e,t,o,n,v,u){const m=a("a-button"),p=a("a-space");return l(),s("div",h,[r,i("div",C,[d(p,null,{default:c((()=>[d(m,{onClick:t[0]||(t[0]=e=>u.loadViewContent(0))},{default:c((()=>[w("加载百度页面")])),_:1}),d(m,{onClick:t[1]||(t[1]=e=>u.removeViewContent(0))},{default:c((()=>[w("移除百度页面")])),_:1})])),_:1})]),b,i("div",f,[d(p,null,{default:c((()=>[d(m,{onClick:t[2]||(t[2]=e=>u.loadViewContent(1))},{default:c((()=>[w("加载html页面")])),_:1}),d(m,{onClick:t[3]||(t[3]=e=>u.removeViewContent(1))},{default:c((()=>[w("移除html页面")])),_:1})])),_:1})])])}],["__scopeId","data-v-792e445a"]]);export{k as default};
diff --git a/public/dist/assets/Index-2fac77ef.js.gz b/public/dist/assets/Index-2fac77ef.js.gz
new file mode 100644
index 0000000..aea2c20
Binary files /dev/null and b/public/dist/assets/Index-2fac77ef.js.gz differ
diff --git a/public/dist/assets/Index-36bbde3b.css b/public/dist/assets/Index-36bbde3b.css
new file mode 100644
index 0000000..6654c80
--- /dev/null
+++ b/public/dist/assets/Index-36bbde3b.css
@@ -0,0 +1 @@
+#app-cross-go[data-v-e1875343]{padding:0 10px;text-align:left;width:100%}#app-cross-go .one-block-1[data-v-e1875343]{font-size:16px;padding-top:10px}#app-cross-go .one-block-2[data-v-e1875343]{padding-top:10px}
diff --git a/public/dist/assets/Index-40e608ea.js b/public/dist/assets/Index-40e608ea.js
new file mode 100644
index 0000000..509701a
--- /dev/null
+++ b/public/dist/assets/Index-40e608ea.js
@@ -0,0 +1 @@
+import{a as e}from"./logo-9754eb61.js";import{_ as a,i as n,h as o,r as t,o as i,b as l,g as s,a as c,w as p,e as d,l as u,v as g,p as m,f as r}from"./index-ea5b20ee.js";const y=""+new URL("login-48da88de.png",import.meta.url).href,h=Object.freeze(Object.defineProperty({__proto__:null,default:y},Symbol.toStringTag,{value:"Module"})),f=[{name:"对话框",type:"icon-duihuakuang"},{name:"闹钟",type:"icon-naozhong"},{name:"笑脸",type:"icon-xiaolian"},{name:"ok",type:"icon-ok"},{name:"风车",type:"icon-fengche"},{name:"汗颜",type:"icon-hanyan"},{name:"相机",type:"icon-xiangji"},{name:"礼物",type:"icon-liwu"},{name:"礼花",type:"icon-lihua"},{name:"扭蛋",type:"icon-niudan"},{name:"流星",type:"icon-liuxing"},{name:"风筝",type:"icon-fengzheng"},{name:"蛋糕",type:"icon-dangao"},{name:"泡泡",type:"icon-paopao"},{name:"购物",type:"icon-gouwu"},{name:"饮料",type:"icon-yinliao"},{name:"云彩",type:"icon-yuncai"},{name:"彩铅",type:"icon-caiqian"},{name:"纸飞机",type:"icon-zhifeiji"},{name:"点赞",type:"icon-dianzan"},{name:"煎蛋",type:"icon-jiandan"},{name:"小熊",type:"icon-xiaoxiong"},{name:"花",type:"icon-hua"},{name:"眼睛",type:"icon-yanjing"}],k=Object.assign({"/src/assets/login.png":h,"/src/assets/logo.png":e});Object.values(k).map((e=>e.default));const v={data:()=>({type:1,iconData:f,progressName:"",exePath:""}),methods:{exec(e){console.log("process:",process);const a={id:e};n.invoke(o.test,a).then((e=>{console.log("res:",e)}))},exec2(e){},getMac(){n.invoke(o.getAllMac,{}).then((e=>{console.log("macs :",e)}))},getOSMessage(){n.invoke(o.getOSMessage,{}).then((e=>{console.log("OS :",e)}))},setSound(){n.invoke(o.deviceLoudness,{value:100}).then((e=>{console.log("设置后的声音 :",e)}))},restart(){n.invoke(o.deviceRestart,{}).then((e=>{console.log("重启 :",e)}))},kill(){console.log(this.progressName),n.invoke(o.deviceKillName,this.progressName).then((e=>{console.log("关闭进程结果 :",e)}))},starExe(){console.log(this.exePath),n.invoke(o.deviceStarExe,this.exePath).then((e=>{console.log("启动程序 :",e)}))}}},x={id:"app-base-test-api"},_=(e=>(m("data-v-a36daad7"),e=e(),r(),e))((()=>s("div",{class:"one-block-1"},[s("span",null," 1. 测试一些操作系统api ")],-1))),b={class:"one-block-2"};const j=a(v,[["render",function(e,a,n,o,m,r){const y=t("a-button"),h=t("a-space");return i(),l("div",x,[_,s("div",b,[c(h,null,{default:p((()=>[c(y,{onClick:a[0]||(a[0]=e=>r.exec(1))},{default:p((()=>[d(" 点击 ")])),_:1}),c(y,{onClick:a[1]||(a[1]=e=>r.exec2(1))},{default:p((()=>[d(" 点击2 ")])),_:1}),c(y,{onClick:a[2]||(a[2]=e=>r.getMac())},{default:p((()=>[d(" 获取mac 列表 ")])),_:1}),c(y,{onClick:a[3]||(a[3]=e=>r.getOSMessage())},{default:p((()=>[d(" 获取系统信息 ")])),_:1}),c(y,{onClick:a[4]||(a[4]=e=>r.setSound())},{default:p((()=>[d(" 设置声音50")])),_:1}),c(y,{onClick:a[5]||(a[5]=e=>r.restart())},{default:p((()=>[d("重启")])),_:1})])),_:1}),c(h,null,{default:p((()=>[u(s("input",{"onUpdate:modelValue":a[6]||(a[6]=e=>m.progressName=e),placeholder:"请输入进程名称"},null,512),[[g,m.progressName]]),c(y,{onClick:a[7]||(a[7]=e=>r.kill())},{default:p((()=>[d(" kill 指定进程 ")])),_:1})])),_:1}),c(h,null,{default:p((()=>[u(s("input",{"onUpdate:modelValue":a[8]||(a[8]=e=>m.exePath=e),placeholder:"请输入程序地址"},null,512),[[g,m.exePath]]),c(y,{onClick:a[9]||(a[9]=e=>r.starExe())},{default:p((()=>[d(" 启动 ")])),_:1})])),_:1})])])}],["__scopeId","data-v-a36daad7"]]);export{j as default};
diff --git a/public/dist/assets/Index-40e608ea.js.gz b/public/dist/assets/Index-40e608ea.js.gz
new file mode 100644
index 0000000..f525acd
Binary files /dev/null and b/public/dist/assets/Index-40e608ea.js.gz differ
diff --git a/public/dist/assets/Index-4f01872f.js b/public/dist/assets/Index-4f01872f.js
new file mode 100644
index 0000000..9170ae9
--- /dev/null
+++ b/public/dist/assets/Index-4f01872f.js
@@ -0,0 +1 @@
+import{i as e}from"./main-ce25b28f.js";import{i as t}from"./ipcRenderer-5e19eaee.js";import{_ as i,h as s,r as a,o as n,b as l,g as o,a as r,w as d,e as c,t as u,p as m,f as v}from"./index-265ac112.js";const p={data:()=>({defaultDeviceName:"",printerList:[],views:[{type:"html",content:"/public/html/view_example.html"}]}),mounted(){this.init()},methods:{init(){t.removeAllListeners(e.printStatus),t.on(e.printStatus,((e,t)=>{console.log("result",t),this.$message.info("打印中...")}))},getPrinter(){t.invoke(e.getPrinterList,{}).then((e=>{this.printerList=e}))},doPrint(i){console.log("defaultDeviceName:",this.defaultDeviceName);const a={view:s(this.views[i]),deviceName:this.defaultDeviceName};t.send(e.print,a)},defaultDevice(e){let t="";return e.isDefault&&(t="- 默认",this.defaultDeviceName=e.name),t}}},f=e=>(m("data-v-b732860b"),e=e(),v(),e),h={id:"app-hw-bluetooth"},b=f((()=>o("div",{class:"one-block-1"},[o("span",null," 1. 打印机设备 ")],-1))),k={class:"one-block-2"},D={class:"one-block-2"},_=f((()=>o("div",null,"设备列表",-1))),g=f((()=>o("div",{class:"one-block-1"},[o("span",null," 2. 打印内容 ")],-1))),w={class:"one-block-2"};const N=i(p,[["render",function(e,t,i,s,m,v){const p=a("a-button"),f=a("a-list-item"),N=a("a-list");return n(),l("div",h,[b,o("div",k,[r(p,{onClick:t[0]||(t[0]=e=>v.getPrinter())},{default:d((()=>[c(" 获取打印机列表 ")])),_:1})]),o("div",D,[r(N,{size:"small",bordered:"","data-source":m.printerList},{renderItem:d((({item:e})=>[r(f,null,{default:d((()=>[c(u(e.displayName)+" "+u(v.defaultDevice(e)),1)])),_:2},1024)])),header:d((()=>[_])),_:1},8,["data-source"])]),g,o("div",w,[r(p,{onClick:t[1]||(t[1]=e=>v.doPrint(0))},{default:d((()=>[c(" 打印一个页面 ")])),_:1})])])}],["__scopeId","data-v-b732860b"]]);export{N as default};
diff --git a/public/dist/assets/Index-4f01872f.js.gz b/public/dist/assets/Index-4f01872f.js.gz
new file mode 100644
index 0000000..5f35665
Binary files /dev/null and b/public/dist/assets/Index-4f01872f.js.gz differ
diff --git a/public/dist/assets/Index-5604ce8f.js b/public/dist/assets/Index-5604ce8f.js
new file mode 100644
index 0000000..4c22ce2
--- /dev/null
+++ b/public/dist/assets/Index-5604ce8f.js
@@ -0,0 +1 @@
+import{_ as e,i as a,h as s,r as t,o as r,b as o,g as i,a as n,w as d,e as v,p as c,f as l}from"./index-ea5b20ee.js";import{a as m}from"./index-1ef15d1b.js";import{s as u}from"./store2-204267a2.js";const f={data:()=>({server:""}),methods:{startServer(){a.invoke(s.startJavaServer,{}).then((e=>{0!=e.code?this.$message.error(e.msg):(this.$message.info("异步启动"),u.set("javaService",e.server))}))},closeServer(){a.invoke(s.closeJavaServer,{}).then((e=>{0!=e.code&&this.$message.error(e.msg),this.$message.info("异步关闭"),u.remove("javaService")}))},sendRequest(){const e=u.get("javaService")||"";if(""==e)return void this.$message.error("服务未开启 或 正在启动中");m({method:"get",url:e+"/test1/get",params:{id:"1111111"},timeout:6e4}).then((e=>{const a=e.data||null;this.$message.info(`java服务返回: ${a}`)}))}}},h={id:"app-other"},g=(e=>(c("data-v-da7e5fd3"),e=e(),l(),e))((()=>i("div",{class:"one-block-1"},[i("span",null," 请求java服务接口 ")],-1))),p={class:"one-block-2"};const j=e(f,[["render",function(e,a,s,c,l,m){const u=t("a-button"),f=t("a-space");return r(),o("div",h,[g,i("div",p,[n(f,null,{default:d((()=>[n(u,{onClick:a[0]||(a[0]=e=>m.startServer())},{default:d((()=>[v(" 启动java项目 ")])),_:1}),n(u,{onClick:a[1]||(a[1]=e=>m.sendRequest())},{default:d((()=>[v(" 测试接口 ")])),_:1}),n(u,{onClick:a[2]||(a[2]=e=>m.closeServer())},{default:d((()=>[v(" 关闭java项目 ")])),_:1})])),_:1})])])}],["__scopeId","data-v-da7e5fd3"]]);export{j as default};
diff --git a/public/dist/assets/Index-5604ce8f.js.gz b/public/dist/assets/Index-5604ce8f.js.gz
new file mode 100644
index 0000000..8e41f59
Binary files /dev/null and b/public/dist/assets/Index-5604ce8f.js.gz differ
diff --git a/public/dist/assets/Index-58506a1f.js b/public/dist/assets/Index-58506a1f.js
new file mode 100644
index 0000000..40d9d10
--- /dev/null
+++ b/public/dist/assets/Index-58506a1f.js
@@ -0,0 +1,24 @@
+import{i as e}from"./main-ce25b28f.js";import{i as t}from"./ipcRenderer-5e19eaee.js";import{i as n,j as r,_ as i,h as a,o,b as l,p as s,f as u,g as c}from"./index-265ac112.js";var p={exports:{}};const d=r(p.exports=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=79)}([function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.util=t.PresentationMode=void 0,t.createDom=o,t.hasClass=l,t.addClass=s,t.removeClass=u,t.toggleClass=c,t.findDom=p,t.padStart=d,t.format=f,t.event=g,t.typeOf=h,t.deepCopy=y,t.getBgImage=v,t.copyDom=x,t._setInterval=m,t._clearInterval=b,t.createImgBtn=k,t.isWeiXin=w,t.isUc=_,t.computeWatchDur=E,t.offInDestroy=T,t.on=C,t.once=S,t.getBuffered2=P,t.checkIsBrowser=O,t.setStyle=L,t.checkWebkitSetPresentationMode=function(e){return"function"==typeof e.webkitSetPresentationMode};var r,i=n(7),a=(r=i)&&r.__esModule?r:{default:r};function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=document.createElement(e);return i.className=r,i.innerHTML=t,Object.keys(n).forEach((function(t){var r=t,a=n[t];"video"===e||"audio"===e?a&&i.setAttribute(r,a):i.setAttribute(r,a)})),i}function l(e,t){return!!e&&(e.classList?Array.prototype.some.call(e.classList,(function(e){return e===t})):!!e.className&&!!e.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)")))}function s(e,t){e&&(e.classList?t.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach((function(t){t&&e.classList.add(t)})):l(e,t)||(e.className+=" "+t))}function u(e,t){e&&(e.classList?t.split(/\s+/g).forEach((function(t){e.classList.remove(t)})):l(e,t)&&t.split(/\s+/g).forEach((function(t){var n=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className=e.className.replace(n," ")})))}function c(e,t){e&&t.split(/\s+/g).forEach((function(t){l(e,t)?u(e,t):s(e,t)}))}function p(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=arguments[1],n=void 0;try{n=e.querySelector(t)}catch(r){0===t.indexOf("#")&&(n=e.getElementById(t.slice(1)))}return n}function d(e,t,n){for(var r=String(n),i=t>>0,a=Math.ceil(i/r.length),o=[],l=String(e);a--;)o.push(r);return o.join("").substring(0,i-l.length)+l}function f(e){if(window.isNaN(e))return"";var t=d(Math.floor(e/3600),2,0),n=d(Math.floor((e-3600*t)/60),2,0),r=d(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,r]:[t,n,r]).join(":")}function g(e){if(e.touches){var t=e.touches[0]||e.changedTouches[0];e.clientX=t.clientX||0,e.clientY=t.clientY||0,e.offsetX=t.pageX-t.target.offsetLeft,e.offsetY=t.pageY-t.target.offsetTop}e._target=e.target||e.srcElement}function h(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]}function y(e,t){if("Object"===h(t)&&"Object"===h(e))return Object.keys(t).forEach((function(n){"Object"!==h(t[n])||t[n]instanceof Node?"Array"===h(t[n])?e[n]="Array"===h(e[n])?e[n].concat(t[n]):t[n]:e[n]=t[n]:e[n]?y(e[n],t[n]):e[n]=t[n]})),e}function v(e){var t=(e.currentStyle||window.getComputedStyle(e,null)).backgroundImage;if(!t||"none"===t)return"";var n=document.createElement("a");return n.href=t.replace(/url\("|"\)/g,""),n.href}function x(e){if(e&&1===e.nodeType){var t=document.createElement(e.tagName);return Array.prototype.forEach.call(e.attributes,(function(e){t.setAttribute(e.name,e.value)})),e.innerHTML&&(t.innerHTML=e.innerHTML),t}return""}function m(e,t,n,r){e._interval[t]||(e._interval[t]=setInterval(n.bind(e),r))}function b(e,t){clearInterval(e._interval[t]),e._interval[t]=null}function k(e,t,n,r){var i=o("xg-"+e,"",{},"xgplayer-"+e+"-img");if(i.style.backgroundImage='url("'+t+'")',n&&r){var a=void 0,l=void 0,s=void 0;["px","rem","em","pt","dp","vw","vh","vm","%"].every((function(e){return!(n.indexOf(e)>-1&&r.indexOf(e)>-1&&(a=Number(n.slice(0,n.indexOf(e)).trim()),l=Number(r.slice(0,r.indexOf(e)).trim()),s=e,1))})),i.style.width=""+a+s,i.style.height=""+l+s,i.style.backgroundSize=""+a+s+" "+l+s,i.style.margin="start"===e?"-"+l/2+s+" auto auto -"+a/2+s:"auto 5px auto 5px"}return i}function w(){return window.navigator.userAgent.toLowerCase().indexOf("micromessenger")>-1}function _(){return window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")>-1}function E(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[],n=0;nt[r].end)){var o=t[r].begin,l=t[r].end;t[r].begin=Math.min(i,o),t[r].end=Math.max(a,l);break}if(r>t.length-2){t.push({begin:i,end:a});break}}for(var s=0,u=0;u1&&void 0!==arguments[1]?arguments[1]:.5,n=[],r=0;rs&&(i[l-1].end=n[o].end):i.push(n[o])}else i.push(n[o])}else i=n;return new a.default(i)}function O(){return!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)}function L(e,t,n){var r=e.style;try{r[t]=n}catch(i){r.setProperty(t,n)}}t.PresentationMode={PIP:"picture-in-picture",INLINE:"inline",FULLSCREEN:"fullscreen"},t.util={createDom:o,hasClass:l,addClass:s,removeClass:u,toggleClass:c,findDom:p,padStart:d,format:f,event:g,typeOf:h,deepCopy:y,getBgImage:v,copyDom:x,setInterval:m,clearInterval:b,createImgBtn:k,isWeiXin:w,isUc:_,computeWatchDur:E,offInDestroy:T,on:C,once:S,getBuffered2:P,checkIsBrowser:O,setStyle:L}},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n,r=e[1]||"",i=e[3];if(!i)return r;if(t&&"function"==typeof btoa){var a=(n=i,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */"),o=i.sources.map((function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"}));return[r].concat(o).concat([a]).join("\n")}return[r].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n})).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},i=0;i=0&&p.splice(t,1)}function v(e){var t=document.createElement("style");return e.attrs.type="text/css",x(t,e.attrs),h(e,t),t}function x(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function m(e,t){var n,r,i,a;if(t.transform&&e.css){if(!(a=t.transform(e.css)))return function(){};e.css=a}if(t.singleton){var o=c++;n=u||(u=v(t)),r=w.bind(null,n,o,!1),i=w.bind(null,n,o,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return e.attrs.type="text/css",e.attrs.rel="stylesheet",x(t,e.attrs),h(e,t),t}(t),r=E.bind(null,n,t),i=function(){y(n),n.href&&URL.revokeObjectURL(n.href)}):(n=v(t),r=_.bind(null,n),i=function(){y(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else i()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=o()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=g(e,t);return f(n,t),function(e){for(var r=[],i=0;i8&&void 0!==arguments[8]?arguments[8]:{line:"",handle:"",msg:"",version:""},d=arguments[9],f=arguments[10];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var g={};if(arguments.length>1)g.playerVersion=r.version,g.errorType=t,g.domain=document.domain,g.duration=a,g.currentTime=n,g.networkState=o,g.readyState=l,g.currentSrc=u,g.src=s,g.ended=c,g.errd=p,g.ex=(i[t]||{}).msg,g.errorCode=d,g.mediaError=f;else{var h=arguments[0];Object.keys(h).map((function(e){g[e]=h[e]})),g.ex=(h.type&&i[h.type]||{}).msg}return g},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r={};Object.defineProperty(r,"device",{get:function(){return r.os.isPc?"pc":"mobile"}}),Object.defineProperty(r,"browser",{get:function(){var e=navigator.userAgent.toLowerCase(),t={ie:/rv:([\d.]+)\) like gecko/,firfox:/firefox\/([\d.]+)/,chrome:/chrome\/([\d.]+)/,opera:/opera.([\d.]+)/,safari:/version\/([\d.]+).*safari/};return[].concat(Object.keys(t).filter((function(n){return t[n].test(e)})))[0]||""}}),Object.defineProperty(r,"os",{get:function(){var e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),n=/(?:SymbianOS)/.test(e)||t,r=/(?:Android)/.test(e),i=/(?:Firefox)/.test(e),a=/(?:iPad|PlayBook)/.test(e)||r&&!/(?:Mobile)/.test(e)||i&&/(?:Tablet)/.test(e),o=/(?:iPhone)/.test(e)&&!a;return{isTablet:a,isPhone:o,isAndroid:r,isPc:!(o||r||n||a),isSymbian:n,isWindowsPhone:t,isFireFox:i}}}),t.default=r,e.exports=t.default},function(e,t,n){e.exports=function(e){return null!=e}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;nthis.video.videoWidth/this.video.videoHeight?a.root.style.height=this.video.videoHeight/this.video.videoWidth*e.width+"px":a.root.style.width=this.video.videoWidth/this.video.videoHeight*e.height+"px":"fixWidth"===a.config.fitVideoSize?a.root.style.height=this.video.videoHeight/this.video.videoWidth*e.width+"px":"fixHeight"===a.config.fitVideoSize&&(a.root.style.width=this.video.videoWidth/this.video.videoHeight*e.height+"px")}},a.once("loadeddata",n.getVideoSize),setTimeout((function(){n.emit("ready"),n.isReady=!0}),0),n.config.videoInit&&(0,o.hasClass)(n.root,"xgplayer-nostart")&&n.start(),a.config.rotate&&(a.on("requestFullscreen",n.updateRotateDeg),a.on("exitFullscreen",n.updateRotateDeg)),a.once("destroy",(function e(){a.root.removeEventListener("mousemove",a.mousemoveFunc),a.off("destroy",e)})),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"attachVideo",value:function(){var e=this;this.video&&1===this.video.nodeType&&this.root.insertBefore(this.video,this.root.firstChild),setTimeout((function(){e.emit("complete"),e.danmu&&"function"==typeof e.danmu.resize&&e.danmu.resize()}),1)}},{key:"start",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.url;if(this.video){var n=this;t&&""!==t?(this.canPlayFunc=function(){n.off("canplay",n.canPlayFunc);var e=n.video.play();void 0!==e&&e&&e.then((function(){n.emit("autoplay started")})).catch((function(){n.emit("autoplay was prevented"),(0,o.addClass)(n.root,"xgplayer-is-autoplay")}))},"Array"!==(0,o.typeOf)(t)?"String"===(0,o.typeOf)(t)&&t.indexOf("blob:")>-1&&t===this.video.src||(this.video.src=t):t.forEach((function(t){e.video.appendChild((0,o.createDom)("source","",{src:""+t.src,type:""+(t.type||"")}))})),this.config.autoplay&&(l.default.os.isPhone?this.canPlayFunc():this.on("canplay",this.canPlayFunc)),this.config.disableStartLoad||this.video.load(),this.attachVideo()):this.emit("urlNull")}}},{key:"reload",value:function(){this.video.load(),this.reloadFunc=function(){var e=this.play();void 0!==e&&e&&e.catch((function(e){}))},this.once("loadeddata",this.reloadFunc)}},{key:"destroy",value:function(){var e=this,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],r=this;for(var a in clearInterval(this.bulletResizeTimer),this._interval)clearInterval(this._interval[a]),this._interval[a]=null;this.checkTimer&&clearInterval(this.checkTimer),this.waitTimer&&clearTimeout(this.waitTimer),this.ev.forEach((function(t){var n=Object.keys(t)[0],r=e[t[n]];r&&e.off(n,r)})),this.loadeddataFunc&&this.off("loadeddata",this.loadeddataFunc),this.reloadFunc&&this.off("loadeddata",this.reloadFunc),this.replayFunc&&this.off("play",this.replayFunc),this.playFunc&&this.off("play",this.playFunc),this.getVideoSize&&this.off("loadeddata",this.getVideoSize),["focus","blur"].forEach((function(t){e.off(t,e["on"+t.charAt(0).toUpperCase()+t.slice(1)])})),this.config.keyShortcut&&"on"!==this.config.keyShortcut||["video","controls"].forEach((function(t){e[t]&&e[t].removeEventListener("keydown",(function(e){r.onKeydown(e,r)}))})),function(){if(this.emit("destroy"),this.video.removeAttribute("src"),this.video.load(),n){this.root.innerHTML="";var e=this.root.className.split(" ");e.length>0?this.root.className=e.filter((function(e){return e.indexOf("xgplayer")<0})).join(" "):this.root.className=""}for(var t in this)delete this[t];(0,c.default)(this)}.call(this),i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"destroy",this).call(this)}},{key:"replay",value:function(){var e=this._replay;if((0,o.removeClass)(this.root,"xgplayer-ended"),l.default.browser.indexOf("ie")>-1&&(this.emit("play"),this.emit("playing")),e&&e instanceof Function)e();else{this.currentTime=0;var t=this.play();void 0!==t&&t&&t.catch((function(e){}))}}},{key:"userGestureTrigEvent",value:function(e,t){var n=this,r=function(e,t){n.emit(e,t)};this.config.userGestureEventMiddleware&&"function"==typeof this.config.userGestureEventMiddleware[e]?this.config.userGestureEventMiddleware[e].call(this,this,e,t,r):r.call(this,e,t)}},{key:"pluginsCall",value:function(){var e=this;t.plugins.s_i18n&&t.plugins.s_i18n.call(this,this);var n=this;if(t.plugins){var r=this.config.ignores;Object.keys(t.plugins).forEach((function(i){var a=t.plugins[i];a&&"function"==typeof a?r.some((function(e){return i===e||i==="s_"+e}))||"s_i18n"===i||(["pc","tablet","mobile"].some((function(e){return e===i}))?i===l.default.device&&setTimeout((function(){n.video&&a.call(n,n)}),0):a.call(e,e)):console.warn("plugin name",i,"is invalid")}))}}},{key:"onFocus",value:function(){var e=this;(0,o.hasClass)(this.root,"xgplayer-inactive")&&e.emit("controlShow"),(0,o.removeClass)(this.root,"xgplayer-inactive"),e.userTimer&&clearTimeout(e.userTimer),e.userTimer=setTimeout((function(){e.emit("blur")}),e.config.inactive)}},{key:"onBlur",value:function(){!this.config.enablePausedInactive&&this.paused||this.ended||this.config.closeInactive||((0,o.hasClass)(this.root,"xgplayer-inactive")||this.emit("controlHide"),(0,o.addClass)(this.root,"xgplayer-inactive"))}},{key:"onPlay",value:function(){(0,o.addClass)(this.root,"xgplayer-isloading"),(0,o.addClass)(this.root,"xgplayer-playing"),(0,o.removeClass)(this.root,"xgplayer-pause")}},{key:"onPause",value:function(){(0,o.addClass)(this.root,"xgplayer-pause"),this.userTimer&&clearTimeout(this.userTimer),this.emit("focus")}},{key:"onEnded",value:function(){(0,o.addClass)(this.root,"xgplayer-ended"),(0,o.removeClass)(this.root,"xgplayer-playing")}},{key:"onSeeking",value:function(){this.isSeeking=!0,this.onWaiting()}},{key:"onSeeked",value:function(){var e=this;this.once("timeupdate",(function(){e.isSeeking=!1})),this.waitTimer&&clearTimeout(this.waitTimer),(0,o.removeClass)(this.root,"xgplayer-isloading")}},{key:"onWaiting",value:function(){var e=this;e.waitTimer&&clearTimeout(e.waitTimer),e.checkTimer&&(clearInterval(e.checkTimer),e.checkTimer=null);var t=e.currentTime;e.waitTimer=setTimeout((function(){(0,o.addClass)(e.root,"xgplayer-isloading"),e.checkTimer=setInterval((function(){e.currentTime!==t&&((0,o.removeClass)(e.root,"xgplayer-isloading"),clearInterval(e.checkTimer),e.checkTimer=null)}),1e3)}),500)}},{key:"onPlaying",value:function(){this.paused||(this.isSeeking=!1,this.waitTimer&&clearTimeout(this.waitTimer),(0,o.removeClass)(this.root,"xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay"),(0,o.addClass)(this.root,"xgplayer-playing"))}}],[{key:"install",value:function(e,n){(0,o.checkIsBrowser)()&&(t.plugins||(t.plugins={}),t.plugins[e]||(t.plugins[e]=n))}},{key:"installAll",value:function(e){for(var n=0;n0&&!t.nativeTextTrack.some((function(e){return e.default}))&&(t.nativeTextTrack[0].default=!0,this.textTrackShowDefault=!1),t.nativeTextTrack.some((function(e){if(e.src&&e.label&&e.default)return r+='",!0})),this.videoConfig.crossorigin="anonymous"),t.textTrackStyle){var o=document.createElement("style");this.textTrackStyle=o,document.head.appendChild(o);var l="";for(var s in t.textTrackStyle)l+=s+": "+t.textTrackStyle[s]+";";var u=t.id?"#"+t.id:t.el.id?"#"+t.el.id:"."+t.el.className;o.sheet.insertRule?o.sheet.insertRule(u+" video::cue { "+l+" }",0):o.sheet.addRule&&o.sheet.addRule(u+" video::cue",l)}var c=t.el?t.el:(0,a.findDom)(document,"#"+t.id),p=this.constructor.XgVideoProxy;p&&this.videoConfig.mediaType===p.mediaType?this.video=new p(c,t):this.video=(0,a.createDom)(this.videoConfig.mediaType,r,this.videoConfig,""),t.videoStyle&&Object.keys(t.videoStyle).forEach((function(e){(0,a.setStyle)(n.video,e,t.videoStyle[e])})),!this.textTrackShowDefault&&r&&(this.video.getElementsByTagName("Track")[0].track.mode="hidden"),t.autoplay&&(this.video.autoplay=!0,t.autoplayMuted&&(this.video.muted=!0)),this.ev=["play","playing","pause","ended","error","seeking","seeked","progress","timeupdate","waiting","canplay","canplaythrough","durationchange","volumechange","ratechange","loadedmetadata","loadeddata","loadstart"].map((function(e){return t={},n=e,r="on"+e.charAt(0).toUpperCase()+e.slice(1),n in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,t;var t,n,r})),(0,i.default)(this),this._interval={};var d="0,0",f=this,g=function(e){n&&("play"===e?n.hasStart=!0:"canplay"===e?(0,a.removeClass)(n.root,"xgplayer-is-enter"):"waiting"===e?n.inWaitingStart=(new Date).getTime():"playing"===e&&((0,a.removeClass)(n.root,"xgplayer-is-enter"),n.inWaitingStart&&(n.inWaitingStart=void 0)),"error"===e?n._onError(e):n.emit(e,n),n.hasOwnProperty("_interval")&&(["ended","error","timeupdate"].indexOf(e)<0?((0,a._clearInterval)(n,"bufferedChange"),(0,a._setInterval)(n,"bufferedChange",(function(){if(this.video&&this.video.buffered){for(var e=[],t=0,n=this.video.buffered.length;t-1}},function(e,t,n){e.exports=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e}},function(e,t,n){var r=n(32),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t,n=arguments[1];if(r(e),void 0===n)i.call(e,"__ee__")&&delete e.__ee__;else{if(!(t=i.call(e,"__ee__")&&e.__ee__))return;t[n]&&delete t[n]}}},function(e,t,n){var r=n(33);e.exports=function(e){if(!r(e))throw new TypeError(e+" is not an Object");return e}},function(e,t,n){var r=n(3),i={function:!0,object:!0};e.exports=function(e){return r(e)&&i[typeof e]||!1}},function(e,t,n){var r=n(35);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".xgplayer-skin-default{background:#000;width:100%;height:100%;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.xgplayer-skin-default *{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;white-space:normal;word-wrap:normal}.xgplayer-skin-default.xgplayer-rotate-fullscreen{position:absolute;top:0;left:100%;bottom:0;right:0;height:100vw!important;width:100vh!important;-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.xgplayer-skin-default.xgplayer-is-fullscreen{width:100%!important;height:100%!important;padding-top:0!important;z-index:9999}.xgplayer-skin-default.xgplayer-is-fullscreen.xgplayer-inactive{cursor:none}.xgplayer-skin-default video{width:100%;height:100%;outline:none}.xgplayer-skin-default .xgplayer-none{display:none}@-webkit-keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}@keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}.xgplayer-skin-default .xgplayer-controls{display:-webkit-flex;display:-moz-box;display:flex;position:absolute;bottom:0;left:0;right:0;height:40px;background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.37),rgba(0,0,0,.75),rgba(0,0,0,.75));z-index:10}.xgplayer-skin-default.xgplayer-inactive .xgplayer-controls,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-progress,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-time,.xgplayer-skin-default.xgplayer-no-controls .xgplayer-controls,.xgplayer-skin-default.xgplayer-nostart .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-live{display:block}.xgplayer-skin-default .xgplayer-live{display:block;font-size:12px;color:#fff;line-height:40px;-webkit-order:1;-moz-box-ordinal-group:2;order:1}.xgplayer-skin-default .xgplayer-icon{display:block;width:40px;height:40px;overflow:hidden;fill:#fff}.xgplayer-skin-default .xgplayer-icon svg{position:absolute}.xgplayer-skin-default .xgplayer-tips{background:rgba(0,0,0,.54);border-radius:1px;display:none;position:absolute;font-family:PingFangSC-Regular;font-size:11px;color:#fff;padding:2px 4px;text-align:center;top:-30px;left:50%;margin-left:-16px;width:auto;white-space:nowrap}.xgplayer-skin-default.xgplayer-mobile .xgplayer-tips{display:none!important}.xgplayer-skin-default .xgplayer-screen-container{display:block;width:100%}",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,(function(e,t){var i,a=t.trim().replace(/^"(.*)"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(a)?e:(i=0===a.indexOf("//")?a:0===a.indexOf("/")?n+a:r+a.replace(/^\.\//,""),"url("+JSON.stringify(i)+")")}))}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={name:"mobile",method:function(){var e=this,t=e.root,n=0,i=void 0,a={first:"",second:""};function o(t){e.video.addEventListener("touchend",(function(t){e.onElementTouchend(t,e.video)})),e.video.addEventListener("touchstart",(function(){e.isTouchMove=!1})),e.video.addEventListener("touchmove",(function(){e.isTouchMove=!0})),e.config.autoplay&&e.start()}e.onElementTouchend=function(e,o){this.config.closeVideoPreventDefault||e.preventDefault(),this.config.closeVideoStopPropagation||e.stopPropagation();var l=this;if((0,r.hasClass)(t,"xgplayer-inactive")?l.emit("focus"):l.emit("blur"),!l.config.closeVideoTouch&&!l.isTouchMove){var s=function(){i=setTimeout((function(){if((0,r.hasClass)(l.root,"xgplayer-nostart"))return!1;if(!l.ended)if(l.paused){var e=l.play();void 0!==e&&e&&e.catch((function(e){}))}else l.pause();n=0}),200)};l.config.closeVideoClick||(n++,i&&clearTimeout(i),1===n?l.config.enableVideoDbltouch?a.first=new Date:s():2===n&&l.config.enableVideoDbltouch?(a.second=new Date,Math.abs(a.first-a.second)<400?s():(a.first=new Date,n=1)):n=0)}},e.once("ready",o),e.once("destroy",(function t(){e.off("ready",o),e.off("destroy",t)}))}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={name:"pc",method:function(){var e=this;if(e.controls&&e.video){var t=e.controls,n=e.root,i=0,a=void 0;e.onElementClick=function(e,t){this.config.closeVideoPreventDefault||e.preventDefault(),this.config.closeVideoStopPropagation||e.stopPropagation();var n=this;n.config.closeVideoClick||(i++,a&&clearTimeout(a),1===i?a=setTimeout((function(){if((0,r.hasClass)(n.root,"xgplayer-nostart"))return!1;if(!n.ended)if(n.paused){var e=n.play();void 0!==e&&e&&e.catch((function(e){}))}else n.pause();i=0}),200):i=0)},e.video.addEventListener("click",(function(t){e.onElementClick(t,e.video)}),!1),e.onElementDblclick=function(e,n){if(this.config.closeVideoPreventDefault||e.preventDefault(),this.config.closeVideoStopPropagation||e.stopPropagation(),!this.config.closeVideoDblclick){var r=t.querySelector(".xgplayer-fullscreen");if(r){var i=void 0;document.createEvent?(i=document.createEvent("Event")).initEvent("click",!0,!0):i=new Event("click"),r.dispatchEvent(i)}}},e.video.addEventListener("dblclick",(function(t){e.onElementDblclick(t,e.video)}),!1),n.addEventListener("mouseenter",o),n.addEventListener("mouseleave",l),t.addEventListener("mouseenter",s),t.addEventListener("mouseleave",u),t.addEventListener("click",c),e.once("ready",p),e.once("destroy",(function t(){n.removeEventListener("mouseenter",o),n.removeEventListener("mouseleave",l);var r=e.controls;r&&(r.removeEventListener("mouseleave",u),r.removeEventListener("mouseenter",s),r.removeEventListener("click",c)),e.off("ready",p),e.off("destroy",t)}))}function o(){clearTimeout(e.leavePlayerTimer),e.emit("focus",e)}function l(){e.config.closePlayerBlur||(e.leavePlayerTimer=setTimeout((function(){e.emit("blur",e)}),e.config.leavePlayerTime||0))}function s(t){e.userTimer&&clearTimeout(e.userTimer)}function u(t){e.config.closeControlsBlur||e.emit("focus",e)}function c(e){e.preventDefault(),e.stopPropagation()}function p(t){e.config.autoplay&&e.start()}}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={name:"start",method:function(){var e=this,t=e.root;function n(){e.off("canplay",n);var t=e.play();void 0!==t&&t&&t.catch((function(e){}))}function i(){(0,r.hasClass)(t,"xgplayer-nostart")?((0,r.removeClass)(t,"xgplayer-nostart"),(0,r.addClass)(t,"xgplayer-is-enter"),"function"==typeof t.contains?e.video&&1===e.video.nodeType&&!t.contains(e.video)||e.video&&1!==e.video.nodeType&&void 0===e.video.mediaSource?(e.once("canplay",n),e.start()):n():e.video&&1===e.video.nodeType&&!t.querySelector(this.videoConfig.mediaType)||e.video&&1!==e.video.nodeType&&void 0===e.video.mediaSource?(e.once("canplay",n),e.start()):n()):e.paused&&((0,r.removeClass)(t,"xgplayer-nostart xgplayer-isloading"),setTimeout((function(){var t=e.play();void 0!==t&&t&&t.catch((function(e){}))}),10))}e.on("startBtnClick",i),e.once("destroy",(function t(){e.off("startBtnClick",i),e.off("canplay",n),e.off("destroy",t)}))}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=o(n(41)),a=o(n(42));function o(e){return e&&e.__esModule?e:{default:e}}n(43),t.default={name:"s_start",method:function(){var e=this,t=e.root,n=(0,r.createDom)("xg-start",''+i.default+'
\n '+a.default+"
",{},"xgplayer-start");function o(e){(0,r.addClass)(e.root,"xgplayer-skin-default"),e.config&&(e.config.autoplay&&!(0,r.isWeiXin)()&&!(0,r.isUc)()&&(0,r.addClass)(e.root,"xgplayer-is-enter"),e.config.lang&&"en"===e.config.lang?(0,r.addClass)(e.root,"xgplayer-lang-is-en"):"jp"===e.config.lang&&(0,r.addClass)(e.root,"xgplayer-lang-is-jp"),e.config.enableContextmenu||e.video.addEventListener("contextmenu",(function(e){e.preventDefault(),e.stopPropagation()})))}e.config&&e.config.hideStartBtn&&(0,r.addClass)(t,"xgplayer-start-hide"),e.isReady?(t.appendChild(n),o(e)):e.once("ready",(function(){t.appendChild(n),o(e)})),e.once("autoplay was prevented",(function(){(0,r.removeClass)(e.root,"xgplayer-is-enter"),(0,r.addClass)(e.root,"xgplayer-nostart")})),e.once("canplay",(function(){(0,r.removeClass)(e.root,"xgplayer-is-enter")})),n.onclick=function(t){t.preventDefault(),t.stopPropagation(),e.userGestureTrigEvent("startBtnClick")}}},e.exports=t.default},function(e,t,n){n.r(t),t.default='\n \n \n'},function(e,t,n){n.r(t),t.default='\n \n \n'},function(e,t,n){var r=n(44);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".xgplayer-skin-default .xgplayer-start{border-radius:50%;display:inline-block;width:70px;height:70px;background:rgba(0,0,0,.38);overflow:hidden;text-align:center;line-height:70px;vertical-align:middle;position:absolute;left:50%;top:50%;z-index:115;margin:-35px auto auto -35px;cursor:pointer}.xgplayer-skin-default .xgplayer-start div{position:absolute}.xgplayer-skin-default .xgplayer-start div svg{fill:hsla(0,0%,100%,.7)}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-start:hover{opacity:.85}.xgplayer-skin-default.xgplayer-pause.xgplayer-start-hide .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-start-hide .xgplayer-start{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start{display:inline-block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start,.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-pause{display:none}",""])},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={name:"fullscreen",method:function(){var e=this,t=e.root;function n(){e.config.rotateFullscreen?(0,r.hasClass)(t,"xgplayer-rotate-fullscreen")?e.exitRotateFullscreen():e.getRotateFullscreen():(0,r.hasClass)(t,"xgplayer-is-fullscreen")?e.exitFullscreen(t):e.getFullscreen(t)}function i(){var n=document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement;n&&n===t?((0,r.addClass)(t,"xgplayer-is-fullscreen"),e.emit("requestFullscreen")):(0,r.hasClass)(t,"xgplayer-is-fullscreen")&&((0,r.removeClass)(t,"xgplayer-is-fullscreen"),e.emit("exitFullscreen")),e.danmu&&"function"==typeof e.danmu.resize&&e.danmu.resize()}function a(n){e.video.webkitPresentationMode!==r.PresentationMode.FULLSCREEN&&((0,r.removeClass)(t,"xgplayer-is-fullscreen"),e.emit("exitFullscreen"))}e.on("fullscreenBtnClick",n),["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"].forEach((function(e){document.addEventListener(e,i)})),e.video.addEventListener("webkitbeginfullscreen",(function(){(0,r.addClass)(t,"xgplayer-is-fullscreen"),e.emit("requestFullscreen")})),e.video.addEventListener("webkitendfullscreen",(function(){(0,r.removeClass)(t,"xgplayer-is-fullscreen"),e.emit("exitFullscreen")})),(0,r.checkWebkitSetPresentationMode)(e.video)&&e.video.addEventListener("webkitpresentationmodechanged",a),e.once("destroy",(function t(){e.off("fullscreenBtnClick",n),["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"].forEach((function(e){document.removeEventListener(e,i)})),(0,r.checkWebkitSetPresentationMode)(e.video)&&e.video.removeEventListener("webkitpresentationmodechanged",a),e.off("destroy",t)})),e.getFullscreen=function(e){var t=this;if(e.requestFullscreen){var n=e.requestFullscreen();n&&n.catch((function(){t.emit("fullscreen error")}))}else e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen(window.Element.ALLOW_KEYBOARD_INPUT):t.video.webkitSupportsFullscreen?t.video.webkitEnterFullscreen():e.msRequestFullscreen?e.msRequestFullscreen():(0,r.addClass)(e,"xgplayer-is-cssfullscreen")},e.exitFullscreen=function(e){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen(),(0,r.removeClass)(e,"xgplayer-is-cssfullscreen")},e.getRotateFullscreen=function(){var e=this;document.documentElement.style.width="100%",document.documentElement.style.height="100%",e.config.fluid&&(e.root.style["padding-top"]="",e.root.style["max-width"]="unset"),e.root&&!(0,r.hasClass)(e.root,"xgplayer-rotate-fullscreen")&&(0,r.addClass)(e.root,"xgplayer-rotate-fullscreen"),e.emit("getRotateFullscreen")},e.exitRotateFullscreen=function(){var e=this;document.documentElement.style.width="unset",document.documentElement.style.height="unset",e.config.fluid&&(e.root.style.width="100%",e.root.style.height="0",e.root.style["padding-top"]=100*e.config.height/e.config.width+"%",e.root.style["max-width"]="100%"),e.root&&(0,r.hasClass)(e.root,"xgplayer-rotate-fullscreen")&&(0,r.removeClass)(e.root,"xgplayer-rotate-fullscreen"),e.emit("exitRotateFullscreen")}}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={name:"play",method:function(){var e=this;function t(){if(e.config.allowPlayAfterEnded||!e.ended)if((0,r.hasClass)(e.root,"xgplayer-nostart")&&e.start(),e.paused){var t=e.play();void 0!==t&&t&&t.catch((function(e){}))}else e.pause()}e.on("playBtnClick",t),e.once("destroy",(function n(){e.off("playBtnClick",t),e.off("destroy",n)}))}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={name:"replay",method:function(){var e=this,t=e.root;function n(){(0,r.removeClass)(t,"xgplayer-is-replay"),e.replay()}e.on("replayBtnClick",n),e.on("ended",(function(){e.config.loop||(0,r.addClass)(t,"xgplayer-is-replay")})),e.once("destroy",(function t(){e.off("replayBtnClick",n),e.off("destroy",t)}))}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=o(n(49)),a=o(n(50));function o(e){return e&&e.__esModule?e:{default:e}}n(51),t.default={name:"s_play",method:function(){var e=this,t=e.config.playBtn?e.config.playBtn:{},n=void 0;n="img"===t.type?(0,r.createImgBtn)("play",t.url.play,t.width,t.height):(0,r.createDom)("xg-play",'\n '+i.default+'
\n '+a.default+"
\n ",{},"xgplayer-play");var o={};o.play=e.lang.PLAY_TIPS,o.pause=e.lang.PAUSE_TIPS;var l=(0,r.createDom)("xg-tips",''+o.play+' \n '+o.pause+" ",{},"xgplayer-tips");n.appendChild(l),e.once("ready",(function(){e.controls&&e.controls.appendChild(n)})),["click","touchend"].forEach((function(t){n.addEventListener(t,(function(t){t.preventDefault(),t.stopPropagation(),e.userGestureTrigEvent("playBtnClick")}))}))}},e.exports=t.default},function(e,t,n){n.r(t),t.default='\n \n \n'},function(e,t,n){n.r(t),t.default='\n \n \n'},function(e,t,n){var r=n(52);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".xgplayer-skin-default .xgplayer-play,.xgplayer-skin-default .xgplayer-play-img{width:40px;position:relative;-webkit-order:0;-moz-box-ordinal-group:1;order:0;display:block;cursor:pointer;margin-left:3px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-play .xgplayer-icon{margin-top:3px;width:32px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-play .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}.xgplayer-skin-default .xgplayer-play-img:hover,.xgplayer-skin-default .xgplayer-play:hover{opacity:.85}.xgplayer-skin-default .xgplayer-play-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-play:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}",""])},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);n(54),t.default={name:"s_poster",method:function(){var e=this,t=e.root;if(e.config.poster){var n=(0,r.createDom)("xg-poster","",{},"xgplayer-poster");n.style.backgroundImage="url("+e.config.poster+")",t.appendChild(n)}}},e.exports=t.default},function(e,t,n){var r=n(55);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".xgplayer-skin-default .xgplayer-poster{display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;background-size:cover;background-position:50%}.xgplayer-skin-default.xgplayer-nostart .xgplayer-poster{display:block}",""])},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);n(57),t.default={name:"s_flex",method:function(){var e=(0,r.createDom)("xg-placeholder","",{},"xgplayer-placeholder");this.controls.appendChild(e)}},e.exports=t.default},function(e,t,n){var r=n(58);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".xgplayer-skin-default .xgplayer-placeholder{-webkit-flex:1;-moz-box-flex:1;flex:1;-webkit-order:3;-moz-box-ordinal-group:4;order:3;display:block}",""])},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=o(n(60)),a=o(n(61));function o(e){return e&&e.__esModule?e:{default:e}}n(62),t.default={name:"s_fullscreen",method:function(){var e=this,t=e.config.fullscreenBtn?e.config.fullscreenBtn:{},n=void 0;n="img"===t.type?(0,r.createImgBtn)("fullscreen",t.url.request,t.width,t.height):(0,r.createDom)("xg-fullscreen",'\n '+i.default+'
\n '+a.default+"
\n ",{},"xgplayer-fullscreen");var o={};o.requestfull=e.lang.FULLSCREEN_TIPS,o.exitfull=e.lang.EXITFULLSCREEN_TIPS;var l=(0,r.createDom)("xg-tips",''+o.requestfull+' \n '+o.exitfull+" ",{},"xgplayer-tips");n.appendChild(l),e.once("ready",(function(){e.controls&&e.controls.appendChild(n)})),["click","touchend"].forEach((function(t){n.addEventListener(t,(function(t){t.preventDefault(),t.stopPropagation(),e.userGestureTrigEvent("fullscreenBtnClick")}))}))}},e.exports=t.default},function(e,t,n){n.r(t),t.default='\n \n \n'},function(e,t,n){n.r(t),t.default='\n \n \n'},function(e,t,n){var r=n(63);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".xgplayer-skin-default .xgplayer-fullscreen,.xgplayer-skin-default .xgplayer-fullscreen-img{position:relative;-webkit-order:13;-moz-box-ordinal-group:14;order:13;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img:hover,.xgplayer-skin-default .xgplayer-fullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-fullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}",""])},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(0),a=n(65),o=(r=a)&&r.__esModule?r:{default:r};n(66),t.default={name:"s_loading",method:function(){var e=this.root,t=(0,i.createDom)("xg-loading",""+o.default,{},"xgplayer-loading");this.once("ready",(function(){e.appendChild(t)}))}},e.exports=t.default},function(e,t,n){n.r(t),t.default='\n \n \n'},function(e,t,n){var r=n(67);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".xgplayer-skin-default .xgplayer-loading{display:none;width:100px;height:100px;overflow:hidden;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);position:absolute;left:50%;top:50%;margin:-50px auto auto -50px}.xgplayer-skin-default .xgplayer-loading svg{border-radius:50%;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-animation:loadingRotate 1s linear infinite;animation:loadingRotate 1s linear infinite}.xgplayer-skin-default .xgplayer-loading svg path{stroke:#ddd;stroke-dasharray:236;-webkit-animation:loadingDashOffset 2s linear infinite;animation:loadingDashOffset 2s linear infinite;animation-direction:alternate-reverse;fill:none;stroke-width:12px}.xgplayer-skin-default.xgplayer-nostart .xgplayer-loading{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-loading{display:none!important}.xgplayer-skin-default.xgplayer-isloading .xgplayer-loading{display:block}",""])},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(0),a=n(5),o=(r=a)&&r.__esModule?r:{default:r};n(69);var l=function(e){return(0,i.hasClass)(e.root,"xgplayer-rotate-fullscreen")};t.default={name:"s_progress",method:function(){var e=this,t=(0,i.createDom)("xg-progress",'\n \n \n \n \n \n \n ',{tabindex:1},"xgplayer-progress"),n=void 0;e.controls.appendChild(t);var r=t.querySelector(".xgplayer-progress-played"),a=t.querySelector(".xgplayer-progress-outer"),s=t.querySelector(".xgplayer-progress-cache"),u=t.querySelector(".xgplayer-progress-point"),c=t.querySelector(".xgplayer-progress-thumbnail");function p(n,r){n.addEventListener("mouseenter",(function(e){r&&((0,i.addClass)(n,"xgplayer-progress-dot-show"),(0,i.addClass)(t,"xgplayer-progress-dot-active"))})),n.addEventListener("mouseleave",(function(e){r&&((0,i.removeClass)(n,"xgplayer-progress-dot-show"),(0,i.removeClass)(t,"xgplayer-progress-dot-active"))})),n.addEventListener("touchend",(function(a){a.stopPropagation(),r&&((0,i.hasClass)(n,"xgplayer-progress-dot-show")||Object.keys(e.dotArr).forEach((function(t){e.dotArr[t]&&(0,i.removeClass)(e.dotArr[t],"xgplayer-progress-dot-show")})),(0,i.toggleClass)(n,"xgplayer-progress-dot-show"),(0,i.toggleClass)(t,"xgplayer-progress-dot-active"))}))}function d(){e.config.progressDot&&"Array"===(0,i.typeOf)(e.config.progressDot)&&e.config.progressDot.forEach((function(t){if(t.time>=0&&t.time<=e.duration){var n=(0,i.createDom)("xg-progress-dot",t.text?''+t.text+" ":"",{},"xgplayer-progress-dot");if(n.style.left=t.time/e.duration*100+"%",t.duration>=0&&(n.style.width=Math.min(t.duration,e.duration-t.time)/e.duration*100+"%"),t.style)for(var r in t.style)n.style[r]=t.style[r];a.appendChild(n),e.dotArr[t.time]=n,p(n,t.text)}}))}e.dotArr={},e.once("canplay",d),e.addProgressDot=function(t,n,r,o){if(!e.dotArr[t]&&t>=0&&t<=e.duration){var l=(0,i.createDom)("xg-progress-dot",n?''+n+" ":"",{},"xgplayer-progress-dot");if(l.style.left=t/e.duration*100+"%",r>=0&&(l.style.width=Math.min(r,e.duration-t)/e.duration*100+"%"),o)for(var s in o)l.style[s]=o[s];a.appendChild(l),e.dotArr[t]=l,p(l,n)}},e.removeProgressDot=function(t){if(t>=0&&t<=e.duration&&e.dotArr[t]){var n=e.dotArr[t];n.parentNode.removeChild(n),n=null,e.dotArr[t]=null}},e.removeAllProgressDot=function(){Object.keys(e.dotArr).forEach((function(t){if(e.dotArr[t]){var n=e.dotArr[t];n.parentNode.removeChild(n),n=null,e.dotArr[t]=null}}))};var f=0,g=0,h=0,y=0,v=0,x=0,m=[],b=void 0,k=void 0,w=function(){e.config.thumbnail&&(e.config.thumbnail.isShowCoverPreview&&!b&&(r.removeChild(c),(b=(0,i.createDom)("xg-coverpreview",'\n \n \n ',{tabindex:1},"xgplayer-coverpreview")).querySelector(".xgplayer-coverpreview-outer"),k=b.querySelector(".xgplayer-coverpreview-point"),c=b.querySelector(".xgplayer-coverpreview-thumbnail"),e.root.appendChild(b)),f=e.config.thumbnail.pic_num,g=e.config.thumbnail.width,h=e.config.thumbnail.height,y=e.config.thumbnail.col,v=e.config.thumbnail.row,m=e.config.thumbnail.urls,c.style.width=g+"px",c.style.height=h+"px")};e.on("loadedmetadata",w),"function"==typeof e.config.disableSwipeHandler&&"function"==typeof e.config.enableSwipeHandler&&(e.root.addEventListener("touchmove",(function(t){t.preventDefault(),e.disableSwipe||(e.disableSwipe=!0,e.config.disableSwipeHandler.call(e))})),e.root.addEventListener("touchstart",(function(t){e.disableSwipe=!0,e.config.disableSwipeHandler.call(e)})),e.root.addEventListener("touchend",(function(t){e.disableSwipe=!1,e.config.enableSwipeHandler.call(e)})));var _=["touchstart","mousedown"];"mobile"===o.default.device&&_.pop();var E=null,T=null,C=function(a){if(!e.config.disableProgress){if(a.stopPropagation(),(0,i.event)(a),a._target===u||!e.config.allowSeekAfterEnded&&e.ended)return!0;t.focus();var s=r.getBoundingClientRect().left,p=l(e);return p?(s=r.getBoundingClientRect().top,n=t.getBoundingClientRect().height):(n=t.getBoundingClientRect().width,s=r.getBoundingClientRect().left),E=function(t){t.stopPropagation(),(0,i.event)(t),e.isProgressMoving=!0;var a=(p?t.clientY:t.clientX)-s;a>n&&(a=n);var o=a/n*e.duration;if(o<0&&(o=0),e.config.allowSeekPlayed&&Number(o).toFixed(1)>e.maxPlayedTime);else if(r.style.width=100*a/n+"%","video"!==e.videoConfig.mediaType||e.dash||e.config.closeMoveSeek){var l=(0,i.findDom)(e.controls,".xgplayer-time");l&&(l.innerHTML=''+(0,i.format)(o||0)+" "+(0,i.format)(e.duration)+" ")}else console.log("trigger touchmove"),e.currentTime=Number(o).toFixed(1);if(e.config.thumbnail&&e.config.thumbnail.isShowCoverPreview){k.innerHTML=""+(0,i.format)(o)+" / "+(0,i.format)(e.duration||0),x=e.duration/f;var u=Math.floor(o/x);c.style.backgroundImage="url("+m[Math.ceil((u+1)/(y*v))-1]+")";var d=u+1-y*v*(Math.ceil((u+1)/(y*v))-1),w=Math.ceil(d/v)-1,_=d-w*v-1;c.style["background-position"]="-"+_*g+"px -"+w*h+"px",b.style.display="block"}e.emit("focus")},T=function(a){if(console.log("up event",a),a.stopPropagation(),(0,i.event)(a),window.removeEventListener("mousemove",E),window.removeEventListener("touchmove",E,{passive:!1}),window.removeEventListener("mouseup",T),window.removeEventListener("touchend",T),o.default.browser.indexOf("ie")<0&&t.blur(),!e.isProgressMoving||e.videoConfig&&"audio"===e.videoConfig.mediaType||e.dash||e.config.closeMoveSeek){var l=(p?a.clientY:a.clientX)-s;l>n&&(l=n);var u=l/n*e.duration;u<0&&(u=0),e.config.allowSeekPlayed&&Number(u).toFixed(1)>e.maxPlayedTime||(r.style.width=100*l/n+"%",console.warn("trigger touchup"),e.currentTime=Number(u).toFixed(1))}e.config.thumbnail&&e.config.thumbnail.isShowCoverPreview&&(b.style.display="none"),e.emit("focus"),e.isProgressMoving=!1},window.addEventListener("touchmove",E,{passive:!1}),window.addEventListener("touchend",T),window.addEventListener("mousemove",E),window.addEventListener("mouseup",T),!0}};_.forEach((function(e){t.addEventListener(e,C)}));var S=function(n){if(!e.config.allowSeekAfterEnded&&e.ended)return!0;var r=l(e),a=r?t.getBoundingClientRect().top:t.getBoundingClientRect().left,o=r?t.getBoundingClientRect().height:t.getBoundingClientRect().width,s=function(n){var l=((r?n.clientY:n.clientX)-a)/o*e.duration;l=l<0?0:l,u.textContent=(0,i.format)(l);var s=u.getBoundingClientRect().width;if(e.config.thumbnail&&!e.config.thumbnail.isShowCoverPreview){x=e.duration/f;var p=Math.floor(l/x);c.style.backgroundImage="url("+m[Math.ceil((p+1)/(y*v))-1]+")";var d=p+1-y*v*(Math.ceil((p+1)/(y*v))-1),b=Math.ceil(d/v)-1,k=d-b*v-1;c.style["background-position"]="-"+k*g+"px -"+b*h+"px";var w=(r?n.clientY:n.clientX)-a-g/2;w=(w=w>0?w:0)0?_:0)>o-s?o-s:_,u.style.left=_+"px"}(0,i.hasClass)(t,"xgplayer-progress-dot-active")?u.style.display="none":u.style.display="block"},p=function(e){s(e)};t.addEventListener("mousemove",p,!1),t.addEventListener("mouseleave",(function n(r){t.removeEventListener("mousemove",p,!1),t.removeEventListener("mouseleave",n,!1),s(r),u.style.display="none",e.config.thumbnail&&!e.config.thumbnail.isShowCoverPreview&&(c.style.display="none")}),!1),s(n)};t.addEventListener("mouseenter",S,!1);var P=function(){if(void 0===e.maxPlayedTime&&(e.maxPlayedTime=0),e.maxPlayedTime0){for(var n=t.end(t.length-1),r=0,i=t.length;r=t.start(r)&&e.currentTime<=t.end(r)){n=t.end(r);for(var a=r+1;a=2){n=t.end(a-1);break}break}s.style.width=n/e.duration*100+"%"}},R=["bufferedChange","cacheupdate","ended","timeupdate"];R.forEach((function(t){e.on(t,M)})),e.once("destroy",(function n(){e.removeAllProgressDot(),e.off("canplay",d),e.off("timeupdate",P),e.off("currentTimeChange",O),e.off("srcChange",L),e.off("loadedmetadata",w),t.removeEventListener("mouseenter",S,!1),_.forEach((function(e){t.removeEventListener(e,C)})),window.removeEventListener("mousemove",E),window.removeEventListener("touchmove",E,{passive:!1}),window.removeEventListener("mouseup",T),window.removeEventListener("touchend",T),R.forEach((function(t){e.off(t,M)})),e.off("destroy",n)}))}},e.exports=t.default},function(e,t,n){var r=n(70);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".xgplayer-skin-default .xgplayer-progress{display:block;position:absolute;height:20px;line-height:20px;left:12px;right:12px;outline:none;top:-15px;z-index:35}.xgplayer-skin-default .xgplayer-progress-outer{background:hsla(0,0%,100%,.3);display:block;height:3px;line-height:3px;margin-top:8.5px;width:100%;position:relative;cursor:pointer}.xgplayer-skin-default .xgplayer-progress-cache,.xgplayer-skin-default .xgplayer-progress-played{display:block;height:100%;line-height:1;position:absolute;left:0;top:0}.xgplayer-skin-default .xgplayer-progress-cache{width:0;background:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-progress-played{display:block;width:0;background-image:linear-gradient(-90deg,#fa1f41,#e31106);border-radius:0 1.5px 1.5px 0}.xgplayer-skin-default .xgplayer-progress-btn{display:none;position:absolute;left:0;top:-5px;width:13px;height:13px;border-radius:30px;background:#fff;box-shadow:0 0 2px 0 rgba(0,0,0,.26);left:100%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%);z-index:36}.xgplayer-skin-default .xgplayer-progress-point{position:absolute}.xgplayer-skin-default .xgplayer-progress-point.xgplayer-tips{margin-left:0;top:-25px;display:none;z-index:100}.xgplayer-skin-default .xgplayer-progress-dot{display:inline-block;position:absolute;height:3px;width:5px;top:0;background:#fff;border-radius:6px;z-index:16}.xgplayer-skin-default .xgplayer-progress-dot .xgplayer-progress-tip{position:absolute;bottom:200%;right:50%;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);height:auto;line-height:30px;width:auto;background:rgba(0,0,0,.3);border-radius:6px;border:1px solid rgba(0,0,0,.8);cursor:default;white-space:nowrap;display:none}.xgplayer-skin-default .xgplayer-progress-dot-show .xgplayer-progress-tip{display:block}.xgplayer-skin-default .xgplayer-progress-thumbnail{position:absolute;-moz-box-sizing:border-box;box-sizing:border-box}.xgplayer-skin-default .xgplayer-progress-thumbnail.xgplayer-tips{margin-left:0;display:none;z-index:99}.xgplayer-skin-default .xgplayer-coverpreview{position:absolute;width:100%;height:100%;top:0;left:0;display:none}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer{position:absolute;display:block;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-thumbnail{display:block}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point{display:block;text-align:center;font-family:PingFangSC-Regular;font-size:11px;color:#ccc;padding:2px 4px}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point span{color:#fff}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-outer{height:6px;margin-top:7px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-dot,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-dot{height:6px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-btn{display:block;top:-3px}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-volume-active .xgplayer-progress{z-index:15}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress-btn{display:block!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-outer{height:3px!important;margin-top:8.5px!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-btn{display:block!important;top:-5px!important}",""])},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);n(72),t.default={name:"s_time",method:function(){var e=this,t=(0,r.createDom)("xg-time",''+(e.currentTime||(0,r.format)(0))+" \n "+(e.duration||(0,r.format)(0))+" ",{},"xgplayer-time");e.once("ready",(function(){e.controls&&e.controls.appendChild(t)}));var n=function(){"audio"===e.videoConfig.mediaType&&e.isProgressMoving&&e.dash||(t.innerHTML=''+(0,r.format)(e.currentTime||0)+" "+(0,r.format)(e.duration)+" ")};e.on("durationchange",n),e.on("timeupdate",n),e.once("destroy",(function t(){e.off("durationchange",n),e.off("timeupdate",n),e.off("destroy",t)}))}},e.exports=t.default},function(e,t,n){var r=n(73);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,'.xgplayer-skin-default .xgplayer-time{-webkit-order:2;-moz-box-ordinal-group:3;order:2;font-family:ArialMT;font-size:13px;color:#fff;line-height:40px;height:40px;text-align:center;display:inline-block;margin:auto 8px}.xgplayer-skin-default .xgplayer-time span{color:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current{color:#fff}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current:after{content:"/";display:inline-block;padding:0 3px}',""])},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(0),a=n(75),o=(r=a)&&r.__esModule?r:{default:r};n(76),t.default={name:"s_replay",method:function(){var e=this,t=e.root,n=e.lang.REPLAY,r=(0,i.createDom)("xg-replay",o.default+'\n '+n+" \n ",{},"xgplayer-replay");function a(){var e=r.querySelector("path");if(e){var t=window.getComputedStyle(e).getPropertyValue("transform");if("string"==typeof t&&t.indexOf("none")>-1)return;e.setAttribute("transform",t)}}e.once("ready",(function(){t.appendChild(r)})),e.on("ended",a),r.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation()}));var l=r.querySelector("svg");["click","touchend"].forEach((function(t){l.addEventListener(t,(function(t){t.preventDefault(),t.stopPropagation(),e.userGestureTrigEvent("replayBtnClick")}))})),e.once("destroy",(function t(){e.off("ended",a),e.off("destroy",t)}))}},e.exports=t.default},function(e,t,n){n.r(t),t.default='\n \n \n'},function(e,t,n){var r=n(77);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".xgplayer-skin-default .xgplayer-replay{position:absolute;left:0;top:0;width:100%;height:100%;z-index:105;display:none;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center;background:rgba(0,0,0,.54);-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.xgplayer-skin-default .xgplayer-replay svg{background:rgba(0,0,0,.58);border-radius:100%;cursor:pointer}.xgplayer-skin-default .xgplayer-replay svg path{-webkit-transform:translate(20px,21px);-ms-transform:translate(20px,21px);transform:translate(20px,21px);fill:#ddd}.xgplayer-skin-default .xgplayer-replay svg:hover{background:rgba(0,0,0,.38)}.xgplayer-skin-default .xgplayer-replay svg:hover path{fill:#fff}.xgplayer-skin-default .xgplayer-replay .xgplayer-replay-txt{display:inline-block;font-family:PingFangSC-Regular;font-size:14px;color:#fff;line-height:34px}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-replay{display:-webkit-flex;display:-moz-box;display:flex}",""])},function(e,t,n){var r=n(160);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(r,i),r.locals&&(e.exports=r.locals)},function(e,t,n){e.exports=n(80)},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=P(n(9)),i=P(n(81)),a=P(n(82)),o=P(n(83)),l=P(n(84)),s=P(n(85)),u=P(n(88)),c=P(n(45)),p=P(n(89)),d=P(n(90)),f=P(n(91)),g=P(n(92)),h=P(n(37)),y=P(n(38)),v=P(n(98)),x=P(n(46)),m=P(n(99)),b=P(n(100)),k=P(n(47)),w=P(n(101)),_=P(n(102)),E=P(n(103)),T=P(n(39)),C=P(n(104)),S=P(n(105));function P(e){return e&&e.__esModule?e:{default:e}}n(107),r.default.installAll([i.default,a.default,o.default,l.default,s.default,u.default,c.default,p.default,d.default,f.default,g.default,h.default,y.default,v.default,x.default,m.default,b.default,k.default,w.default,_.default,E.default,T.default,C.default,S.default]),t.default=r.default,e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"airplay",method:function(){var e=this;function t(){e.video.webkitShowPlaybackTargetPicker()}e.config.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&(e.on("airplayBtnClick",t),e.once("destroy",(function n(){e.off("airplayBtnClick",t),e.off("destroy",n)})))}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={name:"cssFullscreen",method:function(){var e=this,t=e.root;function n(){(0,r.hasClass)(t,"xgplayer-is-cssfullscreen")?e.exitCssFullscreen():e.getCssFullscreen()}e.on("cssFullscreenBtnClick",n),e.on("exitFullscreen",(function(){(0,r.removeClass)(t,"xgplayer-is-cssfullscreen")})),e.once("destroy",(function t(){e.off("cssFullscreenBtnClick",n),e.off("destroy",t)})),e.getCssFullscreen=function(){var e=this;e.config.fluid&&(e.root.style["padding-top"]=""),(0,r.addClass)(e.root,"xgplayer-is-cssfullscreen"),e.emit("requestCssFullscreen")},e.exitCssFullscreen=function(){var e=this;e.config.fluid&&(e.root.style.width="100%",e.root.style.height="0",e.root.style["padding-top"]=100*e.config.height/e.config.width+"%"),(0,r.removeClass)(e.root,"xgplayer-is-cssfullscreen"),e.emit("exitCssFullscreen")}}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={name:"danmu",method:function(){var e=this;e.on("initDefaultDanmu",(function(t){var n=e.root.querySelector("xg-danmu");if((0,r.addClass)(n,"xgplayer-has-danmu"),!e.config.danmu.closeDefaultBtn){var i=function(){t.start()},a=function(){(0,r.hasClass)(e.danmuBtn,"danmu-switch-active")&&t.pause()},o=function(){(0,r.hasClass)(e.danmuBtn,"danmu-switch-active")&&t.play()},l=function(){(0,r.hasClass)(e.danmuBtn,"danmu-switch-active")&&(t.stop(),t.start())};e.danmuBtn=(0,r.copyDom)(t.bulletBtn.createSwitch(!0)),e.controls.appendChild(e.danmuBtn),["click","touchend"].forEach((function(a){e.danmuBtn.addEventListener(a,(function(a){a.preventDefault(),a.stopPropagation(),(0,r.toggleClass)(e.danmuBtn,"danmu-switch-active"),(0,r.hasClass)(e.danmuBtn,"danmu-switch-active")?(e.emit("danmuBtnOn"),(0,r.addClass)(n,"xgplayer-has-danmu"),e.once("timeupdate",i)):(e.emit("danmuBtnOff"),(0,r.removeClass)(n,"xgplayer-has-danmu"),t.stop())}))})),e.onElementClick&&n.addEventListener("click",(function(t){e.onElementClick(t,n)}),!1),e.onElementDblclick&&n.addEventListener("dblclick",(function(t){e.onElementDblclick(t,n)}),!1),e.on("pause",a),e.on("play",o),e.on("seeked",l),e.once("destroy",(function t(){e.off("timeupdate",i),e.off("pause",a),e.off("play",o),e.off("seeked",l),e.off("destroy",t)}))}}))}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"definition",method:function(){var e=this;e.once("destroy",(function t(){e.off("destroy",t)}))}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(86),a=(r=i)&&r.__esModule?r:{default:r},o=n(87);t.default={name:"download",method:function(){var e=this;function t(){e.download()}e.on("downloadBtnClick",t),e.once("destroy",(function n(){e.off("downloadBtnClick",t),e.off("destroy",n)})),e.download=function(){var e=(0,o.getAbsoluteURL)(this.config.url);(0,a.default)(e)}}},e.exports=t.default},function(e,t,n){var r,i,a;i=[],void 0===(a="function"==typeof(r=function(){return function e(t,n,r){var i,a,o=window,l="application/octet-stream",s=r||l,u=t,c=!n&&!r&&u,p=document.createElement("a"),d=function(e){return String(e)},f=o.Blob||o.MozBlob||o.WebKitBlob||d,g=n||"download";if(f=f.call?f.bind(o):Blob,"true"===String(this)&&(s=(u=[u,s])[0],u=u[1]),c&&c.length<2048&&(g=c.split("/").pop().split("?")[0],p.href=c,-1!==p.href.indexOf(c))){var h=new XMLHttpRequest;return h.open("GET",c,!0),h.responseType="blob",h.onload=function(t){e(t.target.response,g,l)},setTimeout((function(){h.send()}),0),h}if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(u)){if(!(u.length>2096103.424&&f!==d))return navigator.msSaveBlob?navigator.msSaveBlob(m(u),g):b(u);s=(u=m(u)).type||l}else if(/([\x80-\xff])/.test(u)){for(var y=0,v=new Uint8Array(u.length),x=v.length;yx',e=t.firstChild.href}return e}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(4),a=(r=i)&&r.__esModule?r:{default:r},o={maxCount:3,backupUrl:"",isFetch:!0,fetchTimeout:100};t.default={name:"errorretry",method:function(){var e=this,t=this;if(t.config.errorConfig&&!(t.src.indexOf("blob:")>-1)){var n={},r=t.config.errorConfig;for(var i in o)void 0===r[i]?n[i]=o[i]:n[i]=r[i];t.retryData={count:0,errfTimer:null,isFetchReturn:!1,currentTime:0};var l=t._onError;t._onError=function(r){var i=e.retryData.count;if(i>n.maxCount)n.isFetch?(o=e,u=e.currentSrc,c=n.fetchTimeout,p=function(e,t){o.retryData.isFetchReturn||(o.retryData.isFetchReturn=!0,e(t))},new Promise((function(e,t){try{var n=new window.XMLHttpRequest;n.open("get",u),n.onload=function(){p(e,{status:n.status,statusText:n.statusText,xhr:n})},n.onerror=function(){p(e,{status:n.status,statusText:n.statusText||"The network environment is disconnected or the address is invalid",xhr:n})},n.onabort=function(){},o.retryData.errfTimer=window.setTimeout((function(){var t=o.retryData.errfTimer;window.clearTimeout(t),o.retryData.errfTimer=null,p(e,{status:-1,statusText:"request timeout"})}),c),n.send()}catch(r){o.retryData.isFetchReturn=!0,p(e,{status:-2,statusText:"request error"})}}))).then((function(t){e.emit("error",new a.default({type:"network",currentTime:e.currentTime,duration:e.duration||0,networkState:e.networkState,readyState:e.readyState,currentSrc:e.currentSrc,src:e.src,ended:e.ended,httpCode:t.status,httpMsg:t.statusText,errd:{line:101,msg:e.error,handle:"plugin errorRetry"},errorCode:e.video&&e.video.error.code,mediaError:e.video&&e.video.error})),l.call(e,t)})):l.call(e,r);else{var o,u,c,p;0===i&&(e.retryData.currentTime=e.currentTime,e.once("canplay",s.bind(e)));var d="";d=n.count<2?n.backupUrl?n.backupUrl:t.currentSrc:n.backupUrl&&i>1?n.backupUrl:t.currentSrc,e.retryData.count++,e.src=d}}}function s(){this.currentTime=this.retryData.currentTime,this.play(),this.retryData.retryCode=0,this.retryData.isFetchReturn=!1,this.retryData.currentTime=0}}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0||(e?n.currentTime-r>=0?n.currentTime-=r:n.currentTime=0:n.maxPlayedTime&&n.config.allowSeekPlayed&&n.currentTime+r>n.maxPlayedTime?n.currentTime=n.maxPlayedTime:n.currentTime+r<=n.duration?n.currentTime+=r:n.currentTime=n.duration+1)}},{key:"changeRate",value:function(){this.state.playbackRate=this.player.playbackRate,this.player.playbackRate=this.player.config.keyboardRate||5}},{key:"changeVolumeSlide",value:function(e){var t=this.player;t.controls&&(e?(t.emit("focus"),(0,i.hasClass)(t.root,"xgplayer-volume-active")||(0,i.addClass)(t.root,"xgplayer-volume-active")):(clearTimeout(this.timer),this.timer=setTimeout((function(){(0,i.removeClass)(t.root,"xgplayer-volume-active")}),1e3)))}},{key:"changeVolume",value:function(e){var t=this.player,n=(t.config.keyShortcutStep||{}).volume||.1;this.changeVolumeSlide(!0);var r=t.volume;e&&r+n<=1?t.volume=r+n:!e&&r-n>=0&&(t.volume=r-n)}}]),e}();t.default={name:"keyboard",method:function(){this.keyboard=new a(this)}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={name:"localPreview",method:function(){var e=this,t=e.root;function n(n){e.uploadFile=n.files[0];var i=URL.createObjectURL(e.uploadFile);if((0,r.hasClass)(t,"xgplayer-nostart"))e.config.url=i,e.start();else{e.src=i;var a=e.play();void 0!==a&&a&&a.catch((function(e){}))}}e.on("upload",n),e.once("destroy",(function t(){e.off("upload",n),e.off("destroy",t)}))}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"memoryPlay",method:function(){var e=this;e.on("memoryPlayStart",(function(t){setTimeout((function(){console.log("memoryPlayStart",t,e.readyState,11),e.currentTime=t}))}))}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(0),a=n(93),o=(r=a)&&r.__esModule?r:{default:r};t.default={name:"miniplayer",method:function(){var e=this,t=e.root;function n(){(0,i.hasClass)(t,"xgplayer-miniplayer-active")?e.exitMiniplayer():e.getMiniplayer()}e.on("miniplayerBtnClick",n),e.once("destroy",(function t(){e.off("miniplayerBtnClick",n),e.off("destroy",t)})),e.getMiniplayer=function(){(0,i.hasClass)(t,"xgplayer-is-fullscreen")&&this.exitFullscreen(t),(0,i.hasClass)(t,"xgplayer-is-cssfullscreen")&&this.exitCssFullscreen(),(0,i.hasClass)(t,"xgplayer-rotate-fullscreen")&&this.exitRotateFullscreen();var e=(0,i.createDom)("xg-miniplayer-lay","
",{},"xgplayer-miniplayer-lay");this.root.appendChild(e);var n=(0,i.createDom)("xg-miniplayer-drag",''+this.lang.MINIPLAYER_DRAG+"
",{tabindex:9},"xgplayer-miniplayer-drag");this.root.appendChild(n),new o.default(".xgplayer",{handle:".drag-handle"}),(0,i.addClass)(this.root,"xgplayer-miniplayer-active"),this.root.style.right=0,this.root.style.bottom="200px",this.root.style.top="",this.root.style.left="",this.root.style.width="320px",this.root.style.height="180px",this.config.miniplayerConfig&&(void 0!==this.config.miniplayerConfig.top&&(this.root.style.top=this.config.miniplayerConfig.top+"px",this.root.style.bottom=""),void 0!==this.config.miniplayerConfig.bottom&&(this.root.style.bottom=this.config.miniplayerConfig.bottom+"px"),void 0!==this.config.miniplayerConfig.left&&(this.root.style.left=this.config.miniplayerConfig.left+"px",this.root.style.right=""),void 0!==this.config.miniplayerConfig.right&&(this.root.style.right=this.config.miniplayerConfig.right+"px"),void 0!==this.config.miniplayerConfig.width&&(this.root.style.width=this.config.miniplayerConfig.width+"px"),void 0!==this.config.miniplayerConfig.height&&(this.root.style.height=this.config.miniplayerConfig.height+"px")),this.config.fluid&&(this.root.style["padding-top"]="");var r=this;["click","touchend"].forEach((function(t){e.addEventListener(t,(function(e){e.preventDefault(),e.stopPropagation(),r.exitMiniplayer()}))}))},e.exitMiniplayer=function(){(0,i.removeClass)(this.root,"xgplayer-miniplayer-active"),this.root.style.right="",this.root.style.bottom="",this.root.style.top="",this.root.style.left="",this.config.fluid?(this.root.style.width="100%",this.root.style.height="0",this.root.style["padding-top"]=100*this.config.height/this.config.width+"%"):(this.config.width&&("number"!=typeof this.config.width?this.root.style.width=this.config.width:this.root.style.width=this.config.width+"px"),this.config.height&&("number"!=typeof this.config.height?this.root.style.height=this.config.height:this.root.style.height=this.config.height+"px"));var e=(0,i.findDom)(this.root,".xgplayer-miniplayer-lay");e&&e.parentNode&&e.parentNode.removeChild(e);var t=(0,i.findDom)(this.root,".xgplayer-miniplayer-drag");t&&t.parentNode&&t.parentNode.removeChild(t)}}},e.exports=t.default},function(e,t,n){var r,i,a;
+/*!
+ * Draggabilly v2.4.1
+ * Make that shiz draggable
+ * https://draggabilly.desandro.com
+ * MIT license
+ */a=window,r=[n(94),n(95)],i=function(e,t){return function(e,t,n){function r(e,t){for(var n in t)e[n]=t[n];return e}function i(){}var a=e.jQuery;function o(e,t){this.element="string"==typeof e?document.querySelector(e):e,a&&(this.$element=a(this.element)),this.options=r({},this.constructor.defaults),this.option(t),this._create()}var l=o.prototype=Object.create(n.prototype);o.defaults={},l.option=function(e){r(this.options,e)};var s={relative:!0,absolute:!0,fixed:!0};function u(e,t,n){return n=n||"round",t?Math[n](e/t)*t:e}return l._create=function(){this.position={},this._getPosition(),this.startPoint={x:0,y:0},this.dragPoint={x:0,y:0},this.startPosition=r({},this.position);var e=getComputedStyle(this.element);s[e.position]||(this.element.style.position="relative"),this.on("pointerMove",this.onPointerMove),this.on("pointerUp",this.onPointerUp),this.enable(),this.setHandles()},l.setHandles=function(){this.handles=this.options.handle?this.element.querySelectorAll(this.options.handle):[this.element],this.bindHandles()},l.dispatchEvent=function(e,t,n){var r=[t].concat(n);this.emitEvent(e,r),this.dispatchJQueryEvent(e,t,n)},l.dispatchJQueryEvent=function(t,n,r){var i=e.jQuery;if(i&&this.$element){var a=i.Event(n);a.type=t,this.$element.trigger(a,r)}},l._getPosition=function(){var e=getComputedStyle(this.element),t=this._getPositionCoord(e.left,"width"),n=this._getPositionCoord(e.top,"height");this.position.x=isNaN(t)?0:t,this.position.y=isNaN(n)?0:n,this._addTransformPosition(e)},l._getPositionCoord=function(e,n){if(-1!=e.indexOf("%")){var r=t(this.element.parentNode);return r?parseFloat(e)/100*r[n]:0}return parseInt(e,10)},l._addTransformPosition=function(e){var t=e.transform;if(0===t.indexOf("matrix")){var n=t.split(","),r=0===t.indexOf("matrix3d")?12:4,i=parseInt(n[r],10),a=parseInt(n[r+1],10);this.position.x+=i,this.position.y+=a}},l.onPointerDown=function(e,t){this.element.classList.add("is-pointer-down"),this.dispatchJQueryEvent("pointerDown",e,[t])},l.pointerDown=function(e,t){this.okayPointerDown(e)&&this.isEnabled?(this.pointerDownPointer={pageX:t.pageX,pageY:t.pageY},e.preventDefault(),this.pointerDownBlur(),this._bindPostStartEvents(e),this.element.classList.add("is-pointer-down"),this.dispatchEvent("pointerDown",e,[t])):this._pointerReset()},l.dragStart=function(e,t){this.isEnabled&&(this._getPosition(),this.measureContainment(),this.startPosition.x=this.position.x,this.startPosition.y=this.position.y,this.setLeftTop(),this.dragPoint.x=0,this.dragPoint.y=0,this.element.classList.add("is-dragging"),this.dispatchEvent("dragStart",e,[t]),this.animate())},l.measureContainment=function(){var e=this.getContainer();if(e){var n=t(this.element),r=t(e),i=this.element.getBoundingClientRect(),a=e.getBoundingClientRect(),o=r.borderLeftWidth+r.borderRightWidth,l=r.borderTopWidth+r.borderBottomWidth,s=this.relativeStartPosition={x:i.left-(a.left+r.borderLeftWidth),y:i.top-(a.top+r.borderTopWidth)};this.containSize={width:r.width-o-s.x-n.width,height:r.height-l-s.y-n.height}}},l.getContainer=function(){var e=this.options.containment;if(e)return e instanceof HTMLElement?e:"string"==typeof e?document.querySelector(e):this.element.parentNode},l.onPointerMove=function(e,t,n){this.dispatchJQueryEvent("pointerMove",e,[t,n])},l.dragMove=function(e,t,n){if(this.isEnabled){var r=n.x,i=n.y,a=this.options.grid,o=a&&a[0],l=a&&a[1];r=u(r,o),i=u(i,l),r=this.containDrag("x",r,o),i=this.containDrag("y",i,l),r="y"==this.options.axis?0:r,i="x"==this.options.axis?0:i,this.position.x=this.startPosition.x+r,this.position.y=this.startPosition.y+i,this.dragPoint.x=r,this.dragPoint.y=i,this.dispatchEvent("dragMove",e,[t,n])}},l.containDrag=function(e,t,n){if(!this.options.containment)return t;var r="x"==e?"width":"height",i=u(-this.relativeStartPosition[e],n,"ceil"),a=this.containSize[r];return a=u(a,n,"floor"),Math.max(i,Math.min(a,t))},l.onPointerUp=function(e,t){this.element.classList.remove("is-pointer-down"),this.dispatchJQueryEvent("pointerUp",e,[t])},l.dragEnd=function(e,t){this.isEnabled&&(this.element.style.transform="",this.setLeftTop(),this.element.classList.remove("is-dragging"),this.dispatchEvent("dragEnd",e,[t]))},l.animate=function(){if(this.isDragging){this.positionDrag();var e=this;requestAnimationFrame((function(){e.animate()}))}},l.setLeftTop=function(){this.element.style.left=this.position.x+"px",this.element.style.top=this.position.y+"px"},l.positionDrag=function(){this.element.style.transform="translate3d( "+this.dragPoint.x+"px, "+this.dragPoint.y+"px, 0)"},l.staticClick=function(e,t){this.dispatchEvent("staticClick",e,[t])},l.setPosition=function(e,t){this.position.x=e,this.position.y=t,this.setLeftTop()},l.enable=function(){this.isEnabled=!0},l.disable=function(){this.isEnabled=!1,this.isDragging&&this.dragEnd()},l.destroy=function(){this.disable(),this.element.style.transform="",this.element.style.left="",this.element.style.top="",this.element.style.position="",this.unbindHandles(),this.$element&&this.$element.removeData("draggabilly")},l._init=i,a&&a.bridget&&a.bridget("draggabilly",o),o}(a,e,t)}.apply(t,r),void 0===i||(e.exports=i)},function(e,t,n){var r,i;
+/*!
+ * getSize v2.0.3
+ * measure size of elements
+ * MIT license
+ */window,void 0===(i="function"==typeof(r=function(){function e(e){var t=parseFloat(e);return-1==e.indexOf("%")&&!isNaN(t)&&t}function t(){}var n="undefined"==typeof console?t:function(e){console.error(e)},r=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],i=r.length;function a(){for(var e={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},t=0;t3||Math.abs(e.y)>3},r.pointerUp=function(e,t){this.emitEvent("pointerUp",[e,t]),this._dragPointerUp(e,t)},r._dragPointerUp=function(e,t){this.isDragging?this._dragEnd(e,t):this._staticClick(e,t)},r._dragStart=function(e,t){this.isDragging=!0,this.isPreventingClicks=!0,this.dragStart(e,t)},r.dragStart=function(e,t){this.emitEvent("dragStart",[e,t])},r._dragMove=function(e,t,n){this.isDragging&&this.dragMove(e,t,n)},r.dragMove=function(e,t,n){e.preventDefault(),this.emitEvent("dragMove",[e,t,n])},r._dragEnd=function(e,t){this.isDragging=!1,setTimeout(function(){delete this.isPreventingClicks}.bind(this)),this.dragEnd(e,t)},r.dragEnd=function(e,t){this.emitEvent("dragEnd",[e,t])},r.onclick=function(e){this.isPreventingClicks&&e.preventDefault()},r._staticClick=function(e,t){this.isIgnoringMouseUp&&"mouseup"==e.type||(this.staticClick(e,t),"mouseup"!=e.type&&(this.isIgnoringMouseUp=!0,setTimeout(function(){delete this.isIgnoringMouseUp}.bind(this),400)))},r.staticClick=function(e,t){this.emitEvent("staticClick",[e,t])},n.getPointerPoint=t.getPointerPoint,n}(a,e)}.apply(t,r),void 0===i||(e.exports=i)},function(e,t,n){var r,i,a;
+/*!
+ * Unipointer v2.4.0
+ * base class for doing one thing with pointer event
+ * MIT license
+ */a=window,r=[n(97)],i=function(e){return function(e,t){function n(){}function r(){}var i=r.prototype=Object.create(t.prototype);i.bindStartEvent=function(e){this._bindStartEvent(e,!0)},i.unbindStartEvent=function(e){this._bindStartEvent(e,!1)},i._bindStartEvent=function(t,n){var r=(n=void 0===n||n)?"addEventListener":"removeEventListener",i="mousedown";"ontouchstart"in e?i="touchstart":e.PointerEvent&&(i="pointerdown"),t[r](i,this)},i.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},i.getTouch=function(e){for(var t=0;ti/r?i/(s/l>i/r?i*l/s:r):r/(s/l>i/r?i:r*s/l):r>=i?r/i:i/r,u=Number(u.toFixed(5))):u=1,e.config.rotate.innerRotate?(n.style.transformOrigin="center center",n.style.transform="rotate("+e.rotateDeg+"turn) scale("+u+")",n.style.webKitTransform="rotate("+e.rotateDeg+"turn) scale("+u+")"):(e.config.rotate.controlsFix?(n.style.transformOrigin="center center",n.style.transform="rotate("+e.rotateDeg+"turn) scale("+u+")",n.style.webKitTransform="rotate("+e.rotateDeg+"turn) scale("+u+")"):(t.style.transformOrigin="center center",t.style.transform="rotate("+e.rotateDeg+"turn) scale(1)",t.style.webKitTransform="rotate("+e.rotateDeg+"turn) scale(1)"),!e.config.rotate.innerRotate&&e.config.rotate.controlsFix?(t.style.width=i+"px",t.style.height=r+"px"):.25===e.rotateDeg||.75===e.rotateDeg?(i>window.innerWidth&&(t.style.height=window.innerWidth+"px"),r>window.innerHeight&&(t.style.width=window.innerHeight+"px")):(t.style.width=a||"",t.style.height=o||""))},e.rotate=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=this;n.rotateDeg||(n.rotateDeg=0);var r=e?1:-1;n.rotateDeg=(n.rotateDeg+1+.25*r*t)%1,this.updateRotateDeg(),n.emit("rotate",360*n.rotateDeg)})}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"screenShot",method:function(){var e=this,t=e.config.screenShot,n=null;if(t){e.video.setAttribute("crossOrigin","anonymous");var r=.92;(t.quality||0===t.quality)&&(r=t.quality);var i=void 0===t.type?"image/png":t.type,a=void 0===t.format?".png":t.format,o=document.createElement("canvas"),l=o.getContext("2d"),s=new Image;o.width=this.config.width||600,o.height=this.config.height||337.5,e.screenShot=function(){var u=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];u=void 0===t.saveImg?u:t.saveImg,o.width=e.video.videoWidth||600,o.height=e.video.videoHeight||337.5,n=t.callBack,s.onload=function(){l.drawImage(e.video,0,0,o.width,o.height),s.src=o.toDataURL(i,r).replace(i,"image/octet-stream");var c=s.src.replace(/^data:image\/[^;]+/,"data:application/octet-stream"),p=t.fileName||e.lang.SCREENSHOT;e.emit("screenShot",c),u&&n?n(c,p,a):u&&function(e,t){var n=document.createElement("a");n.href=e,n.download=t;var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),n.dispatchEvent(r)}(c,p+a)}()},e.on("screenShotBtnClick",e.screenShot),e.once("destroy",(function t(){e.off("screenShotBtnClick",e.screenShot),e.off("destroy",t)}))}}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(4),a=(r=i)&&r.__esModule?r:{default:r};t.default={name:"stallCheck",method:function(){var e=this;if(e.config.enableStallCheck){var t=0,n=void 0,r=void 0;e.once("complete",(function(){setInterval((function(){e.currentTime-(t||0)>.1||e.paused?1!==n&&2!==n||(n=0,clearTimeout(r),r=null):n||(n=1,r=setTimeout((function(){1===n&&(n=2,e.emit("error",new a.default("STALL"))),r=null}),2e4)),t=e.currentTime}),1e3)}))}}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(0),a=n(5),o=(r=a)&&r.__esModule?r:{default:r};t.default={name:"volume",method:function(){var e=this,t=e.root,n=void 0,r=void 0,a=void 0,l=void 0;function s(){e.controls&&(e.volume=e.config.volume,(n=e.controls.querySelector(".xgplayer-volume"))&&(r=n.querySelector(".xgplayer-slider"),a=n.querySelector(".xgplayer-bar"),l=n.querySelector(".xgplayer-drag"),"mobile"===o.default.device&&(0===e.volume&&(e.video.muted=!0),g())))}function u(t){if(r){e.video.muted=!1,r.focus(),(0,i.event)(t);var n=a.getBoundingClientRect(),o=(t.clientX,t.clientY),s=l.getBoundingClientRect().height,u=!1,c=function(t){t.preventDefault(),t.stopPropagation(),(0,i.event)(t),u=!0;var r=s-t.clientY+o,a=r/n.height;l.style.height=r+"px",e.volume=Math.max(Math.min(a,1),0)},p=function t(a){if(a.preventDefault(),a.stopPropagation(),(0,i.event)(a),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",c),window.removeEventListener("mouseup",t),window.removeEventListener("touchend",t),!u){var o=n.height-(a.clientY-n.top),s=o/n.height;l.style.height=o+"px",s<=0&&(e.volume>0?l.volume=e.video.volume:s=l.volume),e.volume=Math.max(Math.min(s,1),0)}r.volume=e.volume,u=!1};return window.addEventListener("mousemove",c),window.addEventListener("touchmove",c),window.addEventListener("mouseup",p),window.addEventListener("touchend",p),!1}}function c(){if("mobile"===o.default.device)e.video.muted?(e.video.muted=!1,e.emit("unmute"),e.volume=1):(e.video.muted=!0,e.emit("mute"),e.volume=0);else{if(!r)return;e.video.muted=!1,e.volume<.1?(r.volume<.1?e.volume=.6:e.volume=r.volume,e.emit("unmute")):(e.volume=0,e.emit("mute"))}}function p(){(0,i.addClass)(t,"xgplayer-volume-active"),n&&n.focus()}function d(){(0,i.removeClass)(t,"xgplayer-volume-active")}e.once("canplay",s),e.on("volumeBarClick",u),e.on("volumeIconClick",c),e.on("volumeIconEnter",p),e.on("volumeIconLeave",d);var f=null;function g(){f&&clearTimeout(f),f=setTimeout((function(){if("mobile"===o.default.device)(0,i.removeClass)(t,"xgplayer-volume-muted"),(0,i.removeClass)(t,"xgplayer-volume-large"),e.video.muted||e.video.defaultMuted?(e.video.muted||(e.video.muted=!0),e.video.defaultMuted=!1,(0,i.addClass)(t,"xgplayer-volume-muted")):(0,i.addClass)(t,"xgplayer-volume-large");else{if((0,i.removeClass)(t,"xgplayer-volume-muted"),(0,i.removeClass)(t,"xgplayer-volume-small"),(0,i.removeClass)(t,"xgplayer-volume-large"),0===e.volume||e.muted?(0,i.addClass)(t,"xgplayer-volume-muted"):e.volume<.5?(0,i.addClass)(t,"xgplayer-volume-small"):(0,i.addClass)(t,"xgplayer-volume-large"),!a)return;var n=a.getBoundingClientRect().height||76;l.style.height=e.volume*n+"px"}}),50)}e.on("volumechange",g),e.once("destroy",(function t(){e.off("canplay",s),e.off("volumeBarClick",u),e.off("volumeIconClick",c),e.off("volumeIconEnter",p),e.off("volumeIconLeave",d),e.off("volumechange",g),e.off("destroy",t),f&&(clearTimeout(f),f=null)}))}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,i=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},n={subTitles:e,defaultOpen:!(arguments.length>2&&void 0!==arguments[2])||arguments[2]};return Object.keys(t).map((function(e){n[e]=t[e]})),new o.default(n)}},{key:"switch",value:function(e){return this.subtitle.switch(e)}},{key:"switchOff",value:function(){return this.subtitle.switchOff()}},{key:"setSubTitles",value:function(e,t,n){return this.subtitle.setSubTitles(e,t,n)}},{key:"onFocus",value:function(){var e=this.positionData,t=e.marginBottom,n=e.vBottom;if(!this.isActive&&t){this.isActive=!0;var r=t+n;this.followBottom>r&&(r=this.followBottom),this.subtitle&&(this.subtitle.root.style.bottom=r+"px")}}},{key:"onBlur",value:function(){this.isActive=!1;var e=this.positionData.vBottom+this.positionData.marginBottom;this.subtitle&&(this.subtitle.root.style.bottom=e+"px")}},{key:"onSubtitleResize",value:function(e){this.positionData.vBottom=e.vBottom,this.positionData.marginBottom=e.marginBottom}},{key:"destroy",value:function(){this.subtitle.off("resize",this.onSubtitleResize),this.player.off("focus",this.onFocus),this.player.off("blur",this.onBlur),this.subtitle.destroy(),this.subtitle=null}}]),e}();t.default={name:"textTrack",method:function(){var e=this,t=this;if(t.config.textTrack){var n=t.config.textTrackStyle||{};Object.keys(l).map((function(e){void 0===n[e]&&(n[e]=l[e])})),t.textTrackShowDefault=!1,t.config.textTrack.map((function(e,n){e.id||e.language||(e.id=n),!e.url&&(e.url=e.src),!e.language&&(e.language=e.srclang),void 0===e.isDefault&&(e.isDefault=e.default),!t.textTrackShowDefault&&(t.textTrackShowDefault=e.isDefault||e.default)})),this.subTitles=new s(t,t.config.textTrack,n),t.setSubTitles=function(n){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!1;n.map((function(e,t){e.id||e.language||(e.id=t),!e.url&&(e.url=e.src),!e.language&&(e.language=e.srclang),void 0===e.isDefault&&(e.isDefault=e.default),e.isDefault&&(i=!0)})),t.textTrackShowDefault=i,e.subTitles.setSubTitles(n,i,r),t.emit("subtitle_change",{off:!1,isListUpdate:!0,list:n})},t.switchSubTitle=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:"",language:""};e.subTitles.switch(n).then((function(e){0===e.code&&(n.off=!1,n.isListUpdate=!1,n.list=[],t.emit("subtitle_change",n))}))},t.switchOffSubtile=function(){e.subTitles.switchOff(),t.emit("subtitle_change",{off:!0,isListUpdate:!1,list:[]})},t.once("destroy",(function(){this.subTitles.destroy(),this.subTitles=null}))}}},e.exports=t.default},function(e,t,n){e.exports=function(){function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e,t){return e(t={exports:{}},t.exports),t.exports}function n(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=I(t),this.reject=I(n)}function r(e){var t=e.length;return 3===t?(60*(60*Number(e[0])+Number(e[1]))*1e3+1e3*Number(e[2]))/1e3:2===t?(60*Number(e[0])*1e3+1e3*Number(e[1]))/1e3:Number(e[0])}function i(e){return/^(\-|\+)?\d+(\.\d+)?$/.test(e)}function a(e){return e}function o(e,t){return e>=0&&e=r?r-1:n].start<=e&&et[i].end&&i+1t[i].end&&i+1>=r)return-1}return-1}function p(e,t,n){var r=t.length;if(r<1)return[];var i=[];if((n=n<0?0:n>=r?r-1:n)0&&void 0!==arguments[0]?arguments[0]:"div",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=document.createElement(e);return i.className=r,i.innerHTML=t,wr(n).forEach((function(t){var r=t,a=n[t];"video"===e||"audio"===e||"live-video"===e?a&&i.setAttribute(r,a):i.setAttribute(r,a)})),i}function g(){var e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),n=/(?:SymbianOS)/.test(e)||t,r=/(?:Android)/.test(e),i=/(?:Firefox)/.test(e),a=/(?:iPad|PlayBook)/.test(e)||r&&!/(?:Mobile)/.test(e)||i&&/(?:Tablet)/.test(e);return/(?:iPhone)/.test(e)&&!a||r||n||a}function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n="";e.map((function(e){n+=" "+t+" "+e.key+" {"+e.style+"}"}));var r=document.createElement("style"),i=document.head||document.getElementsByTagName("head")[0];if(r.type="text/css",r.id="ssss",r.styleSheet){var a=function(){try{r.styleSheet.cssText=n}catch(e){}};r.styleSheet.disabled?setTimeout(a,10):a()}else{var o=document.createTextNode(n);r.appendChild(o)}i.appendChild(r)}function y(e,t){Ir||(Ir=new jr),Ir.addObserver(e,t)}function v(e,t){Ir&&Ir.unObserver(e,t)}function x(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={code:zr[e].code,msg:zr[e].msg};return wr(t).map((function(e){n[e]=t[e]})),n}function m(e){return new br((function(t,n){e.list&&t(e),new Er({url:e.url,type:"text"}).then((function(r){Ar.parse(r.res.response,(function(r,i){if(i){var a=x(2,i);console.trace(a),n(a,{format:r.format})}else if(r.format)e.list=r.list,e.format=r.format,e.styles=r.styles,t(e);else{var o=x(3);console.trace(o),n(o)}}))})).catch((function(e){var t=x(1,{statusText:e.statusText,status:e.status,type:e.type,message:"http load error"});console.trace(t),n(t)}))}))}function b(e,t){return!!(e.id&&e.id===t.id||e.language&&e.language===t.language)}var k=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},w=function(e){return Object(k(e))},_={}.hasOwnProperty,E=function(e,t){return _.call(e,t)},T=t((function(e){var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)})),C=(T.version,t((function(e){var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)}))),S=t((function(e){var t=C["__core-js_shared__"]||(C["__core-js_shared__"]={});(e.exports=function(e,n){return t[e]||(t[e]=void 0!==n?n:{})})("versions",[]).push({version:T.version,mode:"pure",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),P=0,O=Math.random(),L=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++P+O).toString(36))},M=S("keys"),R=function(e){return M[e]||(M[e]=L(e))},D=R("IE_PROTO"),A=Object.prototype,j=Object.getPrototypeOf||function(e){return e=w(e),E(e,D)?e[D]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?A:null},I=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e},z=function(e,t,n){if(I(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},N=function(e){return"object"==typeof e?null!==e:"function"==typeof e},F=function(e){if(!N(e))throw TypeError(e+" is not an object!");return e},B=function(e){try{return!!e()}catch(t){return!0}},U=!B((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})),H=C.document,q=N(H)&&N(H.createElement),W=function(e){return q?H.createElement(e):{}},V=!U&&!B((function(){return 7!=Object.defineProperty(W("div"),"a",{get:function(){return 7}}).a})),Y=function(e,t){if(!N(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!N(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!N(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!N(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},K=Object.defineProperty,X={f:U?Object.defineProperty:function(e,t,n){if(F(e),t=Y(t,!0),F(n),V)try{return K(e,t,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},G=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},$=U?function(e,t,n){return X.f(e,t,G(1,n))}:function(e,t,n){return e[t]=n,e},J=function(e,t,n){var r,i,a,o=e&J.F,l=e&J.G,s=e&J.S,u=e&J.P,c=e&J.B,p=e&J.W,d=l?T:T[t]||(T[t]={}),f=d.prototype,g=l?C:s?C[t]:(C[t]||{}).prototype;for(r in l&&(n=t),n)(i=!o&&g&&void 0!==g[r])&&E(d,r)||(a=i?g[r]:n[r],d[r]=l&&"function"!=typeof g[r]?n[r]:c&&i?z(a,C):p&&g[r]==a?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(a):u&&"function"==typeof a?z(Function.call,a):a,u&&((d.virtual||(d.virtual={}))[r]=a,e&J.R&&f&&!f[r]&&$(f,r,a)))};J.F=1,J.G=2,J.S=4,J.P=8,J.B=16,J.W=32,J.U=64,J.R=128;var Z=J,Q=function(e,t){var n=(T.Object||{})[e]||Object[e],r={};r[e]=t(n),Z(Z.S+Z.F*B((function(){n(1)})),"Object",r)};Q("getPrototypeOf",(function(){return function(e){return j(w(e))}}));var ee,te=T.Object.getPrototypeOf,ne=e(t((function(e){e.exports={default:te,__esModule:!0}}))),re=e(t((function(e,t){t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}}))),ie=Math.ceil,ae=Math.floor,oe=function(e){return isNaN(e=+e)?0:(e>0?ae:ie)(e)},le=$,se={},ue={}.toString,ce=function(e){return ue.call(e).slice(8,-1)},pe=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==ce(e)?e.split(""):Object(e)},de=function(e){return pe(k(e))},fe=Math.min,ge=function(e){return e>0?fe(oe(e),9007199254740991):0},he=Math.max,ye=Math.min,ve=function(e,t){return(e=oe(e))<0?he(e+t,0):ye(e,t)},xe=(ee=!1,function(e,t,n){var r,i=de(e),a=ge(i.length),o=ve(n,a);if(ee&&t!=t){for(;a>o;)if((r=i[o++])!=r)return!0}else for(;a>o;o++)if((ee||o in i)&&i[o]===t)return ee||o||0;return!ee&&-1}),me=R("IE_PROTO"),be=function(e,t){var n,r=de(e),i=0,a=[];for(n in r)n!=me&&E(r,n)&&a.push(n);for(;t.length>i;)E(r,n=t[i++])&&(~xe(a,n)||a.push(n));return a},ke="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),we=Object.keys||function(e){return be(e,ke)},_e=U?Object.defineProperties:function(e,t){F(e);for(var n,r=we(t),i=r.length,a=0;i>a;)X.f(e,n=r[a++],t[n]);return e},Ee=C.document,Te=Ee&&Ee.documentElement,Ce=R("IE_PROTO"),Se=function(){},Pe=function(){var e,t=W("iframe"),n=ke.length;for(t.style.display="none",Te.appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("
+
+
+
+
+
+
+
+