-下载`Runtime(运行时)`版即可,安装完成后可能需要重启才生效。
+下载`Runtime(运行时)`版即可,安装完成后可能需要重启才生效,**若出现闪烁的情况**,可阅读下面的**Windows 7 下整个界面闪烁**解决。
-若还是不行可尝试以下操作:
+## Windows 7 下整个界面闪烁(消失又出现)
-- 更新显卡驱动
-- 添加启动参数`-dha`运行(添加的方法请自行百度“给快捷方式加参数”)
-- 尝试将绿色版的软件放在**桌面**或**我的文档**运行
+可尝试在关掉软件后,在桌面空白处鼠标右击,在弹出的菜单中选择**个性化**,在弹出的窗口中**切换到系统内置的Aero主题**,然后再启动软件看是否解决。
## Windows 7 下桌面歌词字体列表为空
@@ -344,8 +342,8 @@ send(EVENT_NAMES.inited, {
```
-- `@name `:源的名字,建议不要过长,10个字符以内
-- `@description `:源的描述,建议不要过长,20个字符以内,可不填,不填时必须保留 @description
+- `@name `:源的名字,建议不要过长,24个字符以内
+- `@description `:源的描述,建议不要过长,36个字符以内,可不填,不填时必须保留 @description
- `@version`:源的版本号,可不填,不填时可以删除 @version
- `@author `:脚本作者名字,可不填,不填时可以删除 @author
- `@homepage `:脚本主页,可不填,不填时可以删除 @homepage
@@ -354,6 +352,10 @@ send(EVENT_NAMES.inited, {
应用为脚本暴露的API对象。
+#### `window.lx.version`
+
+自定义源API版本,API变更时此版本号将会更改(新增于v1.14.0之后)
+
#### `window.lx.EVENT_NAMES`
常量事件名称对象,发送、注册事件时传入事件名时使用,可用值:
@@ -409,6 +411,7 @@ const cancelHttp = window.lx.request(url, options, callback)
应用提供给脚本的工具方法:
- `window.lx.utils.buffer.from`:对应Node.js的 `Buffer.from`
+- `window.lx.utils.buffer.bufToString`:Buffer转字符串 `bufToString(buffer, format)`,`format`对应Node.js `Buffer.toString`的参数(v1.14.0之后新增)
- `window.lx.utils.crypto.aesEncrypt`:AES加密 `aesEncrypt(buffer, mode, key, iv)`
- `window.lx.utils.crypto.md5`:MD5加密 `md5(str)`
- `window.lx.utils.crypto.randomBytes`:生成随机字符串 `randomBytes(size)`
diff --git a/README.md b/README.md
index 573c542b..f32dd72c 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@
所用技术栈:
-- Electron 13
+- Electron 15
- Vue 2
已支持的平台:
diff --git a/build-config/main/webpack.config.base.js b/build-config/main/webpack.config.base.js
index f83d8597..7a9c8d31 100644
--- a/build-config/main/webpack.config.base.js
+++ b/build-config/main/webpack.config.base.js
@@ -1,4 +1,5 @@
const path = require('path')
+const ESLintPlugin = require('eslint-webpack-plugin')
module.exports = {
target: 'electron-main',
@@ -18,17 +19,6 @@ module.exports = {
},
module: {
rules: [
- {
- test: /\.js$/,
- use: {
- loader: 'eslint-loader',
- options: {
- formatter: require('eslint-formatter-friendly'),
- },
- },
- exclude: /node_modules/,
- enforce: 'pre',
- },
{
test: /\.node$/,
use: 'node-loader',
@@ -38,4 +28,7 @@ module.exports = {
performance: {
maxEntrypointSize: 300000,
},
+ plugins: [
+ new ESLintPlugin(),
+ ],
}
diff --git a/build-config/renderer-lyric/webpack.config.base.js b/build-config/renderer-lyric/webpack.config.base.js
index 8731587b..354bb3cf 100644
--- a/build-config/renderer-lyric/webpack.config.base.js
+++ b/build-config/renderer-lyric/webpack.config.base.js
@@ -3,6 +3,7 @@ const VueLoaderPlugin = require('vue-loader/lib/plugin')
const HTMLPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const CleanCSSPlugin = require('less-plugin-clean-css')
+const ESLintPlugin = require('eslint-webpack-plugin')
const vueLoaderConfig = require('../vue-loader.config')
const { mergeCSSLoader } = require('../utils')
@@ -32,18 +33,6 @@ module.exports = {
},
module: {
rules: [
- {
- test: /\.(vue|js)$/,
- use: {
- loader: 'eslint-loader',
- options: {
- formatter: require('eslint-formatter-friendly'),
- emitWarning: isDev,
- },
- },
- exclude: /node_modules/,
- enforce: 'pre',
- },
{
test: /\.node$/,
use: 'node-loader',
@@ -147,5 +136,8 @@ module.exports = {
filename: isDev ? '[name].css' : '[name].[contenthash:8].css',
chunkFilename: isDev ? '[id].css' : '[id].[contenthash:8].css',
}),
+ new ESLintPlugin({
+ extensions: ['js', 'vue'],
+ }),
],
}
diff --git a/build-config/renderer/webpack.config.base.js b/build-config/renderer/webpack.config.base.js
index e75cf75f..8705b907 100644
--- a/build-config/renderer/webpack.config.base.js
+++ b/build-config/renderer/webpack.config.base.js
@@ -3,6 +3,7 @@ const VueLoaderPlugin = require('vue-loader/lib/plugin')
const HTMLPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const CleanCSSPlugin = require('less-plugin-clean-css')
+const ESLintPlugin = require('eslint-webpack-plugin')
const vueLoaderConfig = require('../vue-loader.config')
const { mergeCSSLoader } = require('../utils')
@@ -32,18 +33,6 @@ module.exports = {
},
module: {
rules: [
- {
- test: /\.(vue|js)$/,
- use: {
- loader: 'eslint-loader',
- options: {
- formatter: require('eslint-formatter-friendly'),
- emitWarning: isDev,
- },
- },
- exclude: /node_modules/,
- enforce: 'pre',
- },
{
test: /\.node$/,
use: 'node-loader',
@@ -147,5 +136,8 @@ module.exports = {
filename: isDev ? '[name].css' : '[name].[contenthash:8].css',
chunkFilename: isDev ? '[id].css' : '[id].[contenthash:8].css',
}),
+ new ESLintPlugin({
+ extensions: ['js', 'vue'],
+ }),
],
}
diff --git a/package-lock.json b/package-lock.json
index 72a2ccbe..cad869a2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "lx-music-desktop",
- "version": "1.14.0-beta3",
+ "version": "1.15.0-beta2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -26,20 +26,20 @@
"dev": true
},
"@babel/core": {
- "version": "7.15.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz",
- "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz",
+ "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.14.5",
- "@babel/generator": "^7.15.4",
+ "@babel/code-frame": "^7.15.8",
+ "@babel/generator": "^7.15.8",
"@babel/helper-compilation-targets": "^7.15.4",
- "@babel/helper-module-transforms": "^7.15.4",
+ "@babel/helper-module-transforms": "^7.15.8",
"@babel/helpers": "^7.15.4",
- "@babel/parser": "^7.15.5",
+ "@babel/parser": "^7.15.8",
"@babel/template": "^7.15.4",
"@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.4",
+ "@babel/types": "^7.15.6",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -49,37 +49,25 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
+ "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
},
"@babel/generator": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
- "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz",
+ "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==",
"dev": true,
"requires": {
- "@babel/types": "^7.15.4",
+ "@babel/types": "^7.15.6",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
},
- "@babel/helper-compilation-targets": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
- "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.15.0",
- "@babel/helper-validator-option": "^7.14.5",
- "browserslist": "^4.16.6",
- "semver": "^6.3.0"
- }
- },
"@babel/helper-function-name": {
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz",
@@ -128,19 +116,19 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz",
- "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz",
+ "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.15.4",
"@babel/helper-replace-supers": "^7.15.4",
"@babel/helper-simple-access": "^7.15.4",
"@babel/helper-split-export-declaration": "^7.15.4",
- "@babel/helper-validator-identifier": "^7.14.9",
+ "@babel/helper-validator-identifier": "^7.15.7",
"@babel/template": "^7.15.4",
"@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.4"
+ "@babel/types": "^7.15.6"
}
},
"@babel/helper-optimise-call-expression": {
@@ -183,9 +171,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -200,9 +188,9 @@
}
},
"@babel/parser": {
- "version": "7.15.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.5.tgz",
- "integrity": "sha512-2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
+ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
"dev": true
},
"@babel/template": {
@@ -234,9 +222,9 @@
}
},
"@babel/types": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz",
- "integrity": "sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==",
+ "version": "7.15.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
+ "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.14.9",
@@ -306,9 +294,9 @@
},
"dependencies": {
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/types": {
@@ -324,9 +312,9 @@
}
},
"@babel/helper-compilation-targets": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz",
- "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
+ "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
"dev": true,
"requires": {
"@babel/compat-data": "^7.15.0",
@@ -471,43 +459,52 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
+ "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
},
"@babel/generator": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz",
- "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz",
+ "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==",
"dev": true,
"requires": {
- "@babel/types": "^7.15.0",
+ "@babel/types": "^7.15.6",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
},
"@babel/helper-function-name": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz",
- "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz",
+ "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==",
"dev": true,
"requires": {
- "@babel/helper-get-function-arity": "^7.14.5",
- "@babel/template": "^7.14.5",
- "@babel/types": "^7.14.5"
+ "@babel/helper-get-function-arity": "^7.15.4",
+ "@babel/template": "^7.15.4",
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz",
- "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz",
+ "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==",
"dev": true,
"requires": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz",
+ "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-plugin-utils": {
@@ -517,18 +514,18 @@
"dev": true
},
"@babel/helper-split-export-declaration": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz",
- "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz",
+ "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==",
"dev": true,
"requires": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -543,43 +540,43 @@
}
},
"@babel/parser": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.0.tgz",
- "integrity": "sha512-0v7oNOjr6YT9Z2RAOTv4T9aP+ubfx4Q/OhVtAet7PFDt0t9Oy6Jn+/rfC6b8HJ5zEqrQCiMxJfgtHpmIminmJQ==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
+ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
"dev": true
},
"@babel/template": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz",
- "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz",
+ "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.14.5",
- "@babel/parser": "^7.14.5",
- "@babel/types": "^7.14.5"
+ "@babel/parser": "^7.15.4",
+ "@babel/types": "^7.15.4"
}
},
"@babel/traverse": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz",
- "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz",
+ "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.14.5",
- "@babel/generator": "^7.15.0",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-hoist-variables": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5",
- "@babel/parser": "^7.15.0",
- "@babel/types": "^7.15.0",
+ "@babel/generator": "^7.15.4",
+ "@babel/helper-function-name": "^7.15.4",
+ "@babel/helper-hoist-variables": "^7.15.4",
+ "@babel/helper-split-export-declaration": "^7.15.4",
+ "@babel/parser": "^7.15.4",
+ "@babel/types": "^7.15.4",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz",
- "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==",
+ "version": "7.15.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
+ "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.14.9",
@@ -609,9 +606,9 @@
},
"dependencies": {
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/types": {
@@ -920,9 +917,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/types": {
@@ -1109,9 +1106,9 @@
},
"dependencies": {
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/types": {
@@ -1160,21 +1157,21 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
+ "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
},
"@babel/generator": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
- "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz",
+ "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==",
"dev": true,
"requires": {
- "@babel/types": "^7.15.4",
+ "@babel/types": "^7.15.6",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
@@ -1218,9 +1215,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -1235,9 +1232,9 @@
}
},
"@babel/parser": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
- "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
+ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
"dev": true
},
"@babel/template": {
@@ -1303,21 +1300,21 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
+ "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
},
"@babel/generator": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
- "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz",
+ "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==",
"dev": true,
"requires": {
- "@babel/types": "^7.15.4",
+ "@babel/types": "^7.15.6",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
@@ -1361,9 +1358,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -1378,9 +1375,9 @@
}
},
"@babel/parser": {
- "version": "7.15.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.5.tgz",
- "integrity": "sha512-2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
+ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
"dev": true
},
"@babel/template": {
@@ -1412,9 +1409,9 @@
}
},
"@babel/types": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz",
- "integrity": "sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==",
+ "version": "7.15.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
+ "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.14.9",
@@ -1484,9 +1481,9 @@
}
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz",
- "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz",
+ "integrity": "sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.14.5",
@@ -1532,21 +1529,21 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
+ "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
},
"@babel/generator": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
- "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz",
+ "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==",
"dev": true,
"requires": {
- "@babel/types": "^7.15.4",
+ "@babel/types": "^7.15.6",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
@@ -1649,9 +1646,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -1666,9 +1663,9 @@
}
},
"@babel/parser": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
- "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
+ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
"dev": true
},
"@babel/template": {
@@ -1843,18 +1840,6 @@
"@babel/plugin-transform-parameters": "^7.15.4"
},
"dependencies": {
- "@babel/helper-compilation-targets": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
- "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.15.0",
- "@babel/helper-validator-option": "^7.14.5",
- "browserslist": "^4.16.6",
- "semver": "^6.3.0"
- }
- },
"@babel/helper-plugin-utils": {
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
@@ -1931,21 +1916,21 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
+ "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
},
"@babel/generator": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
- "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz",
+ "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==",
"dev": true,
"requires": {
- "@babel/types": "^7.15.4",
+ "@babel/types": "^7.15.6",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
@@ -2048,9 +2033,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -2065,9 +2050,9 @@
}
},
"@babel/parser": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
- "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
+ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
"dev": true
},
"@babel/template": {
@@ -2399,21 +2384,21 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
+ "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
},
"@babel/generator": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
- "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz",
+ "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==",
"dev": true,
"requires": {
- "@babel/types": "^7.15.4",
+ "@babel/types": "^7.15.6",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
@@ -2502,9 +2487,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -2519,9 +2504,9 @@
}
},
"@babel/parser": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
- "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
+ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
"dev": true
},
"@babel/template": {
@@ -2690,9 +2675,9 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
+ "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
@@ -2725,9 +2710,9 @@
"dev": true
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -2742,9 +2727,9 @@
}
},
"@babel/parser": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
- "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
+ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
"dev": true
},
"@babel/template": {
@@ -2847,21 +2832,21 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
+ "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
},
"@babel/generator": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
- "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz",
+ "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==",
"dev": true,
"requires": {
- "@babel/types": "^7.15.4",
+ "@babel/types": "^7.15.6",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
@@ -2914,19 +2899,19 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz",
- "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz",
+ "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.15.4",
"@babel/helper-replace-supers": "^7.15.4",
"@babel/helper-simple-access": "^7.15.4",
"@babel/helper-split-export-declaration": "^7.15.4",
- "@babel/helper-validator-identifier": "^7.14.9",
+ "@babel/helper-validator-identifier": "^7.15.7",
"@babel/template": "^7.15.4",
"@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.4"
+ "@babel/types": "^7.15.6"
}
},
"@babel/helper-optimise-call-expression": {
@@ -2975,9 +2960,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -2992,9 +2977,9 @@
}
},
"@babel/parser": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
- "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
+ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
"dev": true
},
"@babel/template": {
@@ -3062,21 +3047,21 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
+ "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
},
"@babel/generator": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
- "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz",
+ "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==",
"dev": true,
"requires": {
- "@babel/types": "^7.15.4",
+ "@babel/types": "^7.15.6",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
@@ -3129,19 +3114,19 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz",
- "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz",
+ "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.15.4",
"@babel/helper-replace-supers": "^7.15.4",
"@babel/helper-simple-access": "^7.15.4",
"@babel/helper-split-export-declaration": "^7.15.4",
- "@babel/helper-validator-identifier": "^7.14.9",
+ "@babel/helper-validator-identifier": "^7.15.7",
"@babel/template": "^7.15.4",
"@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.4"
+ "@babel/types": "^7.15.6"
}
},
"@babel/helper-optimise-call-expression": {
@@ -3190,9 +3175,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -3207,9 +3192,9 @@
}
},
"@babel/parser": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
- "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
+ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
"dev": true
},
"@babel/template": {
@@ -3386,24 +3371,49 @@
}
},
"@babel/plugin-transform-runtime": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz",
- "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.8.tgz",
+ "integrity": "sha512-+6zsde91jMzzvkzuEA3k63zCw+tm/GvuuabkpisgbDMTPQsIMHllE3XczJFFtEHLjjhKQFZmGQVRdELetlWpVw==",
"dev": true,
"requires": {
- "@babel/helper-module-imports": "^7.14.5",
+ "@babel/helper-module-imports": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
"babel-plugin-polyfill-corejs2": "^0.2.2",
- "babel-plugin-polyfill-corejs3": "^0.2.2",
+ "babel-plugin-polyfill-corejs3": "^0.2.5",
"babel-plugin-polyfill-regenerator": "^0.2.2",
"semver": "^6.3.0"
},
"dependencies": {
+ "@babel/helper-module-imports": {
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz",
+ "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.15.4"
+ }
+ },
"@babel/helper-plugin-utils": {
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
"integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==",
"dev": true
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
+ "dev": true
+ },
+ "@babel/types": {
+ "version": "7.15.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
+ "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.9",
+ "to-fast-properties": "^2.0.0"
+ }
}
}
},
@@ -3425,13 +3435,13 @@
}
},
"@babel/plugin-transform-spread": {
- "version": "7.14.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz",
- "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz",
+ "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5"
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4"
},
"dependencies": {
"@babel/helper-plugin-utils": {
@@ -3547,9 +3557,9 @@
}
},
"@babel/preset-env": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz",
- "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==",
+ "version": "7.15.8",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.8.tgz",
+ "integrity": "sha512-rCC0wH8husJgY4FPbHsiYyiLxSY8oMDJH7Rl6RQMknbN9oDDHhM9RDFvnGM2MgkbUJzSQB4gtuwygY5mCqGSsA==",
"dev": true,
"requires": {
"@babel/compat-data": "^7.15.0",
@@ -3557,7 +3567,7 @@
"@babel/helper-plugin-utils": "^7.14.5",
"@babel/helper-validator-option": "^7.14.5",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4",
- "@babel/plugin-proposal-async-generator-functions": "^7.15.4",
+ "@babel/plugin-proposal-async-generator-functions": "^7.15.8",
"@babel/plugin-proposal-class-properties": "^7.14.5",
"@babel/plugin-proposal-class-static-block": "^7.15.4",
"@babel/plugin-proposal-dynamic-import": "^7.14.5",
@@ -3612,7 +3622,7 @@
"@babel/plugin-transform-regenerator": "^7.14.5",
"@babel/plugin-transform-reserved-words": "^7.14.5",
"@babel/plugin-transform-shorthand-properties": "^7.14.5",
- "@babel/plugin-transform-spread": "^7.14.6",
+ "@babel/plugin-transform-spread": "^7.15.8",
"@babel/plugin-transform-sticky-regex": "^7.14.5",
"@babel/plugin-transform-template-literals": "^7.14.5",
"@babel/plugin-transform-typeof-symbol": "^7.14.5",
@@ -3621,24 +3631,12 @@
"@babel/preset-modules": "^0.1.4",
"@babel/types": "^7.15.6",
"babel-plugin-polyfill-corejs2": "^0.2.2",
- "babel-plugin-polyfill-corejs3": "^0.2.2",
+ "babel-plugin-polyfill-corejs3": "^0.2.5",
"babel-plugin-polyfill-regenerator": "^0.2.2",
"core-js-compat": "^3.16.0",
"semver": "^6.3.0"
},
"dependencies": {
- "@babel/helper-compilation-targets": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
- "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.15.0",
- "@babel/helper-validator-option": "^7.14.5",
- "browserslist": "^4.16.6",
- "semver": "^6.3.0"
- }
- },
"@babel/helper-plugin-utils": {
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
@@ -3646,9 +3644,9 @@
"dev": true
},
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/types": {
@@ -3751,9 +3749,9 @@
}
},
"@discoveryjs/json-ext": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz",
- "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==",
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz",
+ "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==",
"dev": true
},
"@electron/get": {
@@ -3787,9 +3785,9 @@
},
"dependencies": {
"debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dev": true,
"requires": {
"ms": "2.1.2"
@@ -3854,10 +3852,19 @@
"uri-js": "^4.2.2"
}
},
+ "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"
+ }
+ },
"globals": {
- "version": "13.10.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz",
- "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==",
+ "version": "13.11.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz",
+ "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -3869,6 +3876,22 @@
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"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"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
"strip-json-comments": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@@ -3979,29 +4002,29 @@
},
"@sindresorhus/is": {
"version": "0.14.0",
- "resolved": "https://registry.npm.taobao.org/@sindresorhus/is/download/@sindresorhus/is-0.14.0.tgz",
- "integrity": "sha1-n7OjzzEyMoFR81PeRjLgHlIQK+o=",
+ "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.npm.taobao.org/@szmarczak/http-timer/download/@szmarczak/http-timer-1.1.2.tgz",
- "integrity": "sha1-sWZeLEYaLNkvTBu/UNVFTeDUtCE=",
+ "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"
}
},
"@trysound/sax": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz",
- "integrity": "sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==",
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
"dev": true
},
"@types/component-emitter": {
- "version": "1.2.10",
- "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz",
- "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg=="
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz",
+ "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ=="
},
"@types/cookie": {
"version": "0.4.1",
@@ -4014,15 +4037,18 @@
"integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw=="
},
"@types/debug": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz",
- "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==",
- "dev": true
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
+ "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
+ "dev": true,
+ "requires": {
+ "@types/ms": "*"
+ }
},
"@types/eslint": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz",
- "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==",
+ "version": "7.28.1",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz",
+ "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==",
"dev": true,
"requires": {
"@types/estree": "*",
@@ -4046,9 +4072,9 @@
"dev": true
},
"@types/fs-extra": {
- "version": "9.0.11",
- "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.11.tgz",
- "integrity": "sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA==",
+ "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": "*"
@@ -4065,9 +4091,9 @@
}
},
"@types/html-minifier-terser": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
- "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.0.0.tgz",
+ "integrity": "sha512-NZwaaynfs1oIoLAV1vg18e7QMVDvw+6SQrdJc8w3BwUaoroVSf6EBj/Sk4PBWGxsq0dzhA2drbsuMC1/6C6KgQ==",
"dev": true
},
"@types/json-schema": {
@@ -4088,6 +4114,12 @@
"integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=",
"dev": true
},
+ "@types/ms": {
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
+ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
+ "dev": true
+ },
"@types/node": {
"version": "13.11.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.0.tgz",
@@ -4108,6 +4140,15 @@
"requires": {
"@types/node": "*",
"xmlbuilder": ">=11.0.1"
+ },
+ "dependencies": {
+ "xmlbuilder": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
+ "dev": true,
+ "optional": true
+ }
}
},
"@types/semver": {
@@ -4116,25 +4157,25 @@
"integrity": "sha512-0caWDWmpCp0uifxFh+FaqK3CuZ2SkRR/ZRxAV5+zNdC3QVUi6wyOJnefhPvtNt8NQWXB5OA93BUvZsXpWat2Xw=="
},
"@types/verror": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.4.tgz",
- "integrity": "sha512-OjJdqx6QlbyZw9LShPwRW+Kmiegeg3eWNI41MQQKaG3vjdU2L9SRElntM51HmHBY1cu7izxQJ1lMYioQh3XMBg==",
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz",
+ "integrity": "sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==",
"dev": true,
"optional": true
},
"@types/yargs": {
- "version": "16.0.3",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz",
- "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==",
+ "version": "17.0.4",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.4.tgz",
+ "integrity": "sha512-D/wihO9WFYqwsmJI0e0qS+U09wIQtYRSBJlXWjTFGjouEuOCy0BU4N/ZK5utb00S5lW/9LO7vOpvGDd8M06NvQ==",
"dev": true,
"requires": {
"@types/yargs-parser": "*"
}
},
"@types/yargs-parser": {
- "version": "20.2.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
- "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==",
+ "version": "20.2.1",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz",
+ "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==",
"dev": true
},
"@vue/component-compiler-utils": {
@@ -4367,24 +4408,24 @@
}
},
"@webpack-cli/configtest": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz",
- "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz",
+ "integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==",
"dev": true
},
"@webpack-cli/info": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz",
- "integrity": "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.0.tgz",
+ "integrity": "sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw==",
"dev": true,
"requires": {
"envinfo": "^7.7.3"
}
},
"@webpack-cli/serve": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.2.tgz",
- "integrity": "sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz",
+ "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==",
"dev": true
},
"@xtuc/ieee754": {
@@ -4415,9 +4456,9 @@
"dev": true
},
"acorn-import-assertions": {
- "version": "1.7.6",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz",
- "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
+ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
"dev": true
},
"acorn-jsx": {
@@ -4498,40 +4539,12 @@
"dev": true
},
"ansi-align": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
- "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
"dev": true,
"requires": {
- "string-width": "^3.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
- "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"
- }
- }
+ "string-width": "^4.1.0"
}
},
"ansi-colors": {
@@ -4676,15 +4689,15 @@
}
},
"app-builder-bin": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.13.tgz",
- "integrity": "sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg==",
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz",
+ "integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==",
"dev": true
},
"app-builder-lib": {
- "version": "22.11.7",
- "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.11.7.tgz",
- "integrity": "sha512-pS9/cR4/TnNZVAHZECiSvvwTBzbwblj7KBBZkMKDG57nibq0I1XY8zAaYeHFdlYTyrRcz9JUXbAqJKezya7UFQ==",
+ "version": "22.13.1",
+ "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.13.1.tgz",
+ "integrity": "sha512-TsUe7gCdH1cnSknUcqwVRAAxsFxsxcU/BJvnKR8ASzjaZtePW7MU+AEaDVDUURycgYxQ9XeymGjmuQGS32jcbw==",
"dev": true,
"requires": {
"7zip-bin": "~5.1.1",
@@ -4693,12 +4706,13 @@
"@malept/flatpak-bundler": "^0.4.0",
"async-exit-hook": "^2.0.1",
"bluebird-lst": "^1.0.9",
- "builder-util": "22.11.7",
- "builder-util-runtime": "8.7.7",
+ "builder-util": "22.13.1",
+ "builder-util-runtime": "8.8.1",
"chromium-pickle-js": "^0.2.0",
"debug": "^4.3.2",
"ejs": "^3.1.6",
- "electron-publish": "22.11.7",
+ "electron-osx-sign": "^0.5.0",
+ "electron-publish": "22.13.1",
"fs-extra": "^10.0.0",
"hosted-git-info": "^4.0.2",
"is-ci": "^3.0.0",
@@ -4712,16 +4726,10 @@
"temp-file": "^3.4.0"
},
"dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
"builder-util-runtime": {
- "version": "8.7.7",
- "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz",
- "integrity": "sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==",
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.8.1.tgz",
+ "integrity": "sha512-xHxAzdsJmMV8m/N+INzYUKfyJASeKyKHnA1uGkY8Y8JKLI/c4BG+If+L0If2YETv96CiRASkvd02tIt2pvrchQ==",
"dev": true,
"requires": {
"debug": "^4.3.2",
@@ -4748,15 +4756,6 @@
"universalify": "^2.0.0"
}
},
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -4791,21 +4790,10 @@
}
},
"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"
- },
- "dependencies": {
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
- "dev": true
- }
- }
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
},
"arr-diff": {
"version": "4.0.0",
@@ -4832,16 +4820,16 @@
"dev": true
},
"array-includes": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz",
- "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
+ "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.2",
+ "es-abstract": "^1.19.1",
"get-intrinsic": "^1.1.1",
- "is-string": "^1.0.5"
+ "is-string": "^1.0.7"
},
"dependencies": {
"get-intrinsic": {
@@ -4879,14 +4867,14 @@
"dev": true
},
"array.prototype.flat": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz",
- "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
+ "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1"
+ "es-abstract": "^1.19.0"
}
},
"asap": {
@@ -4896,9 +4884,9 @@
"dev": true
},
"asar": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/asar/-/asar-3.0.3.tgz",
- "integrity": "sha512-k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz",
+ "integrity": "sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==",
"dev": true,
"requires": {
"@types/glob": "^7.1.1",
@@ -4906,6 +4894,14 @@
"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
+ }
}
},
"asn1": {
@@ -5019,9 +5015,9 @@
"dev": true
},
"babel-loader": {
- "version": "8.2.2",
- "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.2.tgz?cache=0&sync_timestamp=1606424508891&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.2.2.tgz",
- "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=",
+ "version": "8.2.3",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz",
+ "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==",
"dev": true,
"requires": {
"find-cache-dir": "^3.3.1",
@@ -5030,68 +5026,14 @@
"schema-utils": "^2.6.5"
},
"dependencies": {
- "find-cache-dir": {
- "version": "3.3.1",
- "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz",
- "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=",
- "dev": true,
- "requires": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz",
- "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz",
- "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
"make-dir": {
"version": "3.1.0",
- "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz",
- "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
"requires": {
"semver": "^6.0.0"
}
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081605529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz",
- "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz",
- "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=",
- "dev": true
- },
- "pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz",
- "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=",
- "dev": true,
- "requires": {
- "find-up": "^4.0.0"
- }
}
}
},
@@ -5116,13 +5058,13 @@
}
},
"babel-plugin-polyfill-corejs3": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz",
- "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==",
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz",
+ "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==",
"dev": true,
"requires": {
"@babel/helper-define-polyfill-provider": "^0.2.2",
- "core-js-compat": "^3.14.0"
+ "core-js-compat": "^3.16.2"
}
},
"babel-plugin-polyfill-regenerator": {
@@ -5425,16 +5367,15 @@
}
},
"base64-arraybuffer": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz",
- "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz",
+ "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA=="
},
"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,
- "optional": true
+ "dev": true
},
"base64id": {
"version": "2.0.0",
@@ -5571,21 +5512,19 @@
"boolean": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz",
- "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==",
- "dev": true,
- "optional": true
+ "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w=="
},
"boxen": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz",
- "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
+ "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
"dev": true,
"requires": {
"ansi-align": "^3.0.0",
"camelcase": "^6.2.0",
"chalk": "^4.1.0",
"cli-boxes": "^2.2.1",
- "string-width": "^4.2.0",
+ "string-width": "^4.2.2",
"type-fest": "^0.20.2",
"widest-line": "^3.1.0",
"wrap-ansi": "^7.0.0"
@@ -5625,22 +5564,22 @@
}
},
"browserslist": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.2.tgz",
- "integrity": "sha512-jSDZyqJmkKMEMi7SZAgX5UltFdR5NAO43vY0AwTpu4X3sGH7GLLQ83KiUomgrnvZRCeW0yPPnKqnxPqQOER9zQ==",
+ "version": "4.17.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.5.tgz",
+ "integrity": "sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001261",
- "electron-to-chromium": "^1.3.854",
+ "caniuse-lite": "^1.0.30001271",
+ "electron-to-chromium": "^1.3.878",
"escalade": "^3.1.1",
- "nanocolors": "^0.2.12",
- "node-releases": "^1.1.76"
+ "node-releases": "^2.0.1",
+ "picocolors": "^1.0.0"
},
"dependencies": {
"caniuse-lite": {
- "version": "1.0.30001263",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001263.tgz",
- "integrity": "sha512-doiV5dft6yzWO1WwU19kt8Qz8R0/8DgEziz6/9n2FxUasteZNwNNYSmJO3GLBH8lCVE73AB1RPDPAeYbcO5Cvw==",
+ "version": "1.0.30001271",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001271.tgz",
+ "integrity": "sha512-BBruZFWmt3HFdVPS8kceTBIguKxu4f99n5JNp06OlPD/luoAMIaIK5ieV5YjnBLH3Nysai9sxj9rpJj4ZisXOA==",
"dev": true
}
}
@@ -5656,6 +5595,22 @@
"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",
@@ -5668,6 +5623,12 @@
"integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
"dev": true
},
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+ "dev": true
+ },
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@@ -5681,26 +5642,27 @@
"dev": true
},
"bufferutil": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.4.tgz",
- "integrity": "sha512-VNxjXUCrF3LvbLgwfkTb5LsFvk6pGIn7OBb9x+3o+iJ6mKw0JTUp4chBFc88hi1aspeZGeZG9jAIbpFYPQSLZw==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz",
+ "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==",
"requires": {
- "node-gyp-build": "^4.2.0"
+ "node-gyp-build": "^4.3.0"
}
},
"builder-util": {
- "version": "22.11.7",
- "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.11.7.tgz",
- "integrity": "sha512-ihqUe5ey82LM9qqQe0/oIcaSm9w+B9UjcsWJZxJliTBsbU+sErOpDFpHW+sim0veiTF/EIcGUh9HoduWw+l9FA==",
+ "version": "22.13.1",
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.13.1.tgz",
+ "integrity": "sha512-gMdoW9aQbWYxuQ4k4jT4An1BTo/hWzvsdv3pwNz18iNYnqn9j+xMllQOg9CHgfQYKSUd8VuMsZnbCvLO4NltYw==",
"dev": true,
"requires": {
"7zip-bin": "~5.1.1",
- "@types/debug": "^4.1.5",
+ "@types/debug": "^4.1.6",
"@types/fs-extra": "^9.0.11",
- "app-builder-bin": "3.5.13",
+ "app-builder-bin": "3.7.1",
"bluebird-lst": "^1.0.9",
- "builder-util-runtime": "8.7.7",
+ "builder-util-runtime": "8.8.1",
"chalk": "^4.1.1",
+ "cross-spawn": "^7.0.3",
"debug": "^4.3.2",
"fs-extra": "^10.0.0",
"is-ci": "^3.0.0",
@@ -5710,16 +5672,10 @@
"temp-file": "^3.4.0"
},
"dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
"builder-util-runtime": {
- "version": "8.7.7",
- "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz",
- "integrity": "sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==",
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.8.1.tgz",
+ "integrity": "sha512-xHxAzdsJmMV8m/N+INzYUKfyJASeKyKHnA1uGkY8Y8JKLI/c4BG+If+L0If2YETv96CiRASkvd02tIt2pvrchQ==",
"dev": true,
"requires": {
"debug": "^4.3.2",
@@ -5746,15 +5702,6 @@
"universalify": "^2.0.0"
}
},
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -5765,22 +5712,6 @@
"universalify": "^2.0.0"
}
},
- "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.19",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
- "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
@@ -5842,8 +5773,8 @@
},
"cacheable-request": {
"version": "6.1.0",
- "resolved": "https://registry.npm.taobao.org/cacheable-request/download/cacheable-request-6.1.0.tgz",
- "integrity": "sha1-IP+4vRYrpL4R6VZ9gj22UQUsqRI=",
+ "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",
@@ -5857,8 +5788,8 @@
"dependencies": {
"get-stream": {
"version": "5.2.0",
- "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1597056544847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz",
- "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dev": true,
"requires": {
"pump": "^3.0.0"
@@ -5866,8 +5797,14 @@
},
"lowercase-keys": {
"version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-2.0.0.tgz",
- "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true
+ },
+ "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
}
}
@@ -5884,8 +5821,8 @@
},
"callsites": {
"version": "3.1.0",
- "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz",
- "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true
},
"camel-case": {
@@ -5896,14 +5833,6 @@
"requires": {
"pascal-case": "^3.1.2",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
- "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
- "dev": true
- }
}
},
"camelcase": {
@@ -5925,9 +5854,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001240",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001240.tgz",
- "integrity": "sha512-nb8mDzfMdxBDN7ZKx8chWafAdBp5DAAlpWvNyUGe5tcDWd838zpzDN3Rah9cjCqhfOKkrvx40G2SDtP0qiWX/w==",
+ "version": "1.0.30001267",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001267.tgz",
+ "integrity": "sha512-r1mjTzAuJ9W8cPBGbbus8E0SKcUP7gn03R14Wk8FlAlqhH9hroy9nLqmpuXlfKEw/oILW+FGz47ipXV2O7x8lg==",
"dev": true
},
"caseless": {
@@ -6206,9 +6135,9 @@
}
},
"clean-css": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
- "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.2.tgz",
+ "integrity": "sha512-/eR8ru5zyxKzpBLv9YZvMXgTSSQn7AdkMItMYynsFgGwTveCRVam9IUPFloE85B4vAIj05IuKmmEoV7/AQjT0w==",
"dev": true,
"requires": {
"source-map": "~0.6.0"
@@ -6261,16 +6190,6 @@
"dev": true,
"optional": true
},
- "slice-ansi": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
- "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
- "dev": true,
- "optional": true,
- "requires": {
- "is-fullwidth-code-point": "^2.0.0"
- }
- },
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@@ -6306,18 +6225,18 @@
},
"dependencies": {
"ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "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.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "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.0"
+ "ansi-regex": "^5.0.1"
}
}
}
@@ -6373,15 +6292,15 @@
"dev": true
},
"colord": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/colord/-/colord-2.0.1.tgz",
- "integrity": "sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.8.0.tgz",
+ "integrity": "sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA==",
"dev": true
},
"colorette": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
- "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
+ "version": "2.0.16",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
+ "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==",
"dev": true
},
"colors": {
@@ -6399,9 +6318,9 @@
}
},
"commander": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
- "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
"dev": true
},
"commondir": {
@@ -6410,6 +6329,12 @@
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
"dev": true
},
+ "compare-version": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
+ "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=",
+ "dev": true
+ },
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
@@ -6800,18 +6725,18 @@
}
},
"core-js": {
- "version": "3.18.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.1.tgz",
- "integrity": "sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA==",
+ "version": "3.19.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.0.tgz",
+ "integrity": "sha512-L1TpFRWXZ76vH1yLM+z6KssLZrP8Z6GxxW4auoCj+XiViOzNPJCAuTIkn03BGdFe6Z5clX5t64wRIRypsZQrUg==",
"dev": true
},
"core-js-compat": {
- "version": "3.16.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.0.tgz",
- "integrity": "sha512-5D9sPHCdewoUK7pSUPfTF7ZhLh8k9/CoJXWUEo+F1dZT5Z1DVgcuRqUKhjeKW+YLb8f21rTFgWwQJiNw1hoZ5Q==",
+ "version": "3.18.3",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz",
+ "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.17.3",
"semver": "7.0.0"
},
"dependencies": {
@@ -6838,9 +6763,9 @@
}
},
"cosmiconfig": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
- "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
"dev": true,
"requires": {
"@types/parse-json": "^4.0.0",
@@ -6848,20 +6773,6 @@
"parse-json": "^5.0.0",
"path-type": "^4.0.0",
"yaml": "^1.10.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- }
- }
}
},
"crc": {
@@ -6912,18 +6823,18 @@
"dev": true
},
"css-declaration-sorter": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz",
- "integrity": "sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw==",
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz",
+ "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==",
"dev": true,
"requires": {
"timsort": "^0.3.0"
}
},
"css-loader": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.3.0.tgz",
- "integrity": "sha512-9NGvHOR+L6ps13Ilw/b216++Q8q+5RpJcVufCdW9S/9iCzs4KBDNa8qnA/n3FK/sSfWmH35PAIK/cfPi7LOSUg==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.0.tgz",
+ "integrity": "sha512-VmuSdQa3K+wJsl39i7X3qGBM5+ZHmtTnv65fqMGI+fzmHoYmszTVvTqC1XN8JwWDViCB1a8wgNim5SV4fb37xg==",
"dev": true,
"requires": {
"icss-utils": "^5.1.0",
@@ -6948,20 +6859,26 @@
}
},
"css-minimizer-webpack-plugin": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.2.tgz",
- "integrity": "sha512-B3I5e17RwvKPJwsxjjWcdgpU/zqylzK1bPVghcmpFHRL48DXiBgrtqz1BJsn68+t/zzaLp9kYAaEDvQ7GyanFQ==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.1.tgz",
+ "integrity": "sha512-KlB8l5uoNcf9F7i5kXnkxoqJGd2BXH4f0+Lj2vSWSmuvMLYO1kNsJ1KHSzeDW8e45/whgSOPcKVT/3JopkT8dg==",
"dev": true,
"requires": {
"cssnano": "^5.0.6",
"jest-worker": "^27.0.2",
"p-limit": "^3.0.2",
"postcss": "^8.3.5",
- "schema-utils": "^3.0.0",
+ "schema-utils": "^3.1.0",
"serialize-javascript": "^6.0.0",
"source-map": "^0.6.1"
},
"dependencies": {
+ "@types/json-schema": {
+ "version": "7.0.9",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
+ "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
+ "dev": true
+ },
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -6990,25 +6907,16 @@
}
},
"schema-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
- "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
"dev": true,
"requires": {
- "@types/json-schema": "^7.0.6",
+ "@types/json-schema": "^7.0.8",
"ajv": "^6.12.5",
"ajv-keywords": "^3.5.2"
}
},
- "serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
- "requires": {
- "randombytes": "^2.1.0"
- }
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -7049,9 +6957,9 @@
}
},
"css-what": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz",
- "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
+ "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
"dev": true
},
"cssesc": {
@@ -7061,20 +6969,21 @@
"dev": true
},
"cssnano": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.6.tgz",
- "integrity": "sha512-NiaLH/7yqGksFGsFNvSRe2IV/qmEBAeDE64dYeD8OBrgp6lE8YoMeQJMtsv5ijo6MPyhuoOvFhI94reahBRDkw==",
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.8.tgz",
+ "integrity": "sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg==",
"dev": true,
"requires": {
- "cosmiconfig": "^7.0.0",
- "cssnano-preset-default": "^5.1.3",
- "is-resolvable": "^1.1.0"
+ "cssnano-preset-default": "^5.1.4",
+ "is-resolvable": "^1.1.0",
+ "lilconfig": "^2.0.3",
+ "yaml": "^1.10.2"
}
},
"cssnano-preset-default": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz",
- "integrity": "sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz",
+ "integrity": "sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ==",
"dev": true,
"requires": {
"css-declaration-sorter": "^6.0.3",
@@ -7089,7 +6998,7 @@
"postcss-merge-longhand": "^5.0.2",
"postcss-merge-rules": "^5.0.2",
"postcss-minify-font-values": "^5.0.1",
- "postcss-minify-gradients": "^5.0.1",
+ "postcss-minify-gradients": "^5.0.2",
"postcss-minify-params": "^5.0.1",
"postcss-minify-selectors": "^5.1.0",
"postcss-normalize-charset": "^5.0.1",
@@ -7203,9 +7112,9 @@
"dev": true
},
"deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "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
},
"deepmerge": {
@@ -7225,8 +7134,8 @@
},
"defer-to-connect": {
"version": "1.1.3",
- "resolved": "https://registry.npm.taobao.org/defer-to-connect/download/defer-to-connect-1.1.3.tgz",
- "integrity": "sha1-MxrgUMCNz3ifjIOnuB8O2U9KxZE=",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
"dev": true
},
"define-properties": {
@@ -7340,30 +7249,24 @@
}
},
"dmg-builder": {
- "version": "22.11.7",
- "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.11.7.tgz",
- "integrity": "sha512-+I+XfP2DODHB6PwFANgpH/WMzzCA5r5XoMvbFCIYjQjJpXlO0XnqQaamzFl2vh/Wz/Qt0d0lJMgRy8gKR3MGdQ==",
+ "version": "22.13.1",
+ "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.13.1.tgz",
+ "integrity": "sha512-qgfLN2fo4q2wIWNvbcKlZ71DLRDLvWIElOB7oxlSxUrMi6xhI+9v1Mh7E0FJ+r5UXhQzaQXaGuyMsQRbGgrSwg==",
"dev": true,
"requires": {
- "app-builder-lib": "22.11.7",
- "builder-util": "22.11.7",
- "builder-util-runtime": "8.7.6",
+ "app-builder-lib": "22.13.1",
+ "builder-util": "22.13.1",
+ "builder-util-runtime": "8.8.1",
"dmg-license": "^1.0.9",
"fs-extra": "^10.0.0",
"iconv-lite": "^0.6.2",
"js-yaml": "^4.1.0"
},
"dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
"builder-util-runtime": {
- "version": "8.7.6",
- "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz",
- "integrity": "sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug==",
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.8.1.tgz",
+ "integrity": "sha512-xHxAzdsJmMV8m/N+INzYUKfyJASeKyKHnA1uGkY8Y8JKLI/c4BG+If+L0If2YETv96CiRASkvd02tIt2pvrchQ==",
"dev": true,
"requires": {
"debug": "^4.3.2",
@@ -7390,15 +7293,6 @@
"universalify": "^2.0.0"
}
},
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -7511,9 +7405,9 @@
}
},
"domutils": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz",
- "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
"dev": true,
"requires": {
"dom-serializer": "^1.0.1",
@@ -7529,14 +7423,6 @@
"requires": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
- "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
- "dev": true
- }
}
},
"dot-prop": {
@@ -7590,36 +7476,36 @@
}
},
"electron": {
- "version": "13.4.0",
- "resolved": "https://registry.npmjs.org/electron/-/electron-13.4.0.tgz",
- "integrity": "sha512-KJGWS2qa0xZXIMPMDUNkRVO8/JxRd4+M0ejYYOzu2LIQ5ijecPzNuNR9nvDkml9XyyRBzu975FkhJcwD17ietQ==",
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-15.3.0.tgz",
+ "integrity": "sha512-YLzaKCFmSniNlz9+NUTNs7ssPyDc+bYOCYZ0b/D6DjVkOeIFz4SR8EYKqlOc8TcqlDNu18BbWqz6zbJPyAAURg==",
"dev": true,
"requires": {
- "@electron/get": "^1.0.1",
+ "@electron/get": "^1.13.0",
"@types/node": "^14.6.2",
"extract-zip": "^1.0.3"
},
"dependencies": {
"@types/node": {
- "version": "14.17.20",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.20.tgz",
- "integrity": "sha512-gI5Sl30tmhXsqkNvopFydP7ASc4c2cLfGNQrVKN3X90ADFWFsPEsotm/8JHSUJQKTHbwowAHtcJPeyVhtKv0TQ==",
+ "version": "14.17.32",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.32.tgz",
+ "integrity": "sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==",
"dev": true
}
}
},
"electron-builder": {
- "version": "22.11.7",
- "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.11.7.tgz",
- "integrity": "sha512-yQExSLt7Hbz/P8lLkZDdE/OnJJ7NCX+uiQcV+XIH0TeEZcD87ZnSqBBzGUN5akySU4BXXlrVZKeUsXACWrm5Kw==",
+ "version": "22.13.1",
+ "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.13.1.tgz",
+ "integrity": "sha512-ajlI40L60qKBBxvpf770kcjxHAccMpEWpwsHAppytl3WmWgJfMut4Wz9VUFqyNtX/9a624QTatk6TqoxqewRug==",
"dev": true,
"requires": {
- "@types/yargs": "^16.0.2",
- "app-builder-lib": "22.11.7",
- "builder-util": "22.11.7",
- "builder-util-runtime": "8.7.7",
+ "@types/yargs": "^17.0.1",
+ "app-builder-lib": "22.13.1",
+ "builder-util": "22.13.1",
+ "builder-util-runtime": "8.8.1",
"chalk": "^4.1.1",
- "dmg-builder": "22.11.7",
+ "dmg-builder": "22.13.1",
"fs-extra": "^10.0.0",
"is-ci": "^3.0.0",
"lazy-val": "^1.0.5",
@@ -7629,9 +7515,9 @@
},
"dependencies": {
"builder-util-runtime": {
- "version": "8.7.7",
- "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz",
- "integrity": "sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==",
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.8.1.tgz",
+ "integrity": "sha512-xHxAzdsJmMV8m/N+INzYUKfyJASeKyKHnA1uGkY8Y8JKLI/c4BG+If+L0If2YETv96CiRASkvd02tIt2pvrchQ==",
"dev": true,
"requires": {
"debug": "^4.3.2",
@@ -7750,15 +7636,55 @@
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.1.tgz",
"integrity": "sha512-nK/DwxPLtwWbggPCm27eMQhYHc3gzoZ+cokBK99diO4WsZJKrv5l44EUW8mRfWpmC8ZubnMyp6GTUIJyTc9AJA=="
},
+ "electron-osx-sign": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz",
+ "integrity": "sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==",
+ "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
"electron-publish": {
- "version": "22.11.7",
- "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.11.7.tgz",
- "integrity": "sha512-A4EhRRNBVz4SPzUlBrPO6BmuyDeI0pyprggPAV9rQ+SDVSnSB/WKPot9JwWMyArkGj3AUUTMNVT6hwZhMvhfqw==",
+ "version": "22.13.1",
+ "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.13.1.tgz",
+ "integrity": "sha512-5nCXhnsqrRxP5NsZxUKjiMkcFmQglXp7i/YY4rp3h1s1psg3utOIkM29Z93YTSXicZJU1J+8811eo5HX1vpoKg==",
"dev": true,
"requires": {
"@types/fs-extra": "^9.0.11",
- "builder-util": "22.11.7",
- "builder-util-runtime": "8.7.7",
+ "builder-util": "22.13.1",
+ "builder-util-runtime": "8.8.1",
"chalk": "^4.1.1",
"fs-extra": "^10.0.0",
"lazy-val": "^1.0.5",
@@ -7766,9 +7692,9 @@
},
"dependencies": {
"builder-util-runtime": {
- "version": "8.7.7",
- "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz",
- "integrity": "sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==",
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.8.1.tgz",
+ "integrity": "sha512-xHxAzdsJmMV8m/N+INzYUKfyJASeKyKHnA1uGkY8Y8JKLI/c4BG+If+L0If2YETv96CiRASkvd02tIt2pvrchQ==",
"dev": true,
"requires": {
"debug": "^4.3.2",
@@ -7835,9 +7761,9 @@
}
},
"electron-to-chromium": {
- "version": "1.3.856",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.856.tgz",
- "integrity": "sha512-lSezYIe1/p5qkEswAfaQUseOBiwGwuCvRl/MKzOEVe++DcmQ92+43dznDl4rFJ4Zpu+kevhwyIf7KjJevyDA/A==",
+ "version": "1.3.884",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.884.tgz",
+ "integrity": "sha512-kOaCAa+biA98PwH5BpCkeUeTL6mCeg8p3Q3OhqzPyqhu/5QUnWAN2wr/3IK8xMQxIV76kfoQpP+Bn/wij/jXrg==",
"dev": true
},
"electron-updater": {
@@ -7929,17 +7855,20 @@
}
},
"engine.io": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-5.2.0.tgz",
- "integrity": "sha512-d1DexkQx87IFr1FLuV+0f5kAm1Hk1uOVijLOb+D1sDO2QMb7YjE02VHtZtxo7xIXMgcWLb+vl3HRT0rI9tr4jQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.0.0.tgz",
+ "integrity": "sha512-Ui7yl3JajEIaACg8MOUwWvuuwU7jepZqX3BKs1ho7NQRuP4LhN4XIykXhp8bEy+x/DhA0LBZZXYSCkZDqrwMMg==",
"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": "~4.0.0",
- "ws": "~7.4.2"
+ "engine.io-parser": "~5.0.0",
+ "ws": "~8.2.3"
},
"dependencies": {
"cookie": {
@@ -7956,18 +7885,18 @@
}
},
"ws": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A=="
+ "version": "8.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
+ "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA=="
}
}
},
"engine.io-parser": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz",
- "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.1.tgz",
+ "integrity": "sha512-j4p3WwJrG2k92VISM0op7wiq60vO92MlF3CRGxhKHy9ywG1/Dkc72g0dXeDQ+//hrcDn8gqQzoEkdO9FN0d9AA==",
"requires": {
- "base64-arraybuffer": "0.1.4"
+ "base64-arraybuffer": "~1.0.1"
}
},
"enhanced-resolve": {
@@ -8042,22 +7971,25 @@
}
},
"es-abstract": {
- "version": "1.18.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz",
- "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==",
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
+ "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
"get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
"has": "^1.0.3",
"has-symbols": "^1.0.2",
"internal-slot": "^1.0.3",
- "is-callable": "^1.2.3",
+ "is-callable": "^1.2.4",
"is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.3",
- "is-string": "^1.0.6",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.1",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.1",
"object-inspect": "^1.11.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.2",
@@ -8096,9 +8028,9 @@
}
},
"es-module-lexer": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.2.tgz",
- "integrity": "sha512-YkAGWqxZq2B4FxQ5y687UwywDwvLQhIMCZ+SDU7ZW729SDHOEI6wVFXwTRecz+yiwJzCsVwC6V7bxyNbZSB1rg==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
"dev": true
},
"es-to-primitive": {
@@ -8200,9 +8132,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz",
- "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==",
+ "version": "7.15.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
@@ -8236,11 +8168,20 @@
}
},
"ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
},
+ "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"
+ }
+ },
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -8260,9 +8201,9 @@
"dev": true
},
"globals": {
- "version": "13.10.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz",
- "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==",
+ "version": "13.11.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz",
+ "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -8274,6 +8215,16 @@
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"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"
+ }
+ },
"semver": {
"version": "7.3.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
@@ -8283,13 +8234,19 @@
"lru-cache": "^6.0.0"
}
},
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
"strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "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.0"
+ "ansi-regex": "^5.0.1"
}
},
"strip-json-comments": {
@@ -8393,93 +8350,14 @@
}
}
},
- "eslint-loader": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz",
- "integrity": "sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw==",
- "dev": true,
- "requires": {
- "find-cache-dir": "^3.3.1",
- "fs-extra": "^8.1.0",
- "loader-utils": "^2.0.0",
- "object-hash": "^2.0.3",
- "schema-utils": "^2.6.5"
- },
- "dependencies": {
- "find-cache-dir": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
- "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
- "dev": true,
- "requires": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "loader-utils": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
- "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
- "dev": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
- "pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "requires": {
- "find-up": "^4.0.0"
- }
- }
- }
- },
"eslint-module-utils": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz",
- "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz",
+ "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==",
"dev": true,
"requires": {
"debug": "^3.2.7",
+ "find-up": "^2.1.0",
"pkg-dir": "^2.0.0"
},
"dependencies": {
@@ -8491,6 +8369,49 @@
"requires": {
"ms": "^2.1.1"
}
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
}
}
},
@@ -8571,24 +8492,22 @@
}
},
"eslint-plugin-import": {
- "version": "2.24.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz",
- "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==",
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz",
+ "integrity": "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==",
"dev": true,
"requires": {
- "array-includes": "^3.1.3",
- "array.prototype.flat": "^1.2.4",
+ "array-includes": "^3.1.4",
+ "array.prototype.flat": "^1.2.5",
"debug": "^2.6.9",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.6.2",
- "find-up": "^2.0.0",
+ "eslint-module-utils": "^2.7.0",
"has": "^1.0.3",
- "is-core-module": "^2.6.0",
+ "is-core-module": "^2.7.0",
+ "is-glob": "^4.0.3",
"minimatch": "^3.0.4",
- "object.values": "^1.1.4",
- "pkg-up": "^2.0.0",
- "read-pkg-up": "^3.0.0",
+ "object.values": "^1.1.5",
"resolve": "^1.20.0",
"tsconfig-paths": "^3.11.0"
},
@@ -8611,23 +8530,13 @@
"esutils": "^2.0.2"
}
},
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"requires": {
- "locate-path": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dev": true,
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
+ "is-extglob": "^2.1.1"
}
},
"ms": {
@@ -8636,39 +8545,6 @@
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dev": true,
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true
- },
- "pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
- "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
- "dev": true,
- "requires": {
- "find-up": "^2.1.0"
- }
- },
"resolve": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
@@ -8713,9 +8589,9 @@
}
},
"eslint-plugin-promise": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz",
- "integrity": "sha512-NGmI6BH5L12pl7ScQHbg7tvtk4wPxxj8yPHH47NvSmMtFneC077PSeY3huFj06ZWZvtbfxSPt3RuOQD5XcR4ng==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz",
+ "integrity": "sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA==",
"dev": true
},
"eslint-plugin-standard": {
@@ -8732,6 +8608,14 @@
"requires": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ }
}
},
"eslint-utils": {
@@ -8749,6 +8633,110 @@
"integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
"dev": true
},
+ "eslint-webpack-plugin": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.0.tgz",
+ "integrity": "sha512-1UTDzwN5br3z3E2bzhuNtjbSsW2EJiIEGdxH8uWRbOsTEEY0zw8QYGHLeQQrClMWO0gD9QuB5uDh6uQ8tbbv5A==",
+ "dev": true,
+ "requires": {
+ "@types/eslint": "^7.28.2",
+ "jest-worker": "^27.3.1",
+ "micromatch": "^4.0.4",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^3.1.1"
+ },
+ "dependencies": {
+ "@types/eslint": {
+ "version": "7.28.2",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.2.tgz",
+ "integrity": "sha512-KubbADPkfoU75KgKeKLsFHXnU4ipH7wYg0TRT33NK3N3yiu7jlFAAoygIWBV+KbuHx/G+AvuGX6DllnK35gfJA==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "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
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "jest-worker": {
+ "version": "27.3.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz",
+ "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "picomatch": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
+ "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "dependencies": {
+ "@types/json-schema": {
+ "version": "7.0.9",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
+ "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
+ "dev": true
+ }
+ }
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"espree": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
@@ -8781,14 +8769,6 @@
"dev": true,
"requires": {
"estraverse": "^5.1.0"
- },
- "dependencies": {
- "estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "dev": true
- }
}
},
"esrecurse": {
@@ -8798,20 +8778,12 @@
"dev": true,
"requires": {
"estraverse": "^5.2.0"
- },
- "dependencies": {
- "estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "dev": true
- }
}
},
"estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
"dev": true
},
"esutils": {
@@ -9216,9 +9188,9 @@
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"fast-json-stringify": {
- "version": "2.7.10",
- "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.10.tgz",
- "integrity": "sha512-MPuVXMMueV8e3TRVLOpxxicJnSdu5mwbHrsO9IZU15zqfay6k19OqIv7N2DCeNPDOCNOmZwjvMUTwvblZsUmFw==",
+ "version": "2.7.11",
+ "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.11.tgz",
+ "integrity": "sha512-J6rw31EvrT/PTZ4xi5Sf/NjYt5jF8tAPVzIi82qmfD4niAwBbHvUB99H6ipHWEaNQKXXpoyG7THBVsbVPo9prw==",
"requires": {
"ajv": "^6.11.0",
"deepmerge": "^4.2.2",
@@ -9238,13 +9210,6 @@
"integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==",
"requires": {
"boolean": "^3.1.4"
- },
- "dependencies": {
- "boolean": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz",
- "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w=="
- }
}
},
"fastest-levenshtein": {
@@ -9398,6 +9363,62 @@
}
}
},
+ "find-cache-dir": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ }
+ }
+ },
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
@@ -9429,8 +9450,8 @@
"dev": true
},
"font-list": {
- "version": "git+https://github.com/lyswhut/node-font-list.git#c6caf4060e471afe143a4aca30d554644522966d",
- "from": "git+https://github.com/lyswhut/node-font-list.git#c6caf4060e471afe143a4aca30d554644522966d"
+ "version": "git+https://github.com/lyswhut/node-font-list.git#2ed3b4ee42e8a43373e8a30d87760c840725843e",
+ "from": "git+https://github.com/lyswhut/node-font-list.git#2ed3b4ee42e8a43373e8a30d87760c840725843e"
},
"for-in": {
"version": "1.0.2",
@@ -9610,6 +9631,29 @@
"pump": "^3.0.0"
}
},
+ "get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "dependencies": {
+ "get-intrinsic": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ }
+ }
+ }
+ },
"get-value": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
@@ -9755,8 +9799,8 @@
},
"got": {
"version": "9.6.0",
- "resolved": "https://registry.npm.taobao.org/got/download/got-9.6.0.tgz?cache=0&sync_timestamp=1599745016637&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-9.6.0.tgz",
- "integrity": "sha1-7fRefWf5lUVwXeH3u+7rEhdl7YU=",
+ "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",
@@ -9904,12 +9948,6 @@
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true
},
- "hex-color-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
- "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
- "dev": true
- },
"hosted-git-info": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz",
@@ -9931,18 +9969,6 @@
"wbuf": "^1.1.0"
}
},
- "hsl-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
- "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
- "dev": true
- },
- "hsla-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
- "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
- "dev": true
- },
"html-entities": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz",
@@ -9950,38 +9976,38 @@
"dev": true
},
"html-minifier-terser": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
- "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.0.2.tgz",
+ "integrity": "sha512-AgYO3UGhMYQx2S/FBJT3EM0ZYcKmH6m9XL9c1v77BeK/tYJxGPxT1/AtsdUi4FcP8kZGmqqnItCcjFPcX9hk6A==",
"dev": true,
"requires": {
- "camel-case": "^4.1.1",
- "clean-css": "^4.2.3",
- "commander": "^4.1.1",
+ "camel-case": "^4.1.2",
+ "clean-css": "^5.1.5",
+ "commander": "^8.1.0",
"he": "^1.2.0",
- "param-case": "^3.0.3",
+ "param-case": "^3.0.4",
"relateurl": "^0.2.7",
- "terser": "^4.6.3"
+ "terser": "^5.7.2"
},
"dependencies": {
"commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
"dev": true
}
}
},
"html-webpack-plugin": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz",
- "integrity": "sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ==",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz",
+ "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==",
"dev": true,
"requires": {
- "@types/html-minifier-terser": "^5.0.0",
- "html-minifier-terser": "^5.0.1",
+ "@types/html-minifier-terser": "^6.0.0",
+ "html-minifier-terser": "^6.0.2",
"lodash": "^4.17.21",
- "pretty-error": "^3.0.4",
+ "pretty-error": "^4.0.0",
"tapable": "^2.0.0"
}
},
@@ -10032,8 +10058,8 @@
},
"http-cache-semantics": {
"version": "4.1.0",
- "resolved": "https://registry.npm.taobao.org/http-cache-semantics/download/http-cache-semantics-4.1.0.tgz",
- "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
"dev": true
},
"http-deceiver": {
@@ -10206,24 +10232,13 @@
"type-fest": "^2.3.3"
},
"dependencies": {
- "boolean": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz",
- "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w=="
- },
- "detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
- },
"roarr": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/roarr/-/roarr-7.0.4.tgz",
- "integrity": "sha512-o03Iq3Ne/Y8cVJ1+95ohOSST73j8PZmyjjxSp+XDdhIvpuG5shFB4zWOUPQUqfTI3GOm5Tc7ngJSxLaIqcOOKA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/roarr/-/roarr-7.1.0.tgz",
+ "integrity": "sha512-lOoTAyhVp8pYHBm4KMEbY0EJMX7ZiONY5/IcjJxoEKk06GCkrahnfWnHUZxD70fi4PdCded0LsmfRYtxsdy/AA==",
"requires": {
"boolean": "^3.1.4",
- "detect-node": "^2.1.0",
- "fast-json-stringify": "^2.7.9",
+ "fast-json-stringify": "^2.7.10",
"fast-printf": "^1.6.9",
"globalthis": "^1.0.2",
"is-circular": "^1.0.2",
@@ -10232,9 +10247,9 @@
}
},
"type-fest": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.3.4.tgz",
- "integrity": "sha512-2UdQc7cx8F4Ky81Xj7NYQKPhZVtDFbtorrkairIW66rW7xQj5msAhioXa04HqEdP4MD4K2G6QAF7Zyiw/Hju1Q=="
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.5.1.tgz",
+ "integrity": "sha512-JDcsxbLR6Z6OcL7TnGAAAGQrY4g7Q4EEALMT4Kp6FQuIc0JLQvOF3l7ejFvx8o5GmLlfMseTWUL++sYFP+o8kw=="
}
}
},
@@ -10297,9 +10312,9 @@
"dev": true
},
"import-fresh": {
- "version": "3.2.2",
- "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.2.tgz?cache=0&sync_timestamp=1604255662987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.2.tgz",
- "integrity": "sha1-/BKcFgxdaCNVB/QzGmuq0Ya9vD4=",
+ "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",
@@ -10515,32 +10530,10 @@
"resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz",
"integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA=="
},
- "is-color-stop": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
- "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
- "dev": true,
- "requires": {
- "css-color-names": "^0.0.4",
- "hex-color-regex": "^1.1.0",
- "hsl-regex": "^1.0.0",
- "hsla-regex": "^1.0.0",
- "rgb-regex": "^1.0.1",
- "rgba-regex": "^1.0.0"
- },
- "dependencies": {
- "css-color-names": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
- "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
- "dev": true
- }
- }
- },
"is-core-module": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz",
- "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
+ "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
"dev": true,
"requires": {
"has": "^1.0.3"
@@ -10738,6 +10731,12 @@
"integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
"dev": true
},
+ "is-shared-array-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
+ "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
+ "dev": true
+ },
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@@ -10775,6 +10774,15 @@
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
+ "is-weakref": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz",
+ "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0"
+ }
+ },
"is-what": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz",
@@ -10860,9 +10868,9 @@
}
},
"jest-worker": {
- "version": "27.0.2",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz",
- "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==",
+ "version": "27.2.5",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz",
+ "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -10900,13 +10908,12 @@
"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==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
+ "argparse": "^2.0.1"
}
},
"jsbn": {
@@ -11043,8 +11050,8 @@
},
"keyv": {
"version": "3.1.0",
- "resolved": "https://registry.npm.taobao.org/keyv/download/keyv-3.1.0.tgz?cache=0&sync_timestamp=1600337463601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-3.1.0.tgz",
- "integrity": "sha1-7MIoSG9pmR5J6UdkhaW+Ho/FxNk=",
+ "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"
@@ -11069,9 +11076,9 @@
"dev": true
},
"koa": {
- "version": "2.13.3",
- "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.3.tgz",
- "integrity": "sha512-XhXIoR+ylAwqG3HhXwnMPQAM/4xfywz52OvxZNmxmTWGGHsvmBv4NSIhURha6yMuvEex1WdtplUTHnxnKpQiGw==",
+ "version": "2.13.4",
+ "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz",
+ "integrity": "sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g==",
"requires": {
"accepts": "^1.3.5",
"cache-content-type": "^1.0.0",
@@ -11142,9 +11149,9 @@
"integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q=="
},
"less": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/less/-/less-4.1.1.tgz",
- "integrity": "sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz",
+ "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==",
"dev": true,
"requires": {
"copy-anything": "^2.0.1",
@@ -11156,7 +11163,7 @@
"needle": "^2.5.2",
"parse-node-version": "^1.0.1",
"source-map": "~0.6.0",
- "tslib": "^1.10.0"
+ "tslib": "^2.3.0"
},
"dependencies": {
"debug": {
@@ -11198,9 +11205,9 @@
}
},
"needle": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.0.tgz",
- "integrity": "sha512-UBLC4P8w9to3rAhWOQYXIXzTUio9yVnDzIeKxfGbF+Hngy+2bXTqqFK+6nF42EAQKfJdezXK6vzMsefUa1Y3ag==",
+ "version": "2.9.1",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz",
+ "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==",
"dev": true,
"optional": true,
"requires": {
@@ -11233,9 +11240,9 @@
}
},
"less-loader": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.0.1.tgz",
- "integrity": "sha512-Crln//HpW9M5CbtdfWm3IO66Cvx1WhZQvNybXgfB2dD/6Sav9ppw+IWqs/FQKPBFO4B6X0X28Z0WNznshgwUzA==",
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz",
+ "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==",
"dev": true,
"requires": {
"klona": "^2.0.4"
@@ -11299,6 +11306,12 @@
"immediate": "~3.0.5"
}
},
+ "lilconfig": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz",
+ "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==",
+ "dev": true
+ },
"line-reader": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/line-reader/-/line-reader-0.2.4.tgz",
@@ -11320,18 +11333,6 @@
"uc.micro": "^1.0.1"
}
},
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- }
- },
"loader-runner": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
@@ -11428,9 +11429,9 @@
"dev": true
},
"long": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
- "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/long/-/long-5.0.1.tgz",
+ "integrity": "sha512-JJw5qjAek98/w3mJjWG+pOd5FZOOlK+KgH7I4bHvlAalwqtfg4h0Ias+lkllzD6Zq+8q5o1YViv2Eze3FVaW9A=="
},
"lower-case": {
"version": "2.0.2",
@@ -11439,27 +11440,14 @@
"dev": true,
"requires": {
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
- "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
- "dev": true
- }
}
},
"lowercase-keys": {
"version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz",
- "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
"dev": true
},
- "lrc-file-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/lrc-file-parser/-/lrc-file-parser-1.2.1.tgz",
- "integrity": "sha512-GfqR3vxNAOt9nhAXA9ABGXypxf7NtoknF4cDRWUHMCz8OmyCb4ur4BURM5OyKi8IOkKwnQqpUnRp1TJG2y4dFA=="
- },
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz?cache=0&sync_timestamp=1594427567713&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz",
@@ -11642,14 +11630,14 @@
},
"mimic-response": {
"version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/mimic-response/download/mimic-response-1.0.1.tgz",
- "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"dev": true
},
"mini-css-extract-plugin": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.3.0.tgz",
- "integrity": "sha512-uzWaOwC+gJrnKbr23J1ZRWx/Wd9W9Ce1mKPlsBGBV/r8zG7/G7oKMxGmxbI65pVGbae2cR7CUx9Ulk0HQt8BfQ==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.3.tgz",
+ "integrity": "sha512-zekavl9mZuGyk7COjsfFY/f655AX61EKE0AthXPrmDk+oZyjZ9WzO4WPjXnnO9xl8obK2kmM6rAQrBEmk+WK1g==",
"dev": true,
"requires": {
"schema-utils": "^3.1.0"
@@ -11772,15 +11760,15 @@
"optional": true
},
"nanocolors": {
- "version": "0.2.12",
- "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz",
- "integrity": "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==",
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz",
+ "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==",
"dev": true
},
"nanoid": {
- "version": "3.1.28",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz",
- "integrity": "sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw==",
+ "version": "3.1.30",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
+ "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==",
"dev": true
},
"nanomatch": {
@@ -11873,14 +11861,6 @@
"requires": {
"lower-case": "^2.0.2",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
- "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
- "dev": true
- }
}
},
"node-addon-api": {
@@ -11942,37 +11922,11 @@
}
},
"node-releases": {
- "version": "1.1.76",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz",
- "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
+ "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==",
"dev": true
},
- "normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dev": true,
- "requires": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- },
- "dependencies": {
- "hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
@@ -11980,9 +11934,9 @@
"dev": true
},
"normalize-url": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
- "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
+ "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": {
@@ -12014,9 +11968,9 @@
}
},
"nth-check": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz",
- "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz",
+ "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==",
"dev": true,
"requires": {
"boolbase": "^1.0.0"
@@ -12100,12 +12054,6 @@
}
}
},
- "object-hash": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz",
- "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==",
- "dev": true
- },
"object-inspect": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
@@ -12158,14 +12106,14 @@
}
},
"object.values": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz",
- "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
+ "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.2"
+ "es-abstract": "^1.19.1"
}
},
"obuf": {
@@ -12245,8 +12193,8 @@
},
"p-cancelable": {
"version": "1.1.0",
- "resolved": "https://registry.npm.taobao.org/p-cancelable/download/p-cancelable-1.1.0.tgz",
- "integrity": "sha1-0HjRWjr0CSIMiG8dmgyi5EGrJsw=",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
"dev": true
},
"p-finally": {
@@ -12335,33 +12283,27 @@
"requires": {
"dot-case": "^3.0.4",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
- "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
- "dev": true
- }
}
},
"parent-module": {
"version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz",
- "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=",
+ "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"
}
},
"parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"requires": {
+ "@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
}
},
"parse-node-version": {
@@ -12383,14 +12325,6 @@
"requires": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
- "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
- "dev": true
- }
}
},
"pascalcase": {
@@ -12457,6 +12391,12 @@
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
"picomatch": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
@@ -12467,7 +12407,8 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"pinkie": {
"version": "2.0.4",
@@ -12547,24 +12488,13 @@
}
},
"plist": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz",
- "integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz",
+ "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==",
"dev": true,
- "optional": true,
"requires": {
"base64-js": "^1.5.1",
- "xmlbuilder": "^9.0.7",
- "xmldom": "^0.5.0"
- },
- "dependencies": {
- "xmlbuilder": {
- "version": "9.0.7",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
- "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
- "dev": true,
- "optional": true
- }
+ "xmlbuilder": "^9.0.7"
}
},
"portfinder": {
@@ -12596,22 +12526,14 @@
"dev": true
},
"postcss": {
- "version": "8.3.8",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.8.tgz",
- "integrity": "sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA==",
+ "version": "8.3.11",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz",
+ "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==",
"dev": true,
"requires": {
- "nanocolors": "^0.2.2",
- "nanoid": "^3.1.25",
+ "nanoid": "^3.1.30",
+ "picocolors": "^1.0.0",
"source-map-js": "^0.6.2"
- },
- "dependencies": {
- "nanocolors": {
- "version": "0.2.12",
- "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz",
- "integrity": "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==",
- "dev": true
- }
}
},
"postcss-calc": {
@@ -12670,9 +12592,9 @@
"dev": true
},
"postcss-loader": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.1.1.tgz",
- "integrity": "sha512-lBmJMvRh1D40dqpWKr9Rpygwxn8M74U9uaCSeYGNKLGInbk9mXBt1ultHf2dH9Ghk6Ue4UXlXWwGMH9QdUJ5ug==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.0.tgz",
+ "integrity": "sha512-H9hv447QjQJVDbHj3OUdciyAXY3v5+UDduzEytAlZCVHCpNAAg/mCSwhYYqZr9BiGYhmYspU8QXxZwiHTLn3yA==",
"dev": true,
"requires": {
"cosmiconfig": "^7.0.0",
@@ -12737,13 +12659,13 @@
}
},
"postcss-minify-gradients": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz",
- "integrity": "sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz",
+ "integrity": "sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ==",
"dev": true,
"requires": {
+ "colord": "^2.6",
"cssnano-utils": "^2.0.1",
- "is-color-stop": "^1.1.0",
"postcss-value-parser": "^4.1.0"
}
},
@@ -12902,14 +12824,6 @@
"is-absolute-url": "^3.0.3",
"normalize-url": "^6.0.1",
"postcss-value-parser": "^4.1.0"
- },
- "dependencies": {
- "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
- }
}
},
"postcss-normalize-whitespace": {
@@ -13027,13 +12941,13 @@
"optional": true
},
"pretty-error": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-3.0.4.tgz",
- "integrity": "sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
+ "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
"dev": true,
"requires": {
"lodash": "^4.17.20",
- "renderkid": "^2.0.6"
+ "renderkid": "^3.0.0"
}
},
"process-nextick-args": {
@@ -13429,21 +13343,6 @@
"lazy-val": "^1.0.4"
},
"dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
"json5": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
@@ -13455,83 +13354,6 @@
}
}
},
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
- "dev": true,
- "requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- },
- "dependencies": {
- "path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dev": true,
- "requires": {
- "pify": "^3.0.0"
- }
- }
- }
- },
- "read-pkg-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
- "dev": true,
- "requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dev": true,
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dev": true,
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true
- }
- }
- },
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
@@ -13800,16 +13622,33 @@
"dev": true
},
"renderkid": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz",
- "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz",
+ "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
"dev": true,
"requires": {
"css-select": "^4.1.3",
"dom-converter": "^0.2.0",
"htmlparser2": "^6.1.0",
"lodash": "^4.17.21",
- "strip-ansi": "^3.0.1"
+ "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"
+ }
+ }
}
},
"repeat-element": {
@@ -13902,8 +13741,8 @@
},
"resolve-from": {
"version": "4.0.0",
- "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz",
- "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
"resolve-url": {
@@ -13954,18 +13793,6 @@
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
},
- "rgb-regex": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
- "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
- "dev": true
- },
- "rgba-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
- "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
- "dev": true
- },
"rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -14030,13 +13857,34 @@
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"schema-utils": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
- "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
+ "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
"dev": true,
"requires": {
- "ajv": "^6.12.0",
- "ajv-keywords": "^3.4.1"
+ "@types/json-schema": "^7.0.5",
+ "ajv": "^6.12.4",
+ "ajv-keywords": "^3.5.2"
+ },
+ "dependencies": {
+ "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
+ }
}
},
"select-hose": {
@@ -14298,52 +14146,19 @@
"dev": true
},
"slice-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
- "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
"dev": true,
+ "optional": true,
"requires": {
- "ansi-styles": "^4.0.0",
- "astral-regex": "^2.0.0",
- "is-fullwidth-code-point": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- }
+ "is-fullwidth-code-point": "^2.0.0"
}
},
"smart-buffer": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz",
- "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true,
"optional": true
},
@@ -14487,17 +14302,14 @@
}
},
"socket.io": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.2.0.tgz",
- "integrity": "sha512-sjlGfMmnaWvTRVxGRGWyhd9ctpg4APxWAxu85O/SxekkxHhfxmePWZbaYCkeX5QQX0z1YEnKOlNt6w82E4Nzug==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.3.1.tgz",
+ "integrity": "sha512-HC5w5Olv2XZ0XJ4gOLGzzHEuOCfj3G0SmoW3jLHYYh34EVsIr3EkW9h6kgfW+K3TFEcmYy8JcPWe//KUkBp5jA==",
"requires": {
- "@types/cookie": "^0.4.1",
- "@types/cors": "^2.8.12",
- "@types/node": ">=10.0.0",
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"debug": "~4.3.2",
- "engine.io": "~5.2.0",
+ "engine.io": "~6.0.0",
"socket.io-adapter": "~2.3.2",
"socket.io-parser": "~4.0.4"
},
@@ -14622,38 +14434,6 @@
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
"dev": true
},
- "spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
- "dev": true,
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz",
- "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==",
- "dev": true
- },
"spdy": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
@@ -14772,9 +14552,9 @@
"dev": true
},
"stackframe": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.1.1.tgz",
- "integrity": "sha512-0PlYhdKh6AfFxRyK/v+6/k+/mMfyiEBbTM5L94D0ZytQnJ166wuwoTYLHFWGbs2dpA8Rgq763KGWmN1EQEYHRQ==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz",
+ "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==",
"dev": true
},
"stat-mode": {
@@ -14872,20 +14652,20 @@
"integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ=="
},
"string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "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.0"
+ "strip-ansi": "^6.0.1"
},
"dependencies": {
"ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
},
"emoji-regex": {
@@ -14901,12 +14681,12 @@
"dev": true
},
"strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "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.0"
+ "ansi-regex": "^5.0.1"
}
}
}
@@ -15022,46 +14802,38 @@
}
},
"svgo": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.3.1.tgz",
- "integrity": "sha512-riDDIQgXpEnn0BEl9Gvhh1LNLIyiusSpt64IR8upJu7MwxnzetmF/Y57pXQD2NMX2lVyMRzXt5f2M5rO4wG7Dw==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz",
+ "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==",
"dev": true,
"requires": {
- "@trysound/sax": "0.1.1",
- "chalk": "^4.1.0",
- "commander": "^7.1.0",
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
"css-select": "^4.1.3",
- "css-tree": "^1.1.2",
+ "css-tree": "^1.1.3",
"csso": "^4.2.0",
+ "nanocolors": "^0.1.12",
"stable": "^0.1.8"
- },
- "dependencies": {
- "commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "dev": true
- }
}
},
"table": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz",
- "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==",
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz",
+ "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==",
"dev": true,
"requires": {
"ajv": "^8.0.1",
"lodash.clonedeep": "^4.5.0",
"lodash.truncate": "^4.4.2",
"slice-ansi": "^4.0.0",
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0"
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
},
"dependencies": {
"ajv": {
- "version": "8.6.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz",
- "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==",
+ "version": "8.6.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz",
+ "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -15071,9 +14843,39 @@
}
},
"ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "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==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"json-schema-traverse": {
@@ -15082,21 +14884,32 @@
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true
},
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
"dev": true,
"requires": {
- "ansi-regex": "^5.0.0"
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ }
+ },
+ "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"
}
}
}
},
"tapable": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz",
- "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
"dev": true
},
"temp-file": {
@@ -15139,14 +14952,14 @@
}
},
"terser": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
- "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz",
+ "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==",
"dev": true,
"requires": {
"commander": "^2.20.0",
- "source-map": "~0.6.1",
- "source-map-support": "~0.5.12"
+ "source-map": "~0.7.2",
+ "source-map-support": "~0.5.20"
},
"dependencies": {
"commander": {
@@ -15156,20 +14969,10 @@
"dev": true
},
"source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+ "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
"dev": true
- },
- "source-map-support": {
- "version": "0.5.19",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
- "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
}
}
},
@@ -15354,8 +15157,8 @@
},
"to-readable-stream": {
"version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/to-readable-stream/download/to-readable-stream-1.0.0.tgz",
- "integrity": "sha1-zgqgwvPfat+FLvtASng+d8BHV3E=",
+ "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": {
@@ -15452,9 +15255,9 @@
}
},
"tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887539329&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz",
- "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
+ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
"dev": true
},
"tsscmp": {
@@ -15850,11 +15653,11 @@
"dev": true
},
"utf-8-validate": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.6.tgz",
- "integrity": "sha512-hoY0gOf9EkCw+nimK21FVKHUIG1BMqSiRwxB/q3A9yKZOrOI99PP77BxmarDqWz6rG3vVYiBWfhG8z2Tl+7fZA==",
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz",
+ "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==",
"requires": {
- "node-gyp-build": "^4.2.0"
+ "node-gyp-build": "^4.3.0"
}
},
"utf8-byte-length": {
@@ -15892,16 +15695,6 @@
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true
},
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -15959,9 +15752,9 @@
}
},
"vue-router": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.2.tgz",
- "integrity": "sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ=="
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz",
+ "integrity": "sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg=="
},
"vue-style-loader": {
"version": "4.1.3",
@@ -15994,11 +15787,6 @@
"resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.6.2.tgz",
"integrity": "sha1-I2vAhqhww655lG8QfxbeWdWJXnE="
},
- "vuex-router-sync": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/vuex-router-sync/-/vuex-router-sync-5.0.0.tgz",
- "integrity": "sha512-Mry2sO4kiAG64714X1CFpTA/shUH1DmkZ26DFDtwoM/yyx6OtMrc+MxrU+7vvbNLO9LSpgwkiJ8W+rlmRtsM+w=="
- },
"watchpack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz",
@@ -16019,9 +15807,9 @@
}
},
"webpack": {
- "version": "5.56.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.56.0.tgz",
- "integrity": "sha512-pJ7esw2AGkpZL0jqsEAKnDEfRZdrc9NVjAWA+d1mFkwj68ng9VQ6+Wnrl+kS5dlDHvrat5ASK5vd7wp6I7f53Q==",
+ "version": "5.60.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.60.0.tgz",
+ "integrity": "sha512-OL5GDYi2dKxnwJPSOg2tODgzDxAffN0osgWkZaBo/l3ikCxDFP+tuJT3uF7GyBE3SDBpKML/+a8EobyWAQO3DQ==",
"dev": true,
"requires": {
"@types/eslint-scope": "^3.7.0",
@@ -16087,18 +15875,18 @@
"dev": true
},
"mime-db": {
- "version": "1.49.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
- "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==",
+ "version": "1.50.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz",
+ "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==",
"dev": true
},
"mime-types": {
- "version": "2.1.32",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
- "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
+ "version": "2.1.33",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz",
+ "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==",
"dev": true,
"requires": {
- "mime-db": "1.49.0"
+ "mime-db": "1.50.0"
}
},
"schema-utils": {
@@ -16115,32 +15903,25 @@
}
},
"webpack-cli": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.8.0.tgz",
- "integrity": "sha512-+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw==",
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz",
+ "integrity": "sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==",
"dev": true,
"requires": {
"@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^1.0.4",
- "@webpack-cli/info": "^1.3.0",
- "@webpack-cli/serve": "^1.5.2",
- "colorette": "^1.2.1",
+ "@webpack-cli/configtest": "^1.1.0",
+ "@webpack-cli/info": "^1.4.0",
+ "@webpack-cli/serve": "^1.6.0",
+ "colorette": "^2.0.14",
"commander": "^7.0.0",
"execa": "^5.0.0",
"fastest-levenshtein": "^1.0.12",
"import-local": "^3.0.2",
"interpret": "^2.2.0",
"rechoir": "^0.7.0",
- "v8-compile-cache": "^2.2.0",
"webpack-merge": "^5.7.3"
},
"dependencies": {
- "commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "dev": true
- },
"execa": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
@@ -16175,9 +15956,9 @@
"dev": true
},
"import-local": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz",
- "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz",
+ "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==",
"dev": true,
"requires": {
"pkg-dir": "^4.2.0",
@@ -16705,9 +16486,9 @@
},
"dependencies": {
"ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
},
"ansi-styles": {
@@ -16735,12 +16516,12 @@
"dev": true
},
"strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "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.0"
+ "ansi-regex": "^5.0.1"
}
}
}
@@ -16779,18 +16560,10 @@
"dev": true
},
"xmlbuilder": {
- "version": "15.1.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
- "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
- "dev": true,
- "optional": true
- },
- "xmldom": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz",
- "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==",
- "dev": true,
- "optional": true
+ "version": "9.0.7",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
+ "dev": true
},
"y18n": {
"version": "5.0.8",
@@ -16816,9 +16589,9 @@
"dev": true
},
"yargs": {
- "version": "17.0.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz",
- "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==",
+ "version": "17.2.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz",
+ "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==",
"dev": true,
"requires": {
"cliui": "^7.0.2",
@@ -16831,9 +16604,9 @@
}
},
"yargs-parser": {
- "version": "20.2.7",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz",
- "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==",
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true
},
"yauzl": {
diff --git a/package.json b/package.json
index 6856a1d1..5902e412 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lx-music-desktop",
- "version": "1.14.1",
+ "version": "1.15.0",
"description": "一个免费的音乐查找助手",
"main": "./dist/electron/main.js",
"productName": "lx-music-desktop",
@@ -70,7 +70,7 @@
"up": "cross-env ELECTRON_GET_USE_PROXY=true GLOBAL_AGENT_HTTPS_PROXY=http://localhost:1081 npm i"
},
"browserslist": [
- "Electron 13.3.0"
+ "Electron 15.2.0"
],
"engines": {
"node": ">= 14"
@@ -78,6 +78,7 @@
"build": {
"appId": "cn.toside.music.desktop",
"directories": {
+ "buildResources": "./resources",
"output": "./build"
},
"files": [
@@ -90,12 +91,12 @@
"./licenses"
],
"win": {
- "icon": "./resources/icons/256x256.ico",
+ "icon": "./resources/icons/icon.ico",
"legalTrademarks": "lyswhut",
"artifactName": "${productName} v${version} ${env.ARCH} ${env.TARGET}.${ext}"
},
"mac": {
- "icon": "./resources/icons/512x512.icns",
+ "icon": "./resources/icons/icon.icns",
"category": "public.app-category.music"
},
"linux": {
@@ -166,51 +167,51 @@
},
"homepage": "https://github.com/lyswhut/lx-music-desktop#readme",
"devDependencies": {
- "@babel/core": "^7.15.5",
+ "@babel/core": "^7.15.8",
"@babel/plugin-proposal-class-properties": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-transform-modules-umd": "^7.14.5",
- "@babel/plugin-transform-runtime": "^7.15.0",
+ "@babel/plugin-transform-runtime": "^7.15.8",
"@babel/polyfill": "^7.12.1",
- "@babel/preset-env": "^7.15.6",
+ "@babel/preset-env": "^7.15.8",
"babel-eslint": "^10.1.0",
- "babel-loader": "^8.2.2",
+ "babel-loader": "^8.2.3",
"babel-preset-minify": "^0.5.1",
- "browserslist": "^4.17.2",
+ "browserslist": "^4.17.5",
"cfonts": "^2.10.0",
"chalk": "^4.1.2",
"changelog-parser": "^2.8.0",
"copy-webpack-plugin": "^9.0.1",
- "core-js": "^3.18.1",
+ "core-js": "^3.19.0",
"cross-env": "^7.0.3",
- "css-loader": "^6.3.0",
- "css-minimizer-webpack-plugin": "^3.0.2",
+ "css-loader": "^6.5.0",
+ "css-minimizer-webpack-plugin": "^3.1.1",
"del": "^6.0.0",
- "electron": "^13.4.0",
- "electron-builder": "^22.11.7",
+ "electron": "^15.3.0",
+ "electron-builder": "^22.13.1",
"electron-debug": "^3.2.0",
"electron-devtools-installer": "^3.2.0",
- "electron-to-chromium": "^1.3.856",
+ "electron-to-chromium": "^1.3.884",
"eslint": "^7.32.0",
"eslint-config-standard": "^16.0.3",
"eslint-formatter-friendly": "^7.0.0",
- "eslint-loader": "^4.0.2",
"eslint-plugin-html": "^6.2.0",
- "eslint-plugin-import": "^2.24.2",
+ "eslint-plugin-import": "^2.25.2",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-promise": "^5.1.0",
+ "eslint-plugin-promise": "^5.1.1",
"eslint-plugin-standard": "^4.1.0",
+ "eslint-webpack-plugin": "^3.1.0",
"file-loader": "^6.2.0",
"friendly-errors-webpack-plugin": "^1.7.0",
- "html-webpack-plugin": "^5.3.2",
- "less": "^4.1.1",
- "less-loader": "^10.0.1",
+ "html-webpack-plugin": "^5.5.0",
+ "less": "^4.1.2",
+ "less-loader": "^10.2.0",
"less-plugin-clean-css": "^1.5.1",
"markdown-it": "^12.2.0",
- "mini-css-extract-plugin": "^2.3.0",
+ "mini-css-extract-plugin": "^2.4.3",
"node-loader": "^2.0.0",
- "postcss": "^8.3.8",
- "postcss-loader": "^6.1.1",
+ "postcss": "^8.3.11",
+ "postcss-loader": "^6.2.0",
"postcss-pxtorem": "^6.0.0",
"pug": "^3.0.2",
"pug-loader": "^2.4.0",
@@ -222,34 +223,32 @@
"url-loader": "^4.1.1",
"vue-loader": "^15.9.8",
"vue-template-compiler": "^2.6.14",
- "webpack": "^5.56.0",
- "webpack-cli": "^4.8.0",
+ "webpack": "^5.60.0",
+ "webpack-cli": "^4.9.1",
"webpack-dev-server": "^3.11.2",
"webpack-hot-middleware": "^2.25.1",
"webpack-merge": "^5.8.0"
},
"dependencies": {
- "bufferutil": "^4.0.4",
+ "bufferutil": "^4.0.5",
"crypto-js": "^4.1.1",
"electron-log": "^4.4.1",
"electron-store": "^8.0.1",
"electron-updater": "^4.3.9",
- "font-list": "git+https://github.com/lyswhut/node-font-list.git#c6caf4060e471afe143a4aca30d554644522966d",
+ "font-list": "git+https://github.com/lyswhut/node-font-list.git#2ed3b4ee42e8a43373e8a30d87760c840725843e",
"http-terminator": "^3.0.3",
"iconv-lite": "^0.6.3",
"image-size": "^1.0.0",
- "koa": "^2.13.3",
- "long": "^4.0.0",
- "lrc-file-parser": "^1.2.1",
+ "koa": "^2.13.4",
+ "long": "^5.0.1",
"needle": "^3.0.0",
"node-id3": "^0.2.3",
"request": "^2.88.2",
- "socket.io": "^4.2.0",
- "utf-8-validate": "^5.0.6",
+ "socket.io": "^4.3.1",
+ "utf-8-validate": "^5.0.7",
"vue": "^2.6.14",
"vue-i18n": "^8.26.5",
- "vue-router": "^3.5.2",
- "vuex": "^3.6.2",
- "vuex-router-sync": "^5.0.0"
+ "vue-router": "^3.5.3",
+ "vuex": "^3.6.2"
}
}
diff --git a/publish/changeLog.md b/publish/changeLog.md
index 88b1d370..cdb2853e 100644
--- a/publish/changeLog.md
+++ b/publish/changeLog.md
@@ -1,4 +1,22 @@
+### 新增
+
+- 添加黑色托盘图标
+- 自定义源新增`version`字段,新增`utils.buffer.bufToString`方法
+
+### 优化
+
+- 大幅优化我的列表、下载、歌单、排行榜列表性能,现在即使同一列表内的歌曲很多时也不会卡顿了
+- 优化列表同步代码逻辑
+- 优化开关评论时的动画性能
+- 优化进入、离开播放详情页的性能
+- 兼容桌面歌词以触摸的方式移动、调整大小
+- 调整图标尺寸
+
### 修复
-- 修复我的列表搜索无法搜索小括号、中括号等字符的问题
-- 修复v1.14.0出现的备份与恢复功能备份的数据无法恢复的问题,同时兼容使用v1.14.0导出的存在问题的数据
+- 修复kg源的歌单链接无法打开的问题
+- 修复同一首歌的URL、歌词等同时需要换源时的处理问题
+
+### 其他
+
+- 更新 Electron 到 v15.3.0
diff --git a/publish/version.json b/publish/version.json
index a1681fc5..2a8d0171 100644
--- a/publish/version.json
+++ b/publish/version.json
@@ -1 +1 @@
-{"version":"1.14.1","desc":"修复\n- 修复我的列表搜索无法搜索小括号、中括号等字符的问题\n- 修复v1.14.0出现的备份与恢复功能备份的数据无法恢复的问题,同时兼容使用v1.14.0导出的存在问题的数据","history":[{"version":"1.14.0","desc":"新增\n- 新增歌词简体中文转繁体中文,当软件语言被设置为繁体中文后,播放歌曲的歌词也将自动转成繁体中文显示\n- 新增单个列表导入/导出功能,可以方便分享歌曲列表,可在右击“我的列表”里的列表名后弹出的菜单中使用\n- 新增删除列表前的确认弹窗,防止误删列表\n- 新增歌词文本选择复制功能,可在详情页进度条上方的歌词文本选择按钮进入歌词文本选择模式,选择完成后可鼠标右击或者使用系统快捷键复制\n- 新增重复歌曲列表,可以方便移除我的列表中的重复歌曲,此列表会列出目标列表里歌曲名相同的歌曲,可在右击“我的列表”里的列表名后弹出的菜单中使用\n\n修复\n- 修复mg排行榜无法加载的问题\n- 修复点击播放详情页的进度条跳进度时会出现偏移的问题\n- 修复在有提示信息的地方长按鼠标按键时提示信息会闪烁的问题\n- 修复下载歌曲时的歌词下载不尝试获取缓存歌词的问题\n- 修复GNOME等桌面下每次打开应用时需重新设置歌词窗口置顶的问题"},{"version":"1.13.0","desc":"如果你喜欢并经常使用洛雪音乐,并想要第一时间尝鲜洛雪的新功能,可以加入测试企鹅群768786588,\n注意:测试版的功可能会不稳定,打算潜水的勿加。\n\n新增\n- 歌曲搜索框新增清理按钮,点击此按钮可以清理搜索框并返回初始搜索界面\n- 新增“下载的歌词文件编码格式”设置,默认下载的歌词编码仍是`UTF-8`,对于某些在设备(如车机)上出现歌词中文乱码的用户可以尝试选择以`GBK`编码格式保存歌词文件\n- 新增设置-桌面歌词-歌词字体设置,此设置可用于设置桌面歌词的字体(已知的问题:Windows 7 下可能会出现字体列表为空的情况,这是当前系统的 Powershell 版本小于5.1导致的,请自行**尝试**看常见解决)\n\n优化\n- 支持网易源“我喜欢”歌单以注入token的方式打开。由于网易源的“我喜欢”歌单需要登录才能打开(若你看不懂后半句就去阅读 常见问题-无法打开外部歌单),现若想要打开此类歌单,需要在歌单链接后面拼上 `###` 再加上有效的token,拼接格式:`[id|url]###token`,例子(最后面的xxxxxx替换成你的token):`https://music.163.com/#/playlist?id=123456&userid=123456###xxxxxx`\n- 软件内快捷键的最小化触发时,如果已启用托盘,则隐藏程序,否则最小化程序\n\n修复\n- 修复某些情况下同步功能会导致切歌混乱的问题\n- 修复从电脑浏览器复制的企鹅歌单链接无法打开的问题"},{"version":"1.12.2","desc":"修复\n- 修复播放下载列表的歌曲时切歌的问题\n- 修复播放下载列表的歌曲时歌词无法显示的问题\n- 修复下载列表稍后播放功能无效的问题\n- 修复同步服务器启动失败时,关闭同步服务不会清空失败信息的问题"},{"version":"1.12.1","desc":"修复\n- 修复随机播放下无法切歌的问题"},{"version":"1.12.0","desc":"新增\n- 新增局域网同步功能(实验性,首次使用前建议先备份一次列表),此功能需要配合PC端使用,移动端与PC端处在同一个局域网(路由器的网络)下时,可以多端实时同步歌曲列表,使用问题请看\"常见问题\"。\n\n优化\n- 添加播放器对系统媒体控制与显示的兼容处理,现在在windows下的锁屏界面可以正确显示当前播放的音乐信息及切换歌曲了\n\n修复\n- 修复导入kg歌单最多只能加载100、500首歌曲的问题。注:现在可以加载1000+首歌曲的歌单,但出于未知原因会导致部分歌曲无法加载(可能是无版权导致的),目前酷狗码仍然最多只能加载500首歌\n- 修复某些情况下所显示的歌词、封面图片与当前正在播放的歌曲不一致的问题"},{"version":"1.11.0","desc":"新增\n- 添加 win arm64 架构的安装包构建\n- 新增“添加歌曲到列表时的位置”设置,可选项为列表的“顶部”与“底部”\n\n优化\n- 优化网络请求,尝试去解决无法连接服务器的问题\n- 优化mg源打开歌单的链接兼容\n\n修复\n- 修复mg源搜索失效的问题\n\n移除\n- 因wy源的歌单列表已没有“最新”排序的选项,所以现跟随移除wy源歌单列表按“最新”排序的按钮\n\n变更\n- 添加歌曲到列表时从原来的底部改为顶部,若你想要将你的列表歌曲顺序反转以适应这一变更,可先按住`shift`键的情况下点击列表的最后一首歌,然后再点击列表的第一首歌,完成倒序选中,最后随便右击列表的任意一首歌,在弹出的菜单中选择调整顺序,在弹出框输入1后确定即可反转列表。\n若你想要恢复原来的行为则可以去更改“添加歌曲到列表时的位置”设置项。\n\n其他\n- 更新electron到v13.1.7"},{"version":"1.10.2","desc":"修复\n- 修复企鹅音乐搜索歌曲没有结果的问题"},{"version":"1.10.1","desc":"修复\n- 修复企鹅音乐搜索歌曲没有结果的问题\n- 修复播放在空的歌单列表点击播放全部时报错的问题"},{"version":"1.10.0","desc":"lx music移动端已经发布了,使用习惯仍跟桌面版一样,不过功能、界面仍比较简单,有兴趣的可以去体检一下,项目地址:\nhttps://github.com/lyswhut/lx-music-mobile#readme\n\n新增\n- 排行榜界面添加播放、收藏整个排行榜功能,可以右击排行榜名字后,在弹出的右键菜单中使用。注:收藏、播放存在分页的排行榜时需等待操作完成后才能切换排行榜,不然会导致操作中断。\n- 新增Mac arm64位dmg包的构建\n\n修复\n- 修复全局快捷键对桌面歌词无效的问题\n- 修复快捷键设置框内的提示问题\n- 修复在当前正常播放的列表中使用稍后播放功能时,播放完后稍后播放的歌曲后不会恢复原来播放位置播放的问题\n- 修复kw部分歌单无法打开的问题\n- 修复wy源的歌曲音质匹配问题\n- 修复mg源歌单标签、排行榜歌曲列表无法加载的问题\n- 修复了一个歌曲下载失败时不会跳过任务的问题\n\n其他\n- 更新 Electron 到 12.0.8"},{"version":"1.9.0","desc":"新增\n- 新增启动参数`-dhmkh`,此参数将禁用Chromium的Hardware Media Key Handling特性,用于解决漫步者部分型号耳机与本程序冲突导致耳机意外关机的问题\n- 新增Windows arm64位免安装版的构建\n- 新增黑色皮肤“黑灯瞎火”,有关于皮肤配色的建议欢迎反馈\n- 新增自动换源下载功能,默认关闭,当无法从歌曲的原始源下载时,将尝试切换到其他源下载,注:此功能不100%保证换源后的歌曲版本与原版一致\n\n优化\n- 程序启动时对数据文件做读取校验,数据出现损坏时自动备份损坏的数据,若出现数据读取错误的弹窗并出现我的列表丢失时可到GitHub或加群反馈\n- 当设置-代理启用,但主机地址为空的时,将不再使用代理配置进行网络连接,并且在离开设置界面时自动禁用代理\n- 优化歌曲自动换源匹配\n- 分离歌词与歌曲列表信息的保存,以减小列表列表文件损坏的几率\n- 兼容打开咪咕移动端分享的歌单链接,添加打开歌单的信息显示\n\n修复\n- 修复备份与恢复功能在恢复数据时某些设置不立即生效的问题\n- 修正设置页“搜索设置”部分内容的缩进显示问题\n- 修复正在播放“稍后播放”的歌曲时,对“稍后播放”前播放的列表进行添加、删除操作会导致切歌的问题"},{"version":"1.8.2","desc":"### 修复\r\n\r\n- 修复歌曲ID存储变更导致酷狗图片获取失败的问题\n- 修复收藏的在线列表id迁移保存出错的问题"},{"version":"1.8.1","desc":"修复\n- 修复歌词翻译的主题颜色适配问题"},{"version":"1.8.0","desc":"新增\n- 新增设置-其他-列表缓存信息清理功能,注:此功能一般情况下不要使用\n- 新增启动参数`-play`,可以在启动软件时播放指定歌单,使用方法看Readme.md的\"启动参数\"部分\n- 新增逐字歌词播放,默认开启,可到设置界面关闭,注:本功能目前仅对酷狗源的歌曲有效\n- 新增自定义源功能,源编写规则可以去常见问题查看\n\n优化\n- 允许播放除了搜索列表以外的所有歌曲,即原来没有播放按钮或者灰色的歌曲都可以去尝试点击播放。注:该功能的原理是尝试自动切换到其他源播放,所以不一定会播放成功,特别是对于那些独家的资源\n- 优化单首歌曲的“添加到列表”弹窗歌曲列表状态的显示;现在在收藏单首歌曲时,若列表存在本歌曲则列表名字将变成灰色不可点击状态。总的来说,在添加单首歌曲时若列表名是灰色,则证明当前歌曲已在那个列表中\n- 将歌词翻译放到原文的下方,同时新增当前播放翻译的高亮功能\n\n移除\n- 移除虾米源。注:虽然已移除该源,但仍可尝试去播放之前添加的歌曲,虽然不一定会成功\n\n修复\n- 修复音乐搜索列表的稍后播放功能无效的问题\n- 修复搜索列表双击不支持播放的源时会导致切歌的问题\n- 修复歌单列表加载失败时无法进入歌单打开界面的问题\n- 修复mg源歌单列表无法加载的问题\n- 修复kg跳转到官方歌曲详情页的歌曲无法播放的问题\n- 修复我的列表的歌曲添加到其他列表时不排除当前列表的问题\n- 修复在下载列表右击未下载完成的歌曲弹出的右击菜单中没有开始下载选项的问题\n\n变更\n- 歌词翻译显示功能修改为默认关闭,注:此变更仅影响首次安装软件的用户\n\n其他\n- 更新electron到v9.4.4"},{"version":"1.7.1","desc":"修复\n- 修复非透明模式下右侧滚动条无法拖动的问题\n- 修复MAC下xm音乐滑块验证问题"},{"version":"1.7.0","desc":"新增
\n\n- 搜索界面新增搜索状态的提示
\n- 新增“稍后播放”功能,可在歌曲列表右键菜单使用
\n- 新增“记住播放进度”功能的控制,该功能默认不再开启,可到播放设置-记住播放进度开启
\n
\n优化
\n\n- 优化播放歌曲换源匹配
\n- 优化设置界面设置项的展示
\n
\n修复
\n\n- 修复快速切换歌曲时, 会出现播放的歌曲和界面展示的歌曲不一致的问题
\n- 修复了一个由版本更新日志显示导致的潜在远程代码执行攻击漏洞,该漏洞影响v1.6.1及之前的所有版本,请务必更新到最新版本
\n- 修复xm搜索源验证问题
\n
\n其他
\n\n"},{"version":"1.6.1","desc":"优化
\n\n修复
\n\n- 修复某些情况下自动换源的时间过长时会终止换源自动切歌的问题
\n- 修复自动换源导致的搜索列表每页变成10条数据的问题
\n- 降级electron到9.3.3修复部分系统没有声音的问题
\n
\n"},{"version":"1.6.0","desc":"新增
\n\n- 我的列表右键菜单新增列表排序功能,可调整单曲、多选后的歌曲的顺序。注意:多选排序还将会按照选中歌曲时的顺序排序
\n- 添加鼠标提示的自动关闭功能,鼠标长时间(目前是10秒)不动时鼠标提示将会自动关闭
\n- 添加鼠标指向歌曲封面的提示(对于进度条左边的歌曲封面,你可能不知道的操作->右击在“我的列表”定位当前播放的歌曲)
\n- 隐藏播放详情页按钮添加快速隐藏详情页提示(你可能不知道的操作->在播放详情页内的任意非窗口可拖动区域右键双击可以快速隐藏详情页)
\n- 添加桌面歌词字体、透明度调整按钮微调提示(你可能不知道的操作->对于字体、透明度可右击微调)
\n- 我的列表右键菜单添加搜索当前歌曲功能
\n- 新增
-dha参数,添加此启动参数将禁用硬件加速启动(Disable Hardware Acceleration),窗口显示有问题时可以尝试添加此参数启动,Linux系统的界面显示有问题时可尝试添加此参数启动,若不行可尝试添加-dt参数启动 \n- 新增播放自动换源功能~
\n
\n变更
\n\n-nt参数更名为-dt(Disable Transparent),目前原来的-nt参数仍然可用,但将在后续的版本中移除 \n
\n修复
\n\n- 修复恢复上次播放的歌曲时在随机播放模式下不把恢复播放的歌曲放入已播放队列的问题(该问题会导致随机模式下会导致未播放完整个列表前就会再次随机到该歌曲,以及无法通过上一曲切回该歌曲)
\n- 修复音乐嵌入的封面在 Mac 系统无法显示的问题
\n- 修复
-dt(原来的-nt)启动参数不真正生效的问题 \n
\n"},{"version":"1.5.0","desc":"新增
\n\n- 直接从歌单详情收藏的列表新增同步功能。注意:这将会覆盖本地的目标列表,歌曲将被替换成最新的在线列表
\n
\n优化
\n\n- 优化软件启动时恢复上一次播放的歌曲进度功能
\n
\n修复
\n\n- 修复MAC平台上下载歌曲封面嵌入无法显示的问题
\n- 修复MAC平台首次运行软件最小化、关闭控制按钮默认在右边的问题
\n- 修复酷狗源的某些歌曲没有专辑字段导致的列表加载失败问题
\n- 修复某些酷狗源歌单链接无法打开的问题
\n
\n"},{"version":"1.4.1","desc":"修复
\n\n- 修复有歌词翻译与无歌词的音乐间切换会导致歌词翻译残留显示的问题
\n- 修复歌曲URL过期时,等待刷新URL的自动切换歌曲时间间隔太短的问题
\n- 修复某些电脑上的某些歌曲没有声音的问题(升级Electron9.3.4导致的,现降级到9.3.3)
\n
\n"},{"version":"1.4.0","desc":"新增
\n\n- 托盘菜单新增显示、隐藏主界面选项,为Linux、MAC版添加托盘菜单
\n- 新增播放进度信息保存
\n
\n优化
\n\n修复
\n\n- 修复专辑图片无法嵌入的问题
\n- 修复播放状态栏切换“上一首”歌曲按钮提示错误的问题
\n- 修复移动单首歌曲时,如果目标列表存在该歌曲,会导致将源列表与目标列表里的目标歌曲移除
\n- 修复kg源歌曲信息带有单引号等特殊字符被转义的问题
\n
\n"},{"version":"1.3.0","desc":"新增
\n\n- 播放详情页新增歌曲评论加载显示(某些平台暂不支持显示子评论)
\n
\n优化
\n\n修复
\n\n- 修复小芸源音乐搜索结果最多只有20条搜索结果的问题
\n
\n"},{"version":"1.2.2","desc":"修复
\n\n- 降级 Electron 到 9.x.x 版本修复 Linux 版桌面歌词窗口变白的问题
\n
\n"},{"version":"1.2.1","desc":"优化
\n\n- Linux版的软件界面默认使用圆角与阴影,顺便修复了桌面歌词窗口变白的问题,已在Ubuntu 18.10测试正常,若显示异常可尝试添加
-nt参数启动 \n
\n修复
\n\n- 修复聚合搜索的分页问题
\n- 修复代理输入框输入的内容不生效的问题
\n
\n"},{"version":"1.2.0","desc":"提前祝大家中秋&国庆快乐~
\n新增
\n\n- 播放控制栏开启/关闭桌面歌词按钮 新增右击按钮时锁定/解锁桌面歌词功能
\n
\n优化
\n\n- 优化我的列表滚动条位置的保存逻辑
\n- 更新设置-备份与恢复功能的描述
\n- 优化软件内鼠标悬停的提示界面
\n
\n修复
\n\n- 修复桌面歌词窗口不允许拖出桌面之外的位置计算偏移Bug
\n- 修复网易云KTV嗨榜无法加载的问题
\n- 修复初始化搜索历史列表功能
\n- 修复重启软件后试听列表与收藏列表无法恢复上次的滚动位置的问题
\n- 修复歌曲封面无法嵌入的Bug
\n- 修复酷狗歌词格式问题
\n- 修复关闭切换动画时从搜索候选列表点击内容无效的问题
\n
\n其他
\n\n- 更新 Electron 到 v10.1.3
\n
\n"},{"version":"1.1.1","desc":"修复
\n\n"},{"version":"1.1.0","desc":"新增
\n\n- 在歌单详情界面新增播放当前歌单按钮、收藏歌单按钮,注:播放歌单不会将歌曲添加到试听列表
\n- 新增
不允许将歌词窗口拖出主屏幕之外的设置项,默认开启,在连接多个屏幕时想要拖动到其他屏幕时可关闭此设置 \n- 新增大部分平台的歌词翻译,感谢 @InoriHimea 提供的krc解码算法
\n- 新增
显示歌词翻译设置,默认开启,仅支持某些平台,注:无论该设置是否开启,嵌入或下载歌词时都不会带上翻译 \n- 新增
显示切换动画设置,默认开启,关闭时将基本禁用软件内的所有切换动画 \n- 播放状态栏新增桌面歌词的开关、播放模式的切换、歌曲的收藏按钮,Thanks to @andylow for the icon!
\n
\n修复
\n\n- 修复使用全局快捷键还原窗口时,窗口没有获取焦点的问题
\n- 修复我的列表搜索对最后一个字符的匹配问题
\n- 修复窗口在
较小模式下最小化/关闭按钮不居中的问题 \n
\n优化
\n\n- 桌面歌词当前播放行改为上下居中
\n- 为区分静音状态,静音时音量条会变淡,调整音量条时将会取消静音
\n- 优化随机播放机制,现在通过
下一曲切换歌曲时,直到播放完整个列表之前将不会再随机到之前播放过的歌曲,并且通过上一曲可以正确播放上一首歌曲 \n- 当下载目录没有写入权限时将显示没有写入权限的提示
\n
\n移除
\n\n- 移除默认的全局声音媒体快捷键接管
\n- 移除对百度音乐的支持,因百度音乐原有的大部分API失效,而且该平台相对其他平台来说音乐太少了,可有可无,以后再看情况恢复
\n
\n其他
\n\n"},{"version":"1.0.1","desc":"优化
\n\n修复
\n\n- 修复在 Windows 系统下缩放比非100%时,拖动桌面歌词会自动加大桌面歌词窗口的问题
\n
\n"},{"version":"1.0.0","desc":"新增
\n\n- 新增
rpm、pacman包的构建(未测试可用性) \n- 新增因系统音频设备列表改变导致的当前音频输出设备改变时是否暂停播放的设置,默认关闭
\n- 新增歌曲列表右击菜单
\n- 新增自定义列表,创建列表的按钮在表头
#左侧,鼠标移上去才会显示;编辑列表名字时,按ESC键可快速取消编辑,按回车键或使输入框失去焦点即可保存列表名字,右击列表可编辑已创建的列表,“试听列表”与“我的收藏”两个列表固定不可编辑 \n- 改变排行榜布局,新增更多排行榜
\n- 新增我的列表右键菜单复制歌曲名选项
\n- 新增桌面歌词,默认关闭,可到设置或者托盘菜单开启(建议使用全局快捷键控制);调整字体大小、透明度时,鼠标左击按钮正常调整,右击微调;Windows 7未开启Aero效果时桌面歌词会有问题,详情看常见问题解决;Linux版桌面歌词有问题,以后再尝试优化;
\n- 新增“清热板蓝”皮肤
\n- 新增软件最小化、关闭按钮位置设置,MAC版默认为左边,非MAC为右边,不想用默认的可到设置修改
\n- 新增快捷键设置,软件内快捷键默认开启,全局快捷键默认关闭(注:若想开启蓝牙耳机切歌需开启全局快捷键,当快捷键被中划线划掉时,表示当前快捷键被其他程序占用导致注册失败)
\n- 新增首次运行时自动根据当前系统使用的语言设置软件显示的语言
\n- 新增歌词区域的触摸板、鼠标滚轮等对歌词滚动的支持
\n- 为了方便支持正版资源,歌曲列表右击菜单新增跳转到当前歌曲源官方详情页菜单(注意:在本版本之前添加的虾米源歌曲无法跳转详情页,需要移除后重新搜索添加)
\n- 新增我的列表内歌曲搜索,在我的列表按
ctrl+f将显示搜索框;鼠标滑过或键盘上下方向键选择搜索结果;鼠标点击或按回车键定位选中的歌曲;按ctrl键的情况下鼠标点击或按回车键确认定位歌曲时,将会在定位歌曲结束后播放该歌曲(搜索框激活的情况下按esc可快速清空搜索框/关闭搜索框) \n- 新增托盘图标样式设置,可到设置-其他切换
\n- 新增开关下载功能控制,默认关闭,可到设置-下载设置开启
\n- 新增将歌词嵌入音频文件中,默认关闭,可到设置-下载设置开启
\n- 新增当列表文件损坏时对损坏文件的备份,若出现该情况可打开
%HOMEPATH%\\AppData\\Roaming\\lx-music-desktop找到playList.json.bak尝试手动修复列表文件,列表文件以JSON格式存储 \n- 新增在歌单详情列表按退格(Backspace)键可快速返回歌单列表
\n
\n优化
\n\n- 改进歌曲切换时的歌词滚动效果
\n- 优化批量添加、删除播放列表的歌曲操作逻辑,大幅提升批量添加、删除列表歌曲的流畅度
\n- 改进歌单列表展示
\n- 改进聚合搜索的搜索结果排序,修复当某些源搜索失败时导致其他源无法显示结果的问题,现在聚合搜索已达到最初的理想效果,为了使排序更精确,建议同时输入 歌曲名 歌手名 搜索(歌曲名在前歌手名在后),欢迎体验~!
\n- 压缩备份数据文件大小
\n
\n修复
\n\n- 修复按住
Ctrl等键触发多选机制时不松开按键的情况下切换到其他窗口后再松开按键,这时切回软件不按按键都处在多选模式的问题 \n- 修复Linux版开启托盘无法退出的问题
\n- 修复某些情况下可能导致的音源输出问题
\n- 修复某些情况下无法开始下载任务的问题
\n- 修复 tab 组件边框溢出问题
\n- 修复错误更新试听列表外的歌曲时间的问题
\n- 修复网易音乐源歌单、排行榜歌曲列表加载显示的数量与实际不对的问题,同时支持加载大于1000首歌的歌单(歌曲大于1000首会分页),注意:目前软件一下子显示太多歌曲时会卡顿,不建议在同一列表内添加太多歌曲
\n- 修复歌曲图片链接没有扩展名的情况下无法嵌入图片的问题
\n- 修复无法检测最新版本时弹窗提示的显示
\n- 修复某些情况下从托盘还原窗口后无法操作的问题
\n- 修复Linux下无法
ctrl+a全选的问题 \n- 修复主题背景图片覆盖不全的问题
\n- 修复聚合搜索音源标签的皮肤配色问题
\n
\n更变
\n\n- 修改设置-列表-是否显示歌曲源的默认设置为选中(该变更不影响之前的设置)
\n- 移除浮动按钮,现在在多选完成后可鼠标右击随意一项在弹出的右键菜单中进行原来悬浮按钮的操作
\n- 为了避免出现误会,现在下载弹窗中不可用的音质将直接隐藏
\n- 更改初始设置的搜索设置为聚合搜索(该变更不影响之前的设置)
\n
\n其他
\n\n"},{"version":"0.18.2","desc":"修复
\n\n- 修复开启托盘时,可能导致无法自动更新的问题
\n
\n"},{"version":"0.18.1","desc":"优化
\n\n- win下的托盘图标使用更大的图片
\n- 加长软件协议的强制停留时间
\n
\n修复
\n\n"},{"version":"0.18.0","desc":"新增
\n\n- 新增FLAC格式音乐标签信息写入与封面嵌入(因128k以外的音质已失效,目前该功能用不上了)
\n- 添加软件启动时是否自动聚焦搜索框的设置
\n- 新增托盘设置,默认关闭,可到设置开启,感谢 @LasyIsLazy 提交的PR
\n- 新增打开酷狗源用户歌单
\n- 新增使用协议
\n- 新增虾米音源
\n- 新增新皮肤“粉妆玉琢”、“青出于黑”,可去体验下~
\n- 新增“超大”、“巨大”窗口尺寸
\n- 新增播放详情页(退出详情页可点击右上角退出按钮或者在播放详情页任意地方鼠标快速右击两次)
\n
\n优化
\n\n- 略微加深音量条底色
\n- 优化其他界面细节
\n- 优化英语翻译,感谢 @CPCer
\n- 优化程序的流畅度
\n
\n更变
\n\n- 下载列表的歌曲下载、播放将随设置中的保存路径改变而改变,不再固定指向其初始位置
\n- 移除列表多选框,现在多选需要键盘配合,想要多选前需按下
Shift或Ctrl键然后再鼠标点击想要选中的内容即可触发多选机制,其中Shift键用于连续选择,Ctrl键用于不连续选择,Ctrl+a用于快速全选。例子一:想要选中1-5项,则先按下Shift键后,鼠标点击第一项,再点击第五项即可完成选择;例子二:想要选中1项与第3项,则先按下Ctrl键后,鼠标点击第一项,再点击第三项即可完成选择;例子三:想要选中当前列表的全部内容,键盘先按下Ctrl键不放,然后按a键,即可完成选择。用Shift或Ctrl选择时,鼠标点击未选中的内容会将其选中,点击已选择的内容会将其取消选择,若想全部取消选择,在不按Shift或Alt键的情况下,随意点击列表里的一项内容即可全部取消选择。(P.S:Ctrl键对应Mac OS上的Command键) \n- 现在进度条的封面图左击改为打开播放详情页,在列表定位歌曲改为右击
\n
\n修复
\n\n- 修复网易源某些歌曲提示没有可播放的音质的问题
\n- 修复下载管理刷新URL失败时不标记任务下载失败的问题
\n- 修复列表导出的文字描述,感谢 @CPCer
\n- 修复歌曲切换方式无法取消勾选的问题
\n- 修复打开歌单详情的情况下切到其他界面再切回来报错的问题
\n- 修正播放列表浮动按钮错误的文字提示
\n
\n移除
\n\n- 因128k以外的音质失效,So 禁止所有128k外的音质下载
\n
\n其他
\n更新 Electron 到 8.2.5
\n"},{"version":"0.17.0","desc":"新增
\n\n- 新增多语言设置,目前软件内置了简体中文、繁体中文、英语三种语言,欢迎提交PR翻译更多语言!
\n- 新增无法打开外部歌单FAQ
\n- 新增启动参数
search,使用例子:.\\lx-music-desktop.exe -search="突然的自我 - 伍佰" \n- 新增音频输出设置
\n- 新增软件内的包括字体在内的界面内容大小调整,现在当窗口大小切换到“较小/大/较大”时,软件内的元素将会适当减小或加大,窗口大小的“小”与“中”内的元素将保持之前的大小暂不做改变
\n- 新增音源别名,默认将显示别名,想要显示回原名可到设置切换(免责声明:别名仅是本软件用于描述各音源的标签,其名字归版权方所有)
\n- 新增发现新版本更新失败弹窗的忽略提醒按钮,忽略提醒后,以后同一个版本再失败时将不会弹窗提醒,但仍可到设置-版本更新手动点开更新弹窗查看或恢复提醒
\n- 新增热搜词,默认关闭,可到设置开启
\n- 新增历史搜索记录,默认关闭,可到设置开启(右击单个历史记录标签可移除所点击的记录)
\n
\n优化
\n\n- 优化月里嫦娥皮肤侧栏鼠标悬浮颜色
\n- 优化播放进度条的动画效果
\n- 现在添加下载任务时,后面添加的任务会在列表顶部插入
\n- 优化歌单打开机制,现在歌单加载失败时会提示加载失败了,并且支持直接打开企鹅、酷我手机分享出来的歌单了
\n- 优化右上角最小化/关闭按钮布局
\n
\n修复
\n\n- 修复歌单详情处于加载状态时无法返回的问题
\n- 修复鼠标右击复制列表内容时会复制音质标签的问题
\n- 修复
0.6.2及以前的版本导出的“所有数据”内的歌曲列表无法导入的问题 \n- 修复下载列表在某些情况下无法取消全选的问题
\n
\n其他
\n\n"},{"version":"0.16.0","desc":"新增
\n\n- 允许选中列表内歌曲名、歌手名、专辑名内的文字,选中后可使用键盘快捷键进行复制
\n- 新增在列表可选内容区域鼠标右击时自动复制列表已选文字的功能
\n- 新增在搜索框鼠标右击时自动粘贴剪贴板的文本到搜索框中
\n- 任务下载失败时将显示搜索按钮,方便在其他源搜索该歌曲
\n
\n优化
\n\n- 优化木叶之村主题翻页器背景颜色
\n- 优化各个主题音质标签颜色
\n- 优化其他一些界面细节及用户交互效果
\n
\n修复
\n\n- 修复启用透明窗口鼠标不穿透的bug
\n- 修复大窗口时设置的音乐来源选项不换行的问题
\n- 修复某些情况下暂停任务会自动开始任务的问题
\n- 修复移除暂停、错误的任务时不删除未下载完成的文件的问题
\n- 修复酷狗源歌单热门标签歌单列表无法加载问题
\n- 修复QQ源歌单热门标签歌单列表无法加载问题
\n
\n其他
\n\n"},{"version":"0.15.0","desc":"洛雪提前祝大家新年快乐、身体健康、阖家幸福!
\n修复
\n\n- 修复歌曲下载列表无法加载的问题
\n- 修复歌曲下载任务数大于最大下载任务数的问题
\n- 修复某些情况下歌曲下载错误的问题
\n- 修复下载列表数据没有被迁移直接被丢弃的问题
\n
\n"},{"version":"0.14.1","desc":"洛雪提前祝大家新年快乐、身体健康、阖家幸福!
\n修复
\n\n- 修复由于旧版配置文件迁移出错导致的软件界面无法显示的问题
\n
\n"},{"version":"0.14.0","desc":"洛雪提前祝大家新年快乐、身体健康、阖家幸福!
\n新增
\n\n- 新增各大平台歌单热门标签显示(显示在歌单界面的第一个下拉标签菜单中)
\n- 恢复QQ音乐源128k音质试听
\n- 新增不强制win7开启透明效果即可使用,但要配置运行参数
-nt,例如:.\\lx-music-desktop.exe -nt,添加方法可自行百度“给快捷方式加参数” \n- 新增“新年快乐”主题,可自行切换体验
\n
\n优化
\n\n- 减淡各个主题的歌曲列表分隔线颜色
\n- 在线音乐列表音质标签优化,当歌曲有无损音质时隐藏高品质标签
\n- 更新改进的歌词播放插件,现在歌词的播放显示将更准确
\n
\n修复
\n\n- 修复咪咕源无法搜索的问题
\n- 修复更新弹窗底部文字颜色没有适配当前主题颜色的问题
\n- 修复导入设置窗口大小、代理设置不立即生效的问题
\n- 修复在线音乐列表获取失败时无限循环请求的问题
\n
\n其他
\n\n- 将软件设置与播放列表分离存储成两个文件
\n- 更新 Electron 到 7.1.9
\n
\n"},{"version":"0.13.1","desc":"修复
\n\n其他
\n\n- 由于electron 7.1.3 - 7.1.5 的自动更新功能存在Bug,现降级到7.1.2
\n
\n"},{"version":"0.13.0","desc":"新增
\n\n- 新增搜索框搜索建议键盘上下方向键选择功能
\n- 聚合搜索新增音源显示
\n- 新增“离开搜索界面时清空搜索列表”设置选项,默认关闭,可到设置-强迫症设置开启
\n
\n优化
\n\n修复
\n\n- 修复存在弹出层时,搜索建议列表被弹出层覆盖的问题
\n- 修复搜索、排行榜、歌单列表多选框从不定状态到选中的Bug
\n
\n移除
\n\n其他
\n\n- 更新electron到7.1.5
\n- 更新vue到2.6.11
\n
\n"},{"version":"0.12.1","desc":"优化
\n\n- 优化定位歌曲时的列表滚动机制
\n- 优化链接点击效果
\n
\n修复
\n\n- 修复使用酷我源下载歌曲时,当歌曲无封面时下载报错的问题
\n- 修复酷我源排行榜、歌单详情列表里的歌曲音质匹配问题(原来无论歌曲有无高品、无损都会显示有)
\n- 禁止外部链接在软件内打开,将所有外部链接从默认浏览器打开
\n
\n其他
\n\n"},{"version":"0.12.0","desc":"由于新下载库仍然没有完成,但下载功能已经可用,so 移除之前使用的第三方下载库,暂时把新下载库的下载模块直接加入本程序,若出现下载问题欢迎反馈!
\n新增
\n\n- 新增下载功能对代理设置的支持,现在若在软件设置了代理服务器,下载功能也将会走代理网络了
\n
\n优化
\n\n- 新下载模块将对恢复下载的任务进行字节校验,用于解决下载进度超过100%后仍然下载的问题
\n- 注意:目前仍然无法暂停处于链接获取状态中的任务
\n
\n修复
\n\n- 修复Linux deb版本
.desktop桌面文件缺少图标的问题,新增中文名称显示、软件分类,感谢@lowy的反馈! \n- 修复下载列表歌曲状态分类列表操作Bug
\n- 修复歌曲封面下载失败时仍然执行嵌入封面操作导致报错的问题
\n- 跳过重复添加相同歌曲名与扩展名的歌曲,例如你之前下载了A歌曲的128k音质,现在想要下载它的320k音质,但由于两者都是MP3格式,会因为重名导致之前的128k音质被覆盖但列表中仍然显示两种音质的问题(但实际上都是指向后面的320k音质)
\n
\n"},{"version":"0.11.0","desc":"新增
\n\n- 新增歌曲缓冲定时器,尝试用于解决网络正常但是歌曲缓冲过久的问题
\n- 新增下载管理的任务状态分类
\n- 添加杀毒软件提示有病毒或恶意行为的说明,可到常见问题拉到最后查看(常见问题可在开源地址找到)
\n
\n优化
\n\n- 优化更新弹窗机制及其内容描述,对于可以自动更新的版本,现在可以看到软件的下载进度了
\n
\n"},{"version":"0.10.0","desc":"优化
\n\n- 大幅减少程序播放时对CPU与GPU的使用,经测试CPU使用减少60%以上,GPU使用减少90%以上,这应该能解决MAC系统上的温度上涨的问题
\n
\n修复
\n\n- 修复酷我源搜索提示、排行榜无法获取的问题
\n- 修复咪咕源无法播放的问题
\n
\n"},{"version":"0.9.1","desc":"修复
\n\n"},{"version":"0.9.0","desc":"新增
\n\n- 新增窗口大小设置,若觉得软件窗口小可以到设置页调大点
\n- 新增定位当前播放歌曲,点击播放栏左侧的歌曲图片可在播放列表定位当前播放的歌曲(该功能对播放下载列表的歌曲无效)
\n
\n修复
\n\n- 修复搜索提示失效的问题
\n- 修复从歌单或列表点击搜索按钮搜索目标歌曲时,搜索框未聚焦仍然弹出候选搜索列表的问题
\n
\n"},{"version":"0.8.2","desc":"修复
\n\n- 兼容旧版酷我源搜索列表过滤128k音质的bug(注:0.8.1版本仅修复了酷我源的歌曲过滤问题,该修复仅对以后添加的歌曲有效,如果是之前添加的歌曲仍会出现这个问题,现修复对之前旧列表数据的兼容处理)
\n
\n"},{"version":"0.8.1","desc":"修复
\n\n- 修复酷我源搜索歌曲结果未添加128k音质导致播放128k音质时显示“该歌曲没有可播放的音频”的问题
\n
\n"},{"version":"0.8.0","desc":"新增
\n\n- 新增网易云源歌曲搜索
\n- 新增网易云源歌单
\n- 新增各平台通过输入歌单链接或歌单ID打开歌单详情列表,目前只适配了网页版歌单链接,其他方式的歌单链接可能无法解析,但你可想办法获取歌单ID后输入打开。注:各平台歌单ID均为纯数字,若遇到链接里存在歌单ID但无法解析的歌单链接,可以到GitHub提交issue或发送邮件或加群830125506反馈!
\n- 新增音量调整滑动功能,现在支持鼠标左右拖动调整音量了
\n
\n优化
\n\n- 优化搜索框搜索体验
\n- 优化音量条交互视觉效果
\n- 缓存歌单详情列表数据
\n
\n修复
\n\n- 修复QQ源歌单无法翻页Bug
\n- 修复默认列表没有创建时无法显示收藏列表的Bug
\n- 修复网易云128k直接试听
\n- 修复歌曲音质不存在时仍然播放或下载的Bug
\n- 修复调整音量时,调整的位置与鼠标点击的位置不一致的问题
\n
\n"},{"version":"0.7.0","desc":"新增
\n\n- 新增“我的收藏”本地播放列表
\n- 新增缓存清理功能,可到设置-其他查看与清理软件缓存
\n- 新增QQ音乐源搜索
\n- 新增咪咕源搜索
\n- 新增咪咕源歌单
\n- 新增咪咕源排行榜
\n- 新增我的音乐列表歌曲源显示,默认关闭,可到设置-列表设置开启
\n
\n优化
\n\n- 优化选择框动画效果
\n- 尝试优化选我的音乐列表内容很多时多选的卡顿问题
\n
\n修复
\n\n- 修复列表延迟显示的Bug
\n- 修复QQ音源128k音质试听
\n
\n"},{"version":"0.6.2","desc":"祝贺祖国成立70周年~!
\n新增
\n\n修复
\n\n- 修正火影皮肤名字
\n- 修复当试听列表为空时,无法切到其他界面的Bug
\n- 修复百度源搜索结果为空时的接口处理Bug
\n- 恢复酷狗其他音质播放
\n
\n"},{"version":"0.6.1","desc":"新增
\n\n- 新增试听列表滚动条位置恢复设置(可自动恢复到上次离开时的列表滚动位置),本功能默认开启,若不需要可到设置-列表设置将其关闭
\n- 新增 《海贼王》 皮肤,喜欢个性化的可以试试~
\n
\n优化
\n\n- 新增DNS解析缓存,加快请求速度
\n- 优化代码逻辑,减少软件对系统资源的占用
\n- 优化新版本信息检测,尽量减少弹出版本获取失败弹窗弹出的概率
\n- 优化下拉列表动画效果
\n
\n修复
\n\n- 修复请求超时的逻辑处理Bug,尝试修复请求无法取消导致的正在播放的歌曲与界面显示的信息不一致的问题
\n- 修复其他一些小Bug
\n
\n移除
\n\n- 移除
192k 音质 \n- 移除酷我音源
ape 音质,无损推荐 flac 格式 \n
\n"},{"version":"0.6.0","desc":"新增
\n\n- 新增音乐聚合搜索,目前支持酷我、酷狗、百度源搜索
\n- 新增代理功能
\n
\n优化
\n\n- 优化从《梦里嫦娥》皮肤切换到其他皮肤时侧栏动画的切换效果
\n
\n修复
\n\n- 修复试听列表没有歌曲时会显示列表加载中的Bug
\n- 修复切换歌单列表详情时的UI Bug
\n
\n"},{"version":"0.5.5","desc":"新增
\n\n- 月是故乡明,祝大家中秋快乐🥮~~新增个性皮肤**《月里嫦娥》**,时间仓促,皮肤还不是很完善,可以试试喜不喜欢~😉
\n- 新增 MAC 版本退出快捷键支持
\n- 新增点击播放器中的歌曲标题可以复制标题的功能(遇到好听的歌曲方便分享)
\n
\n修复
\n\n- 修复 MAC 系统下软件关闭时再次从 dock 打开时报错的Bug
\n- 修复下载的歌曲文件名中包含命名规则不允许的符号时下载失败的问题(若歌曲名包含这些符号会自动将其移除)
\n- 修复 MAC 版本不能复制粘贴的问题
\n
\n"},{"version":"0.5.4","desc":"移除
\n\n- 下载的FLAC文件在修改歌曲信息后,软件无法播放,但使用本地播放器可以播放
\n- 为了稳妥起见,暂时移除FLAC格式的meta信息修改
\n- MP3格式无此问题
\n
\n"},{"version":"0.5.3","desc":"优化
\n\n修复
\n\n- 修复试听酷狗源的音乐仍然获取320k音质导致获取失败的Bug
\n
\n"},{"version":"0.5.2","desc":"新增
\n\n- 新增强迫症设置-离开搜索界面时是否清空搜索框
\n- 设置-关于板块新增常见问题链接
\n- 歌单左上角的分类按钮添加一个向下图标,方便识别该按钮为下拉框(该按钮可选择歌单类型,请自行尝试)
\n
\n优化
\n\n- 略微优化最小化按钮字符
\n- 优化试听列表的加载体验,当歌曲数过多时列表将延迟加载
\n
\n修复
\n\n移除
\n\n- 因接口失效,移除网易云音源,酷狗音源仅支持播放128k音质
\n
\n"},{"version":"0.5.1","desc":"新增
\n\n- 新增右上角最小化/关闭按钮鼠标滑过符号
\n- 新增下载列表定位文件按钮
\n
\n修复
\n\n- 修复百度源歌单全部分类无法加载的问题
\n- 修复更新弹窗无法弹出的问题
\n
\n"},{"version":"0.5.0","desc":"新增
\n\n- 新增封面嵌入(默认开启,可到设置-下载设置关闭)
\n- 新增歌词下载(默认关闭,可到设置-下载设置开启)
\n- 新增单例应用功能(实现软件单开功能,禁止软件多开)
\n
\n优化
\n\n修复
\n\n- 修复歌单无法翻页的问题
\n- 修复在某些情况下,添加下载歌曲导致下载列表崩溃的问题
\n- 修复版本更新弹窗Bug
\n- 修复酷狗歌单推荐歌单出现在其他分类中的Bug
\n
\n"},{"version":"0.4.0","desc":"新增
\n\n- 新增歌单功能,目前支持酷我、酷狗、百度源歌单
\n- 在设置界面-关于洛雪音乐说明部分新增最新版网盘下载地址与打赏地址
\n- 新增酷狗 电音热歌榜、DJ热歌榜
\n- 新增版本更新超时功能,对于部分无法访问GitHub的用户做更新超时提醒
\n
\n移除
\n\n- 注意:0.4.0以前的版本即将失效,请更新到0.4.0版本
\n
\n"},{"version":"0.3.5","desc":"新增
\n\n- 新增测试接口,该接口同样速度较慢,但软件的大部分功能可用,请自行切换到该接口,找接口辛苦,且用且珍惜!
\n
\n优化
\n\n- 取消需要刷新URL时windows任务栏进度显示错误状态(现显示为暂停状态)
\n
\n修复
\n\n- 修复使用临时接口时在试听列表双击灰色歌曲仍然会进行播放的Bug
\n- 修复歌词加载Bug
\n
\n"},{"version":"0.3.4","desc":"优化
\n\n- 减少接口不稳定带来的影响,适当增加请求等待时间
\n
\n修复
\n\n- 修复播放过程中URL过期不会刷新URL的问题
\n
\n"},{"version":"0.3.3","desc":"修复
\n\n- messoer的接口已经关闭,暂时切换到临时接口使用,部分功能受限。。。
\n- 修复设置界面更新出错时仍然显示更新下载中的问题
\n- 修复手动定位播放进度条时存在偏差的问题
\n- 屏蔽播放器中没有歌曲时对进度条的点击
\n
\n"},{"version":"0.3.2","desc":"新增
\n\n"},{"version":"0.3.1","desc":"修复
\n\n"},{"version":"0.3.0","desc":"新增
\n\n- 新增MAC及Linux版本(需要的可自行下载)
\n- 新增音量调整
\n- 新增任务栏播放进度条控制选项(现在可在设置界面关闭在任务栏显示的播放进度)
\n- 新增更新出错时的弹窗提示
\n- 从该版本起,非安装版也会有更新弹窗提醒了,但仍然需要手动下载新版本更新,版本信息可到设置页面查看
\n
\n修复
\n\n- 强制把临时接口设置回
messoer 接口 \n
\n"},{"version":"0.2.3","desc":"新增
\n\n- 新增任务栏程序标题改变功能(播放歌曲时任务栏标题将显示当前播放的歌曲)
\n
\n修复
\n\n- 使用临时接口时,试听列表中的下载按钮仍然能点击的Bug
\n- 修复某些情况下歌曲链接未能缓存的问题
\n
\n移除
\n\n- 移除临时接口(因服务器被攻击,本接口已关闭)
\n- 移除列表栏设置的隐藏专辑栏选项(感觉这个设置并没有什么luan用,并且还会打破布局)
\n
\n"},{"version":"0.2.2","desc":"修复
\n\n- 修复下载过程中出错重试5次都失败后不会自动开始下一个任务的Bug
\n- 修复播放到一半URL过期时不会刷新URL直接播放下一首的问题
\n
\n"},{"version":"0.2.1","desc":"优化
\n\n- 新增歌曲URL存储,当URL无效时才重新获取,以减少接口不稳定的影响
\n
\n修复
\n\n- 修复歌曲加载无法加载时自动切换混乱的Bug
\n- 修复移除列表最后一首歌曲时播放器不停止播放的问题
\n
\n"},{"version":"0.2.0","desc":"新增
\n\n- 新增百度音乐排行榜及其音乐直接试听与下载
\n- 新增网易云排行榜音乐直接试听与下载(目前仅支持128k音质)
\n- 新增酷狗排行榜音乐直接试听与下载(目前仅支持128k音质)
\n
\n修复
\n\n- 修复更新弹窗历史版本描述多余的换行问题
\n- 修复歌曲无法播放的情况下歌词仍会播放的问题
\n
\n"},{"version":"0.1.6","desc":"修复
\n\n"},{"version":"0.1.5","desc":"新增
\n\n- 新增搜索列表批量试听与下载功能
\n- 新增排行榜列表批量试听与下载功能
\n- 新增试听列表批量移除与下载功能
\n- 新增下载列表批量开始、暂停与移除功能
\n
\n优化
\n\n"},{"version":"0.1.4","desc":"新增
\n\n- 新增音乐来源切换,可到设置页面-基本设置 look look !
\n- 为搜索结果列表添加多选功能。
\nP.S:暂时没想好多选后的操作按钮放哪… \n
\n优化
\n\n- 重构与改进checkbox组件,使其支持不定选中状态
\n- 完善上一个版本的http请求封装并切换部分请求到该方法上
\n- 优化其他一些细节
\n
\n"},{"version":"0.1.3","desc":"新增
\n\n修复
\n\n- 修复安装包许可协议乱码问题
\n- messoer 提供的接口已挂,暂时切换到临时接口!
\n
\n移除
\n\n- 由于messoer接口无法使用,QQ音乐排行榜直接播放/下载功能暂时关闭
\n
\n"},{"version":"0.1.2","desc":"修复
\n\n"},{"version":"0.1.1","desc":"新增
\n\n- QQ音乐排行榜直接试听与下载(该接口貌似不太稳定,且用且珍惜!)
\n
\n优化
\n\n- 优化http请求机制
\n- 更新关于本软件说明
\n
\n修复
\n\n- 修复当上一个歌曲链接正在获取时切换歌曲请求不会取消的问题
\n- 修复切换歌曲时仍然播放上一首歌曲的问题
\n
\n"},{"version":"0.1.0","desc":"0.1.0版本发布"}]}
+{"version":"1.15.0","desc":"新增\n- 添加黑色托盘图标\n- 自定义源新增`version`字段,新增`utils.buffer.bufToString`方法\n\n优化\n- 大幅优化我的列表、下载、歌单、排行榜列表性能,现在即使同一列表内的歌曲很多时也不会卡顿了\n- 优化列表同步代码逻辑\n- 优化开关评论时的动画性能\n- 优化进入、离开播放详情页的性能\n- 兼容桌面歌词以触摸的方式移动、调整大小\n- 调整图标尺寸\n\n修复\n- 修复kg源的歌单链接无法打开的问题\n- 修复同一首歌的URL、歌词等同时需要换源时的处理问题\n\n其他\n- 更新 Electron 到 v15.3.0","history":[{"version":"1.14.1","desc":"修复\n- 修复我的列表搜索无法搜索小括号、中括号等字符的问题\n- 修复v1.14.0出现的备份与恢复功能备份的数据无法恢复的问题,同时兼容使用v1.14.0导出的存在问题的数据"},{"version":"1.14.0","desc":"新增\n- 新增歌词简体中文转繁体中文,当软件语言被设置为繁体中文后,播放歌曲的歌词也将自动转成繁体中文显示\n- 新增单个列表导入/导出功能,可以方便分享歌曲列表,可在右击“我的列表”里的列表名后弹出的菜单中使用\n- 新增删除列表前的确认弹窗,防止误删列表\n- 新增歌词文本选择复制功能,可在详情页进度条上方的歌词文本选择按钮进入歌词文本选择模式,选择完成后可鼠标右击或者使用系统快捷键复制\n- 新增重复歌曲列表,可以方便移除我的列表中的重复歌曲,此列表会列出目标列表里歌曲名相同的歌曲,可在右击“我的列表”里的列表名后弹出的菜单中使用\n\n修复\n- 修复mg排行榜无法加载的问题\n- 修复点击播放详情页的进度条跳进度时会出现偏移的问题\n- 修复在有提示信息的地方长按鼠标按键时提示信息会闪烁的问题\n- 修复下载歌曲时的歌词下载不尝试获取缓存歌词的问题\n- 修复GNOME等桌面下每次打开应用时需重新设置歌词窗口置顶的问题"},{"version":"1.13.0","desc":"如果你喜欢并经常使用洛雪音乐,并想要第一时间尝鲜洛雪的新功能,可以加入测试企鹅群768786588,\n注意:测试版的功可能会不稳定,打算潜水的勿加。\n\n新增\n- 歌曲搜索框新增清理按钮,点击此按钮可以清理搜索框并返回初始搜索界面\n- 新增“下载的歌词文件编码格式”设置,默认下载的歌词编码仍是`UTF-8`,对于某些在设备(如车机)上出现歌词中文乱码的用户可以尝试选择以`GBK`编码格式保存歌词文件\n- 新增设置-桌面歌词-歌词字体设置,此设置可用于设置桌面歌词的字体(已知的问题:Windows 7 下可能会出现字体列表为空的情况,这是当前系统的 Powershell 版本小于5.1导致的,请自行**尝试**看常见解决)\n\n优化\n- 支持网易源“我喜欢”歌单以注入token的方式打开。由于网易源的“我喜欢”歌单需要登录才能打开(若你看不懂后半句就去阅读 常见问题-无法打开外部歌单),现若想要打开此类歌单,需要在歌单链接后面拼上 `###` 再加上有效的token,拼接格式:`[id|url]###token`,例子(最后面的xxxxxx替换成你的token):`https://music.163.com/#/playlist?id=123456&userid=123456###xxxxxx`\n- 软件内快捷键的最小化触发时,如果已启用托盘,则隐藏程序,否则最小化程序\n\n修复\n- 修复某些情况下同步功能会导致切歌混乱的问题\n- 修复从电脑浏览器复制的企鹅歌单链接无法打开的问题"},{"version":"1.12.2","desc":"修复\n- 修复播放下载列表的歌曲时切歌的问题\n- 修复播放下载列表的歌曲时歌词无法显示的问题\n- 修复下载列表稍后播放功能无效的问题\n- 修复同步服务器启动失败时,关闭同步服务不会清空失败信息的问题"},{"version":"1.12.1","desc":"修复\n- 修复随机播放下无法切歌的问题"},{"version":"1.12.0","desc":"新增\n- 新增局域网同步功能(实验性,首次使用前建议先备份一次列表),此功能需要配合PC端使用,移动端与PC端处在同一个局域网(路由器的网络)下时,可以多端实时同步歌曲列表,使用问题请看\"常见问题\"。\n\n优化\n- 添加播放器对系统媒体控制与显示的兼容处理,现在在windows下的锁屏界面可以正确显示当前播放的音乐信息及切换歌曲了\n\n修复\n- 修复导入kg歌单最多只能加载100、500首歌曲的问题。注:现在可以加载1000+首歌曲的歌单,但出于未知原因会导致部分歌曲无法加载(可能是无版权导致的),目前酷狗码仍然最多只能加载500首歌\n- 修复某些情况下所显示的歌词、封面图片与当前正在播放的歌曲不一致的问题"},{"version":"1.11.0","desc":"新增\n- 添加 win arm64 架构的安装包构建\n- 新增“添加歌曲到列表时的位置”设置,可选项为列表的“顶部”与“底部”\n\n优化\n- 优化网络请求,尝试去解决无法连接服务器的问题\n- 优化mg源打开歌单的链接兼容\n\n修复\n- 修复mg源搜索失效的问题\n\n移除\n- 因wy源的歌单列表已没有“最新”排序的选项,所以现跟随移除wy源歌单列表按“最新”排序的按钮\n\n变更\n- 添加歌曲到列表时从原来的底部改为顶部,若你想要将你的列表歌曲顺序反转以适应这一变更,可先按住`shift`键的情况下点击列表的最后一首歌,然后再点击列表的第一首歌,完成倒序选中,最后随便右击列表的任意一首歌,在弹出的菜单中选择调整顺序,在弹出框输入1后确定即可反转列表。\n若你想要恢复原来的行为则可以去更改“添加歌曲到列表时的位置”设置项。\n\n其他\n- 更新electron到v13.1.7"},{"version":"1.10.2","desc":"修复\n- 修复企鹅音乐搜索歌曲没有结果的问题"},{"version":"1.10.1","desc":"修复\n- 修复企鹅音乐搜索歌曲没有结果的问题\n- 修复播放在空的歌单列表点击播放全部时报错的问题"},{"version":"1.10.0","desc":"lx music移动端已经发布了,使用习惯仍跟桌面版一样,不过功能、界面仍比较简单,有兴趣的可以去体检一下,项目地址:\nhttps://github.com/lyswhut/lx-music-mobile#readme\n\n新增\n- 排行榜界面添加播放、收藏整个排行榜功能,可以右击排行榜名字后,在弹出的右键菜单中使用。注:收藏、播放存在分页的排行榜时需等待操作完成后才能切换排行榜,不然会导致操作中断。\n- 新增Mac arm64位dmg包的构建\n\n修复\n- 修复全局快捷键对桌面歌词无效的问题\n- 修复快捷键设置框内的提示问题\n- 修复在当前正常播放的列表中使用稍后播放功能时,播放完后稍后播放的歌曲后不会恢复原来播放位置播放的问题\n- 修复kw部分歌单无法打开的问题\n- 修复wy源的歌曲音质匹配问题\n- 修复mg源歌单标签、排行榜歌曲列表无法加载的问题\n- 修复了一个歌曲下载失败时不会跳过任务的问题\n\n其他\n- 更新 Electron 到 12.0.8"},{"version":"1.9.0","desc":"新增\n- 新增启动参数`-dhmkh`,此参数将禁用Chromium的Hardware Media Key Handling特性,用于解决漫步者部分型号耳机与本程序冲突导致耳机意外关机的问题\n- 新增Windows arm64位免安装版的构建\n- 新增黑色皮肤“黑灯瞎火”,有关于皮肤配色的建议欢迎反馈\n- 新增自动换源下载功能,默认关闭,当无法从歌曲的原始源下载时,将尝试切换到其他源下载,注:此功能不100%保证换源后的歌曲版本与原版一致\n\n优化\n- 程序启动时对数据文件做读取校验,数据出现损坏时自动备份损坏的数据,若出现数据读取错误的弹窗并出现我的列表丢失时可到GitHub或加群反馈\n- 当设置-代理启用,但主机地址为空的时,将不再使用代理配置进行网络连接,并且在离开设置界面时自动禁用代理\n- 优化歌曲自动换源匹配\n- 分离歌词与歌曲列表信息的保存,以减小列表列表文件损坏的几率\n- 兼容打开咪咕移动端分享的歌单链接,添加打开歌单的信息显示\n\n修复\n- 修复备份与恢复功能在恢复数据时某些设置不立即生效的问题\n- 修正设置页“搜索设置”部分内容的缩进显示问题\n- 修复正在播放“稍后播放”的歌曲时,对“稍后播放”前播放的列表进行添加、删除操作会导致切歌的问题"},{"version":"1.8.2","desc":"### 修复\r\n\r\n- 修复歌曲ID存储变更导致酷狗图片获取失败的问题\n- 修复收藏的在线列表id迁移保存出错的问题"},{"version":"1.8.1","desc":"修复\n- 修复歌词翻译的主题颜色适配问题"},{"version":"1.8.0","desc":"新增\n- 新增设置-其他-列表缓存信息清理功能,注:此功能一般情况下不要使用\n- 新增启动参数`-play`,可以在启动软件时播放指定歌单,使用方法看Readme.md的\"启动参数\"部分\n- 新增逐字歌词播放,默认开启,可到设置界面关闭,注:本功能目前仅对酷狗源的歌曲有效\n- 新增自定义源功能,源编写规则可以去常见问题查看\n\n优化\n- 允许播放除了搜索列表以外的所有歌曲,即原来没有播放按钮或者灰色的歌曲都可以去尝试点击播放。注:该功能的原理是尝试自动切换到其他源播放,所以不一定会播放成功,特别是对于那些独家的资源\n- 优化单首歌曲的“添加到列表”弹窗歌曲列表状态的显示;现在在收藏单首歌曲时,若列表存在本歌曲则列表名字将变成灰色不可点击状态。总的来说,在添加单首歌曲时若列表名是灰色,则证明当前歌曲已在那个列表中\n- 将歌词翻译放到原文的下方,同时新增当前播放翻译的高亮功能\n\n移除\n- 移除虾米源。注:虽然已移除该源,但仍可尝试去播放之前添加的歌曲,虽然不一定会成功\n\n修复\n- 修复音乐搜索列表的稍后播放功能无效的问题\n- 修复搜索列表双击不支持播放的源时会导致切歌的问题\n- 修复歌单列表加载失败时无法进入歌单打开界面的问题\n- 修复mg源歌单列表无法加载的问题\n- 修复kg跳转到官方歌曲详情页的歌曲无法播放的问题\n- 修复我的列表的歌曲添加到其他列表时不排除当前列表的问题\n- 修复在下载列表右击未下载完成的歌曲弹出的右击菜单中没有开始下载选项的问题\n\n变更\n- 歌词翻译显示功能修改为默认关闭,注:此变更仅影响首次安装软件的用户\n\n其他\n- 更新electron到v9.4.4"},{"version":"1.7.1","desc":"修复\n- 修复非透明模式下右侧滚动条无法拖动的问题\n- 修复MAC下xm音乐滑块验证问题"},{"version":"1.7.0","desc":"新增
\n\n- 搜索界面新增搜索状态的提示
\n- 新增“稍后播放”功能,可在歌曲列表右键菜单使用
\n- 新增“记住播放进度”功能的控制,该功能默认不再开启,可到播放设置-记住播放进度开启
\n
\n优化
\n\n- 优化播放歌曲换源匹配
\n- 优化设置界面设置项的展示
\n
\n修复
\n\n- 修复快速切换歌曲时, 会出现播放的歌曲和界面展示的歌曲不一致的问题
\n- 修复了一个由版本更新日志显示导致的潜在远程代码执行攻击漏洞,该漏洞影响v1.6.1及之前的所有版本,请务必更新到最新版本
\n- 修复xm搜索源验证问题
\n
\n其他
\n\n"},{"version":"1.6.1","desc":"优化
\n\n修复
\n\n- 修复某些情况下自动换源的时间过长时会终止换源自动切歌的问题
\n- 修复自动换源导致的搜索列表每页变成10条数据的问题
\n- 降级electron到9.3.3修复部分系统没有声音的问题
\n
\n"},{"version":"1.6.0","desc":"新增
\n\n- 我的列表右键菜单新增列表排序功能,可调整单曲、多选后的歌曲的顺序。注意:多选排序还将会按照选中歌曲时的顺序排序
\n- 添加鼠标提示的自动关闭功能,鼠标长时间(目前是10秒)不动时鼠标提示将会自动关闭
\n- 添加鼠标指向歌曲封面的提示(对于进度条左边的歌曲封面,你可能不知道的操作->右击在“我的列表”定位当前播放的歌曲)
\n- 隐藏播放详情页按钮添加快速隐藏详情页提示(你可能不知道的操作->在播放详情页内的任意非窗口可拖动区域右键双击可以快速隐藏详情页)
\n- 添加桌面歌词字体、透明度调整按钮微调提示(你可能不知道的操作->对于字体、透明度可右击微调)
\n- 我的列表右键菜单添加搜索当前歌曲功能
\n- 新增
-dha参数,添加此启动参数将禁用硬件加速启动(Disable Hardware Acceleration),窗口显示有问题时可以尝试添加此参数启动,Linux系统的界面显示有问题时可尝试添加此参数启动,若不行可尝试添加-dt参数启动 \n- 新增播放自动换源功能~
\n
\n变更
\n\n-nt参数更名为-dt(Disable Transparent),目前原来的-nt参数仍然可用,但将在后续的版本中移除 \n
\n修复
\n\n- 修复恢复上次播放的歌曲时在随机播放模式下不把恢复播放的歌曲放入已播放队列的问题(该问题会导致随机模式下会导致未播放完整个列表前就会再次随机到该歌曲,以及无法通过上一曲切回该歌曲)
\n- 修复音乐嵌入的封面在 Mac 系统无法显示的问题
\n- 修复
-dt(原来的-nt)启动参数不真正生效的问题 \n
\n"},{"version":"1.5.0","desc":"新增
\n\n- 直接从歌单详情收藏的列表新增同步功能。注意:这将会覆盖本地的目标列表,歌曲将被替换成最新的在线列表
\n
\n优化
\n\n- 优化软件启动时恢复上一次播放的歌曲进度功能
\n
\n修复
\n\n- 修复MAC平台上下载歌曲封面嵌入无法显示的问题
\n- 修复MAC平台首次运行软件最小化、关闭控制按钮默认在右边的问题
\n- 修复酷狗源的某些歌曲没有专辑字段导致的列表加载失败问题
\n- 修复某些酷狗源歌单链接无法打开的问题
\n
\n"},{"version":"1.4.1","desc":"修复
\n\n- 修复有歌词翻译与无歌词的音乐间切换会导致歌词翻译残留显示的问题
\n- 修复歌曲URL过期时,等待刷新URL的自动切换歌曲时间间隔太短的问题
\n- 修复某些电脑上的某些歌曲没有声音的问题(升级Electron9.3.4导致的,现降级到9.3.3)
\n
\n"},{"version":"1.4.0","desc":"新增
\n\n- 托盘菜单新增显示、隐藏主界面选项,为Linux、MAC版添加托盘菜单
\n- 新增播放进度信息保存
\n
\n优化
\n\n修复
\n\n- 修复专辑图片无法嵌入的问题
\n- 修复播放状态栏切换“上一首”歌曲按钮提示错误的问题
\n- 修复移动单首歌曲时,如果目标列表存在该歌曲,会导致将源列表与目标列表里的目标歌曲移除
\n- 修复kg源歌曲信息带有单引号等特殊字符被转义的问题
\n
\n"},{"version":"1.3.0","desc":"新增
\n\n- 播放详情页新增歌曲评论加载显示(某些平台暂不支持显示子评论)
\n
\n优化
\n\n修复
\n\n- 修复小芸源音乐搜索结果最多只有20条搜索结果的问题
\n
\n"},{"version":"1.2.2","desc":"修复
\n\n- 降级 Electron 到 9.x.x 版本修复 Linux 版桌面歌词窗口变白的问题
\n
\n"},{"version":"1.2.1","desc":"优化
\n\n- Linux版的软件界面默认使用圆角与阴影,顺便修复了桌面歌词窗口变白的问题,已在Ubuntu 18.10测试正常,若显示异常可尝试添加
-nt参数启动 \n
\n修复
\n\n- 修复聚合搜索的分页问题
\n- 修复代理输入框输入的内容不生效的问题
\n
\n"},{"version":"1.2.0","desc":"提前祝大家中秋&国庆快乐~
\n新增
\n\n- 播放控制栏开启/关闭桌面歌词按钮 新增右击按钮时锁定/解锁桌面歌词功能
\n
\n优化
\n\n- 优化我的列表滚动条位置的保存逻辑
\n- 更新设置-备份与恢复功能的描述
\n- 优化软件内鼠标悬停的提示界面
\n
\n修复
\n\n- 修复桌面歌词窗口不允许拖出桌面之外的位置计算偏移Bug
\n- 修复网易云KTV嗨榜无法加载的问题
\n- 修复初始化搜索历史列表功能
\n- 修复重启软件后试听列表与收藏列表无法恢复上次的滚动位置的问题
\n- 修复歌曲封面无法嵌入的Bug
\n- 修复酷狗歌词格式问题
\n- 修复关闭切换动画时从搜索候选列表点击内容无效的问题
\n
\n其他
\n\n- 更新 Electron 到 v10.1.3
\n
\n"},{"version":"1.1.1","desc":"修复
\n\n"},{"version":"1.1.0","desc":"新增
\n\n- 在歌单详情界面新增播放当前歌单按钮、收藏歌单按钮,注:播放歌单不会将歌曲添加到试听列表
\n- 新增
不允许将歌词窗口拖出主屏幕之外的设置项,默认开启,在连接多个屏幕时想要拖动到其他屏幕时可关闭此设置 \n- 新增大部分平台的歌词翻译,感谢 @InoriHimea 提供的krc解码算法
\n- 新增
显示歌词翻译设置,默认开启,仅支持某些平台,注:无论该设置是否开启,嵌入或下载歌词时都不会带上翻译 \n- 新增
显示切换动画设置,默认开启,关闭时将基本禁用软件内的所有切换动画 \n- 播放状态栏新增桌面歌词的开关、播放模式的切换、歌曲的收藏按钮,Thanks to @andylow for the icon!
\n
\n修复
\n\n- 修复使用全局快捷键还原窗口时,窗口没有获取焦点的问题
\n- 修复我的列表搜索对最后一个字符的匹配问题
\n- 修复窗口在
较小模式下最小化/关闭按钮不居中的问题 \n
\n优化
\n\n- 桌面歌词当前播放行改为上下居中
\n- 为区分静音状态,静音时音量条会变淡,调整音量条时将会取消静音
\n- 优化随机播放机制,现在通过
下一曲切换歌曲时,直到播放完整个列表之前将不会再随机到之前播放过的歌曲,并且通过上一曲可以正确播放上一首歌曲 \n- 当下载目录没有写入权限时将显示没有写入权限的提示
\n
\n移除
\n\n- 移除默认的全局声音媒体快捷键接管
\n- 移除对百度音乐的支持,因百度音乐原有的大部分API失效,而且该平台相对其他平台来说音乐太少了,可有可无,以后再看情况恢复
\n
\n其他
\n\n"},{"version":"1.0.1","desc":"优化
\n\n修复
\n\n- 修复在 Windows 系统下缩放比非100%时,拖动桌面歌词会自动加大桌面歌词窗口的问题
\n
\n"},{"version":"1.0.0","desc":"新增
\n\n- 新增
rpm、pacman包的构建(未测试可用性) \n- 新增因系统音频设备列表改变导致的当前音频输出设备改变时是否暂停播放的设置,默认关闭
\n- 新增歌曲列表右击菜单
\n- 新增自定义列表,创建列表的按钮在表头
#左侧,鼠标移上去才会显示;编辑列表名字时,按ESC键可快速取消编辑,按回车键或使输入框失去焦点即可保存列表名字,右击列表可编辑已创建的列表,“试听列表”与“我的收藏”两个列表固定不可编辑 \n- 改变排行榜布局,新增更多排行榜
\n- 新增我的列表右键菜单复制歌曲名选项
\n- 新增桌面歌词,默认关闭,可到设置或者托盘菜单开启(建议使用全局快捷键控制);调整字体大小、透明度时,鼠标左击按钮正常调整,右击微调;Windows 7未开启Aero效果时桌面歌词会有问题,详情看常见问题解决;Linux版桌面歌词有问题,以后再尝试优化;
\n- 新增“清热板蓝”皮肤
\n- 新增软件最小化、关闭按钮位置设置,MAC版默认为左边,非MAC为右边,不想用默认的可到设置修改
\n- 新增快捷键设置,软件内快捷键默认开启,全局快捷键默认关闭(注:若想开启蓝牙耳机切歌需开启全局快捷键,当快捷键被中划线划掉时,表示当前快捷键被其他程序占用导致注册失败)
\n- 新增首次运行时自动根据当前系统使用的语言设置软件显示的语言
\n- 新增歌词区域的触摸板、鼠标滚轮等对歌词滚动的支持
\n- 为了方便支持正版资源,歌曲列表右击菜单新增跳转到当前歌曲源官方详情页菜单(注意:在本版本之前添加的虾米源歌曲无法跳转详情页,需要移除后重新搜索添加)
\n- 新增我的列表内歌曲搜索,在我的列表按
ctrl+f将显示搜索框;鼠标滑过或键盘上下方向键选择搜索结果;鼠标点击或按回车键定位选中的歌曲;按ctrl键的情况下鼠标点击或按回车键确认定位歌曲时,将会在定位歌曲结束后播放该歌曲(搜索框激活的情况下按esc可快速清空搜索框/关闭搜索框) \n- 新增托盘图标样式设置,可到设置-其他切换
\n- 新增开关下载功能控制,默认关闭,可到设置-下载设置开启
\n- 新增将歌词嵌入音频文件中,默认关闭,可到设置-下载设置开启
\n- 新增当列表文件损坏时对损坏文件的备份,若出现该情况可打开
%HOMEPATH%\\AppData\\Roaming\\lx-music-desktop找到playList.json.bak尝试手动修复列表文件,列表文件以JSON格式存储 \n- 新增在歌单详情列表按退格(Backspace)键可快速返回歌单列表
\n
\n优化
\n\n- 改进歌曲切换时的歌词滚动效果
\n- 优化批量添加、删除播放列表的歌曲操作逻辑,大幅提升批量添加、删除列表歌曲的流畅度
\n- 改进歌单列表展示
\n- 改进聚合搜索的搜索结果排序,修复当某些源搜索失败时导致其他源无法显示结果的问题,现在聚合搜索已达到最初的理想效果,为了使排序更精确,建议同时输入 歌曲名 歌手名 搜索(歌曲名在前歌手名在后),欢迎体验~!
\n- 压缩备份数据文件大小
\n
\n修复
\n\n- 修复按住
Ctrl等键触发多选机制时不松开按键的情况下切换到其他窗口后再松开按键,这时切回软件不按按键都处在多选模式的问题 \n- 修复Linux版开启托盘无法退出的问题
\n- 修复某些情况下可能导致的音源输出问题
\n- 修复某些情况下无法开始下载任务的问题
\n- 修复 tab 组件边框溢出问题
\n- 修复错误更新试听列表外的歌曲时间的问题
\n- 修复网易音乐源歌单、排行榜歌曲列表加载显示的数量与实际不对的问题,同时支持加载大于1000首歌的歌单(歌曲大于1000首会分页),注意:目前软件一下子显示太多歌曲时会卡顿,不建议在同一列表内添加太多歌曲
\n- 修复歌曲图片链接没有扩展名的情况下无法嵌入图片的问题
\n- 修复无法检测最新版本时弹窗提示的显示
\n- 修复某些情况下从托盘还原窗口后无法操作的问题
\n- 修复Linux下无法
ctrl+a全选的问题 \n- 修复主题背景图片覆盖不全的问题
\n- 修复聚合搜索音源标签的皮肤配色问题
\n
\n更变
\n\n- 修改设置-列表-是否显示歌曲源的默认设置为选中(该变更不影响之前的设置)
\n- 移除浮动按钮,现在在多选完成后可鼠标右击随意一项在弹出的右键菜单中进行原来悬浮按钮的操作
\n- 为了避免出现误会,现在下载弹窗中不可用的音质将直接隐藏
\n- 更改初始设置的搜索设置为聚合搜索(该变更不影响之前的设置)
\n
\n其他
\n\n"},{"version":"0.18.2","desc":"修复
\n\n- 修复开启托盘时,可能导致无法自动更新的问题
\n
\n"},{"version":"0.18.1","desc":"优化
\n\n- win下的托盘图标使用更大的图片
\n- 加长软件协议的强制停留时间
\n
\n修复
\n\n"},{"version":"0.18.0","desc":"新增
\n\n- 新增FLAC格式音乐标签信息写入与封面嵌入(因128k以外的音质已失效,目前该功能用不上了)
\n- 添加软件启动时是否自动聚焦搜索框的设置
\n- 新增托盘设置,默认关闭,可到设置开启,感谢 @LasyIsLazy 提交的PR
\n- 新增打开酷狗源用户歌单
\n- 新增使用协议
\n- 新增虾米音源
\n- 新增新皮肤“粉妆玉琢”、“青出于黑”,可去体验下~
\n- 新增“超大”、“巨大”窗口尺寸
\n- 新增播放详情页(退出详情页可点击右上角退出按钮或者在播放详情页任意地方鼠标快速右击两次)
\n
\n优化
\n\n- 略微加深音量条底色
\n- 优化其他界面细节
\n- 优化英语翻译,感谢 @CPCer
\n- 优化程序的流畅度
\n
\n更变
\n\n- 下载列表的歌曲下载、播放将随设置中的保存路径改变而改变,不再固定指向其初始位置
\n- 移除列表多选框,现在多选需要键盘配合,想要多选前需按下
Shift或Ctrl键然后再鼠标点击想要选中的内容即可触发多选机制,其中Shift键用于连续选择,Ctrl键用于不连续选择,Ctrl+a用于快速全选。例子一:想要选中1-5项,则先按下Shift键后,鼠标点击第一项,再点击第五项即可完成选择;例子二:想要选中1项与第3项,则先按下Ctrl键后,鼠标点击第一项,再点击第三项即可完成选择;例子三:想要选中当前列表的全部内容,键盘先按下Ctrl键不放,然后按a键,即可完成选择。用Shift或Ctrl选择时,鼠标点击未选中的内容会将其选中,点击已选择的内容会将其取消选择,若想全部取消选择,在不按Shift或Alt键的情况下,随意点击列表里的一项内容即可全部取消选择。(P.S:Ctrl键对应Mac OS上的Command键) \n- 现在进度条的封面图左击改为打开播放详情页,在列表定位歌曲改为右击
\n
\n修复
\n\n- 修复网易源某些歌曲提示没有可播放的音质的问题
\n- 修复下载管理刷新URL失败时不标记任务下载失败的问题
\n- 修复列表导出的文字描述,感谢 @CPCer
\n- 修复歌曲切换方式无法取消勾选的问题
\n- 修复打开歌单详情的情况下切到其他界面再切回来报错的问题
\n- 修正播放列表浮动按钮错误的文字提示
\n
\n移除
\n\n- 因128k以外的音质失效,So 禁止所有128k外的音质下载
\n
\n其他
\n更新 Electron 到 8.2.5
\n"},{"version":"0.17.0","desc":"新增
\n\n- 新增多语言设置,目前软件内置了简体中文、繁体中文、英语三种语言,欢迎提交PR翻译更多语言!
\n- 新增无法打开外部歌单FAQ
\n- 新增启动参数
search,使用例子:.\\lx-music-desktop.exe -search="突然的自我 - 伍佰" \n- 新增音频输出设置
\n- 新增软件内的包括字体在内的界面内容大小调整,现在当窗口大小切换到“较小/大/较大”时,软件内的元素将会适当减小或加大,窗口大小的“小”与“中”内的元素将保持之前的大小暂不做改变
\n- 新增音源别名,默认将显示别名,想要显示回原名可到设置切换(免责声明:别名仅是本软件用于描述各音源的标签,其名字归版权方所有)
\n- 新增发现新版本更新失败弹窗的忽略提醒按钮,忽略提醒后,以后同一个版本再失败时将不会弹窗提醒,但仍可到设置-版本更新手动点开更新弹窗查看或恢复提醒
\n- 新增热搜词,默认关闭,可到设置开启
\n- 新增历史搜索记录,默认关闭,可到设置开启(右击单个历史记录标签可移除所点击的记录)
\n
\n优化
\n\n- 优化月里嫦娥皮肤侧栏鼠标悬浮颜色
\n- 优化播放进度条的动画效果
\n- 现在添加下载任务时,后面添加的任务会在列表顶部插入
\n- 优化歌单打开机制,现在歌单加载失败时会提示加载失败了,并且支持直接打开企鹅、酷我手机分享出来的歌单了
\n- 优化右上角最小化/关闭按钮布局
\n
\n修复
\n\n- 修复歌单详情处于加载状态时无法返回的问题
\n- 修复鼠标右击复制列表内容时会复制音质标签的问题
\n- 修复
0.6.2及以前的版本导出的“所有数据”内的歌曲列表无法导入的问题 \n- 修复下载列表在某些情况下无法取消全选的问题
\n
\n其他
\n\n"},{"version":"0.16.0","desc":"新增
\n\n- 允许选中列表内歌曲名、歌手名、专辑名内的文字,选中后可使用键盘快捷键进行复制
\n- 新增在列表可选内容区域鼠标右击时自动复制列表已选文字的功能
\n- 新增在搜索框鼠标右击时自动粘贴剪贴板的文本到搜索框中
\n- 任务下载失败时将显示搜索按钮,方便在其他源搜索该歌曲
\n
\n优化
\n\n- 优化木叶之村主题翻页器背景颜色
\n- 优化各个主题音质标签颜色
\n- 优化其他一些界面细节及用户交互效果
\n
\n修复
\n\n- 修复启用透明窗口鼠标不穿透的bug
\n- 修复大窗口时设置的音乐来源选项不换行的问题
\n- 修复某些情况下暂停任务会自动开始任务的问题
\n- 修复移除暂停、错误的任务时不删除未下载完成的文件的问题
\n- 修复酷狗源歌单热门标签歌单列表无法加载问题
\n- 修复QQ源歌单热门标签歌单列表无法加载问题
\n
\n其他
\n\n"},{"version":"0.15.0","desc":"洛雪提前祝大家新年快乐、身体健康、阖家幸福!
\n修复
\n\n- 修复歌曲下载列表无法加载的问题
\n- 修复歌曲下载任务数大于最大下载任务数的问题
\n- 修复某些情况下歌曲下载错误的问题
\n- 修复下载列表数据没有被迁移直接被丢弃的问题
\n
\n"},{"version":"0.14.1","desc":"洛雪提前祝大家新年快乐、身体健康、阖家幸福!
\n修复
\n\n- 修复由于旧版配置文件迁移出错导致的软件界面无法显示的问题
\n
\n"},{"version":"0.14.0","desc":"洛雪提前祝大家新年快乐、身体健康、阖家幸福!
\n新增
\n\n- 新增各大平台歌单热门标签显示(显示在歌单界面的第一个下拉标签菜单中)
\n- 恢复QQ音乐源128k音质试听
\n- 新增不强制win7开启透明效果即可使用,但要配置运行参数
-nt,例如:.\\lx-music-desktop.exe -nt,添加方法可自行百度“给快捷方式加参数” \n- 新增“新年快乐”主题,可自行切换体验
\n
\n优化
\n\n- 减淡各个主题的歌曲列表分隔线颜色
\n- 在线音乐列表音质标签优化,当歌曲有无损音质时隐藏高品质标签
\n- 更新改进的歌词播放插件,现在歌词的播放显示将更准确
\n
\n修复
\n\n- 修复咪咕源无法搜索的问题
\n- 修复更新弹窗底部文字颜色没有适配当前主题颜色的问题
\n- 修复导入设置窗口大小、代理设置不立即生效的问题
\n- 修复在线音乐列表获取失败时无限循环请求的问题
\n
\n其他
\n\n- 将软件设置与播放列表分离存储成两个文件
\n- 更新 Electron 到 7.1.9
\n
\n"},{"version":"0.13.1","desc":"修复
\n\n其他
\n\n- 由于electron 7.1.3 - 7.1.5 的自动更新功能存在Bug,现降级到7.1.2
\n
\n"},{"version":"0.13.0","desc":"新增
\n\n- 新增搜索框搜索建议键盘上下方向键选择功能
\n- 聚合搜索新增音源显示
\n- 新增“离开搜索界面时清空搜索列表”设置选项,默认关闭,可到设置-强迫症设置开启
\n
\n优化
\n\n修复
\n\n- 修复存在弹出层时,搜索建议列表被弹出层覆盖的问题
\n- 修复搜索、排行榜、歌单列表多选框从不定状态到选中的Bug
\n
\n移除
\n\n其他
\n\n- 更新electron到7.1.5
\n- 更新vue到2.6.11
\n
\n"},{"version":"0.12.1","desc":"优化
\n\n- 优化定位歌曲时的列表滚动机制
\n- 优化链接点击效果
\n
\n修复
\n\n- 修复使用酷我源下载歌曲时,当歌曲无封面时下载报错的问题
\n- 修复酷我源排行榜、歌单详情列表里的歌曲音质匹配问题(原来无论歌曲有无高品、无损都会显示有)
\n- 禁止外部链接在软件内打开,将所有外部链接从默认浏览器打开
\n
\n其他
\n\n"},{"version":"0.12.0","desc":"由于新下载库仍然没有完成,但下载功能已经可用,so 移除之前使用的第三方下载库,暂时把新下载库的下载模块直接加入本程序,若出现下载问题欢迎反馈!
\n新增
\n\n- 新增下载功能对代理设置的支持,现在若在软件设置了代理服务器,下载功能也将会走代理网络了
\n
\n优化
\n\n- 新下载模块将对恢复下载的任务进行字节校验,用于解决下载进度超过100%后仍然下载的问题
\n- 注意:目前仍然无法暂停处于链接获取状态中的任务
\n
\n修复
\n\n- 修复Linux deb版本
.desktop桌面文件缺少图标的问题,新增中文名称显示、软件分类,感谢@lowy的反馈! \n- 修复下载列表歌曲状态分类列表操作Bug
\n- 修复歌曲封面下载失败时仍然执行嵌入封面操作导致报错的问题
\n- 跳过重复添加相同歌曲名与扩展名的歌曲,例如你之前下载了A歌曲的128k音质,现在想要下载它的320k音质,但由于两者都是MP3格式,会因为重名导致之前的128k音质被覆盖但列表中仍然显示两种音质的问题(但实际上都是指向后面的320k音质)
\n
\n"},{"version":"0.11.0","desc":"新增
\n\n- 新增歌曲缓冲定时器,尝试用于解决网络正常但是歌曲缓冲过久的问题
\n- 新增下载管理的任务状态分类
\n- 添加杀毒软件提示有病毒或恶意行为的说明,可到常见问题拉到最后查看(常见问题可在开源地址找到)
\n
\n优化
\n\n- 优化更新弹窗机制及其内容描述,对于可以自动更新的版本,现在可以看到软件的下载进度了
\n
\n"},{"version":"0.10.0","desc":"优化
\n\n- 大幅减少程序播放时对CPU与GPU的使用,经测试CPU使用减少60%以上,GPU使用减少90%以上,这应该能解决MAC系统上的温度上涨的问题
\n
\n修复
\n\n- 修复酷我源搜索提示、排行榜无法获取的问题
\n- 修复咪咕源无法播放的问题
\n
\n"},{"version":"0.9.1","desc":"修复
\n\n"},{"version":"0.9.0","desc":"新增
\n\n- 新增窗口大小设置,若觉得软件窗口小可以到设置页调大点
\n- 新增定位当前播放歌曲,点击播放栏左侧的歌曲图片可在播放列表定位当前播放的歌曲(该功能对播放下载列表的歌曲无效)
\n
\n修复
\n\n- 修复搜索提示失效的问题
\n- 修复从歌单或列表点击搜索按钮搜索目标歌曲时,搜索框未聚焦仍然弹出候选搜索列表的问题
\n
\n"},{"version":"0.8.2","desc":"修复
\n\n- 兼容旧版酷我源搜索列表过滤128k音质的bug(注:0.8.1版本仅修复了酷我源的歌曲过滤问题,该修复仅对以后添加的歌曲有效,如果是之前添加的歌曲仍会出现这个问题,现修复对之前旧列表数据的兼容处理)
\n
\n"},{"version":"0.8.1","desc":"修复
\n\n- 修复酷我源搜索歌曲结果未添加128k音质导致播放128k音质时显示“该歌曲没有可播放的音频”的问题
\n
\n"},{"version":"0.8.0","desc":"新增
\n\n- 新增网易云源歌曲搜索
\n- 新增网易云源歌单
\n- 新增各平台通过输入歌单链接或歌单ID打开歌单详情列表,目前只适配了网页版歌单链接,其他方式的歌单链接可能无法解析,但你可想办法获取歌单ID后输入打开。注:各平台歌单ID均为纯数字,若遇到链接里存在歌单ID但无法解析的歌单链接,可以到GitHub提交issue或发送邮件或加群830125506反馈!
\n- 新增音量调整滑动功能,现在支持鼠标左右拖动调整音量了
\n
\n优化
\n\n- 优化搜索框搜索体验
\n- 优化音量条交互视觉效果
\n- 缓存歌单详情列表数据
\n
\n修复
\n\n- 修复QQ源歌单无法翻页Bug
\n- 修复默认列表没有创建时无法显示收藏列表的Bug
\n- 修复网易云128k直接试听
\n- 修复歌曲音质不存在时仍然播放或下载的Bug
\n- 修复调整音量时,调整的位置与鼠标点击的位置不一致的问题
\n
\n"},{"version":"0.7.0","desc":"新增
\n\n- 新增“我的收藏”本地播放列表
\n- 新增缓存清理功能,可到设置-其他查看与清理软件缓存
\n- 新增QQ音乐源搜索
\n- 新增咪咕源搜索
\n- 新增咪咕源歌单
\n- 新增咪咕源排行榜
\n- 新增我的音乐列表歌曲源显示,默认关闭,可到设置-列表设置开启
\n
\n优化
\n\n- 优化选择框动画效果
\n- 尝试优化选我的音乐列表内容很多时多选的卡顿问题
\n
\n修复
\n\n- 修复列表延迟显示的Bug
\n- 修复QQ音源128k音质试听
\n
\n"},{"version":"0.6.2","desc":"祝贺祖国成立70周年~!
\n新增
\n\n修复
\n\n- 修正火影皮肤名字
\n- 修复当试听列表为空时,无法切到其他界面的Bug
\n- 修复百度源搜索结果为空时的接口处理Bug
\n- 恢复酷狗其他音质播放
\n
\n"},{"version":"0.6.1","desc":"新增
\n\n- 新增试听列表滚动条位置恢复设置(可自动恢复到上次离开时的列表滚动位置),本功能默认开启,若不需要可到设置-列表设置将其关闭
\n- 新增 《海贼王》 皮肤,喜欢个性化的可以试试~
\n
\n优化
\n\n- 新增DNS解析缓存,加快请求速度
\n- 优化代码逻辑,减少软件对系统资源的占用
\n- 优化新版本信息检测,尽量减少弹出版本获取失败弹窗弹出的概率
\n- 优化下拉列表动画效果
\n
\n修复
\n\n- 修复请求超时的逻辑处理Bug,尝试修复请求无法取消导致的正在播放的歌曲与界面显示的信息不一致的问题
\n- 修复其他一些小Bug
\n
\n移除
\n\n- 移除
192k 音质 \n- 移除酷我音源
ape 音质,无损推荐 flac 格式 \n
\n"},{"version":"0.6.0","desc":"新增
\n\n- 新增音乐聚合搜索,目前支持酷我、酷狗、百度源搜索
\n- 新增代理功能
\n
\n优化
\n\n- 优化从《梦里嫦娥》皮肤切换到其他皮肤时侧栏动画的切换效果
\n
\n修复
\n\n- 修复试听列表没有歌曲时会显示列表加载中的Bug
\n- 修复切换歌单列表详情时的UI Bug
\n
\n"},{"version":"0.5.5","desc":"新增
\n\n- 月是故乡明,祝大家中秋快乐🥮~~新增个性皮肤**《月里嫦娥》**,时间仓促,皮肤还不是很完善,可以试试喜不喜欢~😉
\n- 新增 MAC 版本退出快捷键支持
\n- 新增点击播放器中的歌曲标题可以复制标题的功能(遇到好听的歌曲方便分享)
\n
\n修复
\n\n- 修复 MAC 系统下软件关闭时再次从 dock 打开时报错的Bug
\n- 修复下载的歌曲文件名中包含命名规则不允许的符号时下载失败的问题(若歌曲名包含这些符号会自动将其移除)
\n- 修复 MAC 版本不能复制粘贴的问题
\n
\n"},{"version":"0.5.4","desc":"移除
\n\n- 下载的FLAC文件在修改歌曲信息后,软件无法播放,但使用本地播放器可以播放
\n- 为了稳妥起见,暂时移除FLAC格式的meta信息修改
\n- MP3格式无此问题
\n
\n"},{"version":"0.5.3","desc":"优化
\n\n修复
\n\n- 修复试听酷狗源的音乐仍然获取320k音质导致获取失败的Bug
\n
\n"},{"version":"0.5.2","desc":"新增
\n\n- 新增强迫症设置-离开搜索界面时是否清空搜索框
\n- 设置-关于板块新增常见问题链接
\n- 歌单左上角的分类按钮添加一个向下图标,方便识别该按钮为下拉框(该按钮可选择歌单类型,请自行尝试)
\n
\n优化
\n\n- 略微优化最小化按钮字符
\n- 优化试听列表的加载体验,当歌曲数过多时列表将延迟加载
\n
\n修复
\n\n移除
\n\n- 因接口失效,移除网易云音源,酷狗音源仅支持播放128k音质
\n
\n"},{"version":"0.5.1","desc":"新增
\n\n- 新增右上角最小化/关闭按钮鼠标滑过符号
\n- 新增下载列表定位文件按钮
\n
\n修复
\n\n- 修复百度源歌单全部分类无法加载的问题
\n- 修复更新弹窗无法弹出的问题
\n
\n"},{"version":"0.5.0","desc":"新增
\n\n- 新增封面嵌入(默认开启,可到设置-下载设置关闭)
\n- 新增歌词下载(默认关闭,可到设置-下载设置开启)
\n- 新增单例应用功能(实现软件单开功能,禁止软件多开)
\n
\n优化
\n\n修复
\n\n- 修复歌单无法翻页的问题
\n- 修复在某些情况下,添加下载歌曲导致下载列表崩溃的问题
\n- 修复版本更新弹窗Bug
\n- 修复酷狗歌单推荐歌单出现在其他分类中的Bug
\n
\n"},{"version":"0.4.0","desc":"新增
\n\n- 新增歌单功能,目前支持酷我、酷狗、百度源歌单
\n- 在设置界面-关于洛雪音乐说明部分新增最新版网盘下载地址与打赏地址
\n- 新增酷狗 电音热歌榜、DJ热歌榜
\n- 新增版本更新超时功能,对于部分无法访问GitHub的用户做更新超时提醒
\n
\n移除
\n\n- 注意:0.4.0以前的版本即将失效,请更新到0.4.0版本
\n
\n"},{"version":"0.3.5","desc":"新增
\n\n- 新增测试接口,该接口同样速度较慢,但软件的大部分功能可用,请自行切换到该接口,找接口辛苦,且用且珍惜!
\n
\n优化
\n\n- 取消需要刷新URL时windows任务栏进度显示错误状态(现显示为暂停状态)
\n
\n修复
\n\n- 修复使用临时接口时在试听列表双击灰色歌曲仍然会进行播放的Bug
\n- 修复歌词加载Bug
\n
\n"},{"version":"0.3.4","desc":"优化
\n\n- 减少接口不稳定带来的影响,适当增加请求等待时间
\n
\n修复
\n\n- 修复播放过程中URL过期不会刷新URL的问题
\n
\n"},{"version":"0.3.3","desc":"修复
\n\n- messoer的接口已经关闭,暂时切换到临时接口使用,部分功能受限。。。
\n- 修复设置界面更新出错时仍然显示更新下载中的问题
\n- 修复手动定位播放进度条时存在偏差的问题
\n- 屏蔽播放器中没有歌曲时对进度条的点击
\n
\n"},{"version":"0.3.2","desc":"新增
\n\n"},{"version":"0.3.1","desc":"修复
\n\n"},{"version":"0.3.0","desc":"新增
\n\n- 新增MAC及Linux版本(需要的可自行下载)
\n- 新增音量调整
\n- 新增任务栏播放进度条控制选项(现在可在设置界面关闭在任务栏显示的播放进度)
\n- 新增更新出错时的弹窗提示
\n- 从该版本起,非安装版也会有更新弹窗提醒了,但仍然需要手动下载新版本更新,版本信息可到设置页面查看
\n
\n修复
\n\n- 强制把临时接口设置回
messoer 接口 \n
\n"},{"version":"0.2.3","desc":"新增
\n\n- 新增任务栏程序标题改变功能(播放歌曲时任务栏标题将显示当前播放的歌曲)
\n
\n修复
\n\n- 使用临时接口时,试听列表中的下载按钮仍然能点击的Bug
\n- 修复某些情况下歌曲链接未能缓存的问题
\n
\n移除
\n\n- 移除临时接口(因服务器被攻击,本接口已关闭)
\n- 移除列表栏设置的隐藏专辑栏选项(感觉这个设置并没有什么luan用,并且还会打破布局)
\n
\n"},{"version":"0.2.2","desc":"修复
\n\n- 修复下载过程中出错重试5次都失败后不会自动开始下一个任务的Bug
\n- 修复播放到一半URL过期时不会刷新URL直接播放下一首的问题
\n
\n"},{"version":"0.2.1","desc":"优化
\n\n- 新增歌曲URL存储,当URL无效时才重新获取,以减少接口不稳定的影响
\n
\n修复
\n\n- 修复歌曲加载无法加载时自动切换混乱的Bug
\n- 修复移除列表最后一首歌曲时播放器不停止播放的问题
\n
\n"},{"version":"0.2.0","desc":"新增
\n\n- 新增百度音乐排行榜及其音乐直接试听与下载
\n- 新增网易云排行榜音乐直接试听与下载(目前仅支持128k音质)
\n- 新增酷狗排行榜音乐直接试听与下载(目前仅支持128k音质)
\n
\n修复
\n\n- 修复更新弹窗历史版本描述多余的换行问题
\n- 修复歌曲无法播放的情况下歌词仍会播放的问题
\n
\n"},{"version":"0.1.6","desc":"修复
\n\n"},{"version":"0.1.5","desc":"新增
\n\n- 新增搜索列表批量试听与下载功能
\n- 新增排行榜列表批量试听与下载功能
\n- 新增试听列表批量移除与下载功能
\n- 新增下载列表批量开始、暂停与移除功能
\n
\n优化
\n\n"},{"version":"0.1.4","desc":"新增
\n\n- 新增音乐来源切换,可到设置页面-基本设置 look look !
\n- 为搜索结果列表添加多选功能。
\nP.S:暂时没想好多选后的操作按钮放哪… \n
\n优化
\n\n- 重构与改进checkbox组件,使其支持不定选中状态
\n- 完善上一个版本的http请求封装并切换部分请求到该方法上
\n- 优化其他一些细节
\n
\n"},{"version":"0.1.3","desc":"新增
\n\n修复
\n\n- 修复安装包许可协议乱码问题
\n- messoer 提供的接口已挂,暂时切换到临时接口!
\n
\n移除
\n\n- 由于messoer接口无法使用,QQ音乐排行榜直接播放/下载功能暂时关闭
\n
\n"},{"version":"0.1.2","desc":"修复
\n\n"},{"version":"0.1.1","desc":"新增
\n\n- QQ音乐排行榜直接试听与下载(该接口貌似不太稳定,且用且珍惜!)
\n
\n优化
\n\n- 优化http请求机制
\n- 更新关于本软件说明
\n
\n修复
\n\n- 修复当上一个歌曲链接正在获取时切换歌曲请求不会取消的问题
\n- 修复切换歌曲时仍然播放上一首歌曲的问题
\n
\n"},{"version":"0.1.0","desc":"0.1.0版本发布"}]}
diff --git a/resources/icons/128x128.png b/resources/icons/128x128.png
new file mode 100644
index 00000000..712f00b9
Binary files /dev/null and b/resources/icons/128x128.png differ
diff --git a/resources/icons/16x16.png b/resources/icons/16x16.png
new file mode 100644
index 00000000..ad606439
Binary files /dev/null and b/resources/icons/16x16.png differ
diff --git a/resources/icons/256x256.ico b/resources/icons/256x256.ico
deleted file mode 100644
index a961683d..00000000
Binary files a/resources/icons/256x256.ico and /dev/null differ
diff --git a/resources/icons/256x256.png b/resources/icons/256x256.png
new file mode 100644
index 00000000..e18bf76b
Binary files /dev/null and b/resources/icons/256x256.png differ
diff --git a/resources/icons/32x32.png b/resources/icons/32x32.png
new file mode 100644
index 00000000..056d227c
Binary files /dev/null and b/resources/icons/32x32.png differ
diff --git a/resources/icons/48x48.png b/resources/icons/48x48.png
new file mode 100644
index 00000000..b1b79a44
Binary files /dev/null and b/resources/icons/48x48.png differ
diff --git a/resources/icons/512x512.icns b/resources/icons/512x512.icns
deleted file mode 100644
index 8bb1977e..00000000
Binary files a/resources/icons/512x512.icns and /dev/null differ
diff --git a/resources/icons/512x512.png b/resources/icons/512x512.png
index 6f6e3c39..55d51d3f 100644
Binary files a/resources/icons/512x512.png and b/resources/icons/512x512.png differ
diff --git a/resources/icons/64x64.png b/resources/icons/64x64.png
new file mode 100644
index 00000000..675af9d3
Binary files /dev/null and b/resources/icons/64x64.png differ
diff --git a/resources/icons/icon.icns b/resources/icons/icon.icns
new file mode 100644
index 00000000..1c6cdb74
Binary files /dev/null and b/resources/icons/icon.icns differ
diff --git a/resources/icons/icon.ico b/resources/icons/icon.ico
new file mode 100644
index 00000000..15deebfd
Binary files /dev/null and b/resources/icons/icon.ico differ
diff --git a/resources/icons/icon.png b/resources/icons/icon.png
new file mode 100644
index 00000000..55d51d3f
Binary files /dev/null and b/resources/icons/icon.png differ
diff --git a/src/common/defaultSetting.js b/src/common/defaultSetting.js
index f261cbf7..4e31bd59 100644
--- a/src/common/defaultSetting.js
+++ b/src/common/defaultSetting.js
@@ -35,7 +35,6 @@ const defaultSetting = {
list: {
isShowAlbumName: true,
isShowSource: true,
- prevSelectListId: 'default',
isSaveScrollLocation: true,
addMusicLocationType: 'top',
},
diff --git a/src/common/utils.js b/src/common/utils.js
index be18ffed..08e8dc97 100644
--- a/src/common/utils.js
+++ b/src/common/utils.js
@@ -153,8 +153,8 @@ exports.initSetting = isShowErrorAlert => {
// 迁移列表滚动位置设置 ~0.18.3
if (setting.list.scroll) {
let scroll = setting.list.scroll
- electronStore_list.set('defaultList.location', scroll.locations.default || 0)
- electronStore_list.set('loveList.location', scroll.locations.love || 0)
+ // electronStore_list.set('defaultList.location', scroll.locations.default || 0)
+ // electronStore_list.set('loveList.location', scroll.locations.love || 0)
electronStore_config.delete('setting.list.scroll')
electronStore_config.set('setting.list.isSaveScrollLocation', scroll.enable)
delete setting.list.scroll
diff --git a/src/main/modules/sync/server/server.js b/src/main/modules/sync/server/server.js
index aed2d2c3..645e0557 100644
--- a/src/main/modules/sync/server/server.js
+++ b/src/main/modules/sync/server/server.js
@@ -5,6 +5,7 @@ const modules = require('../modules')
const { authCode, authConnect } = require('./auth')
const { getAddress, getServerId, generateCode, getClientKeyInfo } = require('./utils')
const syncList = require('./syncList')
+const { log } = require('@common/utils')
let status = {
@@ -88,7 +89,8 @@ const handleStartServer = (port = 9527) => new Promise((resolve, reject) => {
try {
await syncList(io, socket)
} catch (err) {
- console.log(err)
+ // console.log(err)
+ log.warn(err)
return
}
status.devices.push(keyInfo)
diff --git a/src/main/modules/sync/server/syncList.js b/src/main/modules/sync/server/syncList.js
index 5897e385..69b68468 100644
--- a/src/main/modules/sync/server/syncList.js
+++ b/src/main/modules/sync/server/syncList.js
@@ -260,10 +260,7 @@ const mergeListDataFromSnapshot = (sourceList, targetList, snapshotList, addMusi
for (const m of sourceList.list) sourceListItemIds.add(m.songmid)
for (const m of targetList.list) targetListItemIds.add(m.songmid)
for (const m of snapshotList.list) {
- if (!sourceListItemIds.has(m.songmid)) removedListIds.add(m.songmid)
- }
- for (const m of snapshotList.list) {
- if (!targetListItemIds.has(m.songmid)) removedListIds.add(m.songmid)
+ if (!sourceListItemIds.has(m.songmid) || !targetListItemIds.has(m.songmid)) removedListIds.add(m.songmid)
}
let newList
@@ -311,10 +308,7 @@ const handleMergeListDataFromSnapshot = async(socket, snapshot) => {
for (const l of remoteListData.userList) remoteUserListIds.add(l.id)
for (const l of snapshot.userList) {
- if (!localUserListIds.has(l.id)) removedListIds.add(l.id)
- }
- for (const l of snapshot.userList) {
- if (!remoteUserListIds.has(l.id)) removedListIds.add(l.id)
+ if (!localUserListIds.has(l.id) || !remoteUserListIds.has(l.id)) removedListIds.add(l.id)
}
let newUserList = []
@@ -353,7 +347,7 @@ const registerUpdateSnapshotTask = (socket, snapshot) => {
if (loveList != null) snapshot.loveList = loveList
if (userList != null) snapshot.userList = userList
updateSnapshot(socket.data.snapshotFilePath, JSON.stringify(snapshot))
- }, 10000)
+ }, 2000)
global.lx_event.common.on(COMMON_EVENT_NAME.saveMyList, handleUpdateSnapshot)
socket.on('disconnect', () => {
global.lx_event.common.off(COMMON_EVENT_NAME.saveMyList, handleUpdateSnapshot)
diff --git a/src/main/modules/tray.js b/src/main/modules/tray.js
index 57827b03..d6c081cc 100644
--- a/src/main/modules/tray.js
+++ b/src/main/modules/tray.js
@@ -1,5 +1,5 @@
-const { app, Tray, Menu } = require('electron')
-const { isWin } = require('../../common/utils')
+const { app, Tray, Menu, nativeImage } = require('electron')
+// const { isWin } = require('../../common/utils')
const { tray: TRAY_EVENT_NAME, common: COMMON_EVENT_NAME, mainWindow: MAIN_WINDOW_NAME } = require('../events/_name')
const path = require('path')
let isEnableTray = null
@@ -7,12 +7,17 @@ let themeId = null
const themeList = [
{
id: 0,
- fileName: 'tray0Template',
+ fileName: 'trayTemplate',
isNative: true,
},
{
id: 1,
- fileName: 'tray1Template',
+ fileName: 'tray_origin',
+ isNative: false,
+ },
+ {
+ id: 2,
+ fileName: 'tray_black',
isNative: false,
},
]
@@ -43,11 +48,11 @@ const createTray = () => {
if ((global.modules.tray && !global.modules.tray.isDestroyed()) || !global.appSetting.tray || !global.appSetting.tray.isShow) return
themeId = global.appSetting.tray.themeId
- let themeName = (themeList.find(item => item.id === themeId) || themeList[0]).fileName
- const iconPath = path.join(global.__static, 'images/tray', isWin ? themeName + '@2x.ico' : themeName + '.png')
+ let theme = themeList.find(item => item.id === themeId) || themeList[0]
+ const iconPath = path.join(global.__static, 'images/tray', theme.fileName + '.png')
// 托盘
- global.modules.tray = new Tray(iconPath)
+ global.modules.tray = new Tray(nativeImage.createFromPath(iconPath))
global.modules.tray.setToolTip('洛雪音乐助手')
createMenu(global.modules.tray)
@@ -140,7 +145,7 @@ const createMenu = tray => {
const setTrayImage = themeId => {
if (!global.modules.tray) return
- let themeName = (themeList.find(item => item.id === themeId) || themeList[0]).fileName
- const iconPath = path.join(global.__static, 'images/tray', isWin ? themeName + '@2x.ico' : themeName + '.png')
- global.modules.tray.setImage(iconPath)
+ let theme = themeList.find(item => item.id === themeId) || themeList[0]
+ const iconPath = path.join(global.__static, 'images/tray', theme.fileName + '.png')
+ global.modules.tray.setImage(nativeImage.createFromPath(iconPath))
}
diff --git a/src/main/modules/userApi/renderer/preload.js b/src/main/modules/userApi/renderer/preload.js
index f0b0793e..8e520e4c 100644
--- a/src/main/modules/userApi/renderer/preload.js
+++ b/src/main/modules/userApi/renderer/preload.js
@@ -66,6 +66,7 @@ const handleRequest = (context, { requestKey, data }) => {
*
* @param {*} context
* @param {*} info {
+ * openDevTools: false,
* status: true,
* message: 'xxx',
* sources: {
@@ -184,7 +185,7 @@ contextBridge.exposeInMainWorld('lx', {
utils: {
crypto: {
aesEncrypt(buffer, mode, key, iv) {
- const cipher = createCipheriv('aes-128-' + mode, key, iv)
+ const cipher = createCipheriv(mode, key, iv)
return Buffer.concat([cipher.update(buffer), cipher.final()])
},
rsaEncrypt(buffer, key) {
@@ -202,8 +203,12 @@ contextBridge.exposeInMainWorld('lx', {
from(...args) {
return Buffer.from(...args)
},
+ bufToString(buf, format) {
+ return Buffer.from(buf, 'binary').toString(format)
+ },
},
},
+ version: '1.1.0',
// removeEvent(eventName, handler) {
// if (!eventNames.includes(eventName)) return Promise.reject(new Error('The event is not supported: ' + eventName))
// let handlers
diff --git a/src/main/modules/userApi/utils/index.js b/src/main/modules/userApi/utils/index.js
index 3e0f9256..27aa183e 100644
--- a/src/main/modules/userApi/utils/index.js
+++ b/src/main/modules/userApi/utils/index.js
@@ -19,9 +19,9 @@ exports.importApi = script => {
let name = scriptInfo[1] || ''
let description = scriptInfo[2] || ''
name = name.startsWith(' * @name ') ? name.replace(' * @name ', '').trim() : `user_api_${new Date().toLocaleString()}`
- if (name.length > 10) name = name.substring(0, 10) + '...'
+ if (name.length > 24) name = name.substring(0, 24) + '...'
description = description.startsWith(' * @description ') ? description.replace(' * @description ', '').trim() : ''
- if (description.length > 20) description = description.substring(0, 20) + '...'
+ if (description.length > 36) description = description.substring(0, 36) + '...'
const apiInfo = {
id: `user_api_${Math.random().toString().substring(2, 5)}_${Date.now()}`,
name,
diff --git a/src/renderer-lyric/App.vue b/src/renderer-lyric/App.vue
index 14efddd3..455e45f4 100644
--- a/src/renderer-lyric/App.vue
+++ b/src/renderer-lyric/App.vue
@@ -5,14 +5,14 @@
.control-bar(v-show="!lrcConfig.isLock")
core-control-bar(:lrcConfig="lrcConfig" :themes="themeList")
core-lyric(:lrcConfig="lrcConfig" :isPlayLxlrc="isPlayLxlrc" :isShowLyricTranslation="isShowLyricTranslation")
- div.resize-left(@mousedown.self="handleMouseDown('left', $event)")
- div.resize-top(@mousedown.self="handleMouseDown('top', $event)")
- div.resize-right(@mousedown.self="handleMouseDown('right', $event)")
- div.resize-bottom(@mousedown.self="handleMouseDown('bottom', $event)")
- div.resize-top-left(@mousedown.self="handleMouseDown('top-left', $event)")
- div.resize-top-right(@mousedown.self="handleMouseDown('top-right', $event)")
- div.resize-bottom-left(@mousedown.self="handleMouseDown('bottom-left', $event)")
- div.resize-bottom-right(@mousedown.self="handleMouseDown('bottom-right', $event)")
+ div.resize-left(@mousedown.self="handleMouseDown('left', $event)" @touchstart.self="handleTouchDown('left', $event)")
+ div.resize-top(@mousedown.self="handleMouseDown('top', $event)" @touchstart.self="handleTouchDown('top', $event)")
+ div.resize-right(@mousedown.self="handleMouseDown('right', $event)" @touchstart.self="handleTouchDown('right', $event)")
+ div.resize-bottom(@mousedown.self="handleMouseDown('bottom', $event)" @touchstart.self="handleTouchDown('bottom', $event)")
+ div.resize-top-left(@mousedown.self="handleMouseDown('top-left', $event)" @touchstart.self="handleTouchDown('top-left', $event)")
+ div.resize-top-right(@mousedown.self="handleMouseDown('top-right', $event)" @touchstart.self="handleTouchDown('top-right', $event)")
+ div.resize-bottom-left(@mousedown.self="handleMouseDown('bottom-left', $event)" @touchstart.self="handleTouchDown('bottom-left', $event)")
+ div.resize-bottom-right(@mousedown.self="handleMouseDown('bottom-right', $event)" @touchstart.self="handleTouchDown('bottom-right', $event)")
core-icons
@@ -116,16 +116,34 @@ export default {
this.isPlayLxlrc = isPlayLxlrc
if (this.$i18n.locale !== languageId && languageId != null) this.$i18n.locale = languageId
},
- handleMouseDown(origin, event) {
+ handleDown(origin, clientX, clientY) {
this.handleMouseUp()
this.resize.origin = origin
- this.resize.msDownX = event.clientX
- this.resize.msDownY = event.clientY
+ this.resize.msDownX = clientX
+ this.resize.msDownY = clientY
},
handleMouseUp() {
this.resize.origin = null
},
+ handleMouseDown(origin, event) {
+ this.handleDown(origin, event.clientX, event.clientY)
+ },
+ handleTouchDown(origin, event) {
+ if (event.changedTouches.length) {
+ const touch = event.changedTouches[0]
+ this.handleDown(origin, touch.clientX, touch.clientY)
+ }
+ },
handleMouseMove(event) {
+ this.handleMove(event.clientX, event.clientY)
+ },
+ handleTouchMove(event) {
+ if (event.changedTouches.length) {
+ const touch = event.changedTouches[0]
+ this.handleMove(touch.clientX, touch.clientY)
+ }
+ },
+ handleMove(clientX, clientY) {
if (!this.resize.origin) return
// if (!event.target.classList.contains('resize-' + this.resize.origin)) return
// console.log(event.target)
@@ -136,49 +154,49 @@ export default {
let temp
switch (this.resize.origin) {
case 'left':
- temp = event.clientX - this.resize.msDownX
+ temp = clientX - this.resize.msDownX
bounds.w = -temp
bounds.x = temp
break
case 'right':
- bounds.w = event.clientX - this.resize.msDownX
+ bounds.w = clientX - this.resize.msDownX
this.resize.msDownX += bounds.w
break
case 'top':
- temp = event.clientY - this.resize.msDownY
+ temp = clientY - this.resize.msDownY
bounds.y = temp
bounds.h = -temp
break
case 'bottom':
- bounds.h = event.clientY - this.resize.msDownY
+ bounds.h = clientY - this.resize.msDownY
this.resize.msDownY += bounds.h
break
case 'top-left':
- temp = event.clientX - this.resize.msDownX
+ temp = clientX - this.resize.msDownX
bounds.w = -temp
bounds.x = temp
- temp = event.clientY - this.resize.msDownY
+ temp = clientY - this.resize.msDownY
bounds.y = temp
bounds.h = -temp
break
case 'top-right':
- temp = event.clientY - this.resize.msDownY
+ temp = clientY - this.resize.msDownY
bounds.y = temp
bounds.h = -temp
- bounds.w = event.clientX - this.resize.msDownX
+ bounds.w = clientX - this.resize.msDownX
this.resize.msDownX += bounds.w
break
case 'bottom-left':
- temp = event.clientX - this.resize.msDownX
+ temp = clientX - this.resize.msDownX
bounds.w = -temp
bounds.x = temp
- bounds.h = event.clientY - this.resize.msDownY
+ bounds.h = clientY - this.resize.msDownY
this.resize.msDownY += bounds.h
break
case 'bottom-right':
- bounds.w = event.clientX - this.resize.msDownX
+ bounds.w = clientX - this.resize.msDownX
this.resize.msDownX += bounds.w
- bounds.h = event.clientY - this.resize.msDownY
+ bounds.h = clientY - this.resize.msDownY
this.resize.msDownY += bounds.h
break
}
@@ -187,9 +205,9 @@ export default {
bounds.h = window.innerHeight + bounds.h
rendererSend(NAMES.winLyric.set_win_bounds, bounds)
},
- handleMouseOver() {
- // this.handleMouseUp()
- },
+ // handleMouseOver() {
+ // // this.handleMouseUp()
+ // },
},
}
diff --git a/src/renderer-lyric/components/core/Lyric.vue b/src/renderer-lyric/components/core/Lyric.vue
index f2597ea3..e55e9f41 100644
--- a/src/renderer-lyric/components/core/Lyric.vue
+++ b/src/renderer-lyric/components/core/Lyric.vue
@@ -1,5 +1,6 @@
-div(:class="[$style.lyric, { [$style.draging]: lyricEvent.isMsDown }, { [$style.lrcActiveZoom]: lrcConfig.style.isZoomActiveLrc } ]" :style="lrcStyles" @wheel="handleWheel" @mousedown="handleLyricMouseDown" ref="dom_lyric")
+div(:class="[$style.lyric, { [$style.draging]: lyricEvent.isMsDown }, { [$style.lrcActiveZoom]: lrcConfig.style.isZoomActiveLrc } ]"
+ :style="lrcStyles" @wheel="handleWheel" @mousedown="handleLyricMouseDown" @touchstart="handleLyricTouchStart" ref="dom_lyric")
div(:class="$style.lyricSpace")
div(:class="[$style.lyricText]" ref="dom_lyric_text")
//- div(v-for="(info, index) in lyricLines" :key="index" :class="[$style.lineContent, lyric.line == index ? (lrcConfig.style.isZoomActiveLrc ? $style.lrcActiveZoom : $style.lrcActive) : null]")
@@ -167,12 +168,16 @@ export default {
mounted() {
document.addEventListener('mousemove', this.handleMouseMsMove)
document.addEventListener('mouseup', this.handleMouseMsUp)
+ document.addEventListener('touchmove', this.handleTouchMove)
+ document.addEventListener('touchend', this.handleMouseMsUp)
rendererSend(NAMES.winLyric.get_lyric_info, 'info')
},
beforeDestroy() {
this.clearLyricScrollTimeout()
document.removeEventListener('mousemove', this.handleMouseMsMove)
document.removeEventListener('mouseup', this.handleMouseMsUp)
+ document.removeEventListener('touchmove', this.handleTouchMove)
+ document.removeEventListener('touchend', this.handleMouseMsUp)
},
methods: {
handleSetInfo({ type, data }) {
@@ -234,49 +239,59 @@ export default {
let dom_p = this.dom_lines[this.lyric.line]
cancelScrollFn = scrollTo(this.$refs.dom_lyric, dom_p ? (dom_p.offsetTop - this.$refs.dom_lyric.clientHeight * 0.5 + dom_p.clientHeight / 2) : 0)
},
- handleLyricMouseDown(e) {
- if (e.target.classList.contains('font') ||
- e.target.parentNode.classList.contains('font') ||
- e.target.classList.contains('translation') ||
- e.target.parentNode.classList.contains('translation')) {
+ handleLyricDown(target, x, y) {
+ if (target.classList.contains('font') ||
+ target.parentNode.classList.contains('font') ||
+ target.classList.contains('translation') ||
+ target.parentNode.classList.contains('translation')) {
this.lyricEvent.isMsDown = true
- this.lyricEvent.msDownY = e.clientY
+ this.lyricEvent.msDownY = y
this.lyricEvent.msDownScrollY = this.$refs.dom_lyric.scrollTop
} else {
this.winEvent.isMsDown = true
- this.winEvent.msDownX = e.clientX
- this.winEvent.msDownY = e.clientY
+ this.winEvent.msDownX = x
+ this.winEvent.msDownY = y
+ }
+ },
+ handleLyricMouseDown(e) {
+ this.handleLyricDown(e.target, e.clientX, e.clientY)
+ },
+ handleLyricTouchStart(e) {
+ if (e.changedTouches.length) {
+ const touch = e.changedTouches[0]
+ this.handleLyricDown(e.target, touch.clientX, touch.clientY)
}
},
handleMouseMsUp(e) {
this.lyricEvent.isMsDown = false
this.winEvent.isMsDown = false
},
- handleMouseMsMove(e) {
+ handleMove(x, y) {
if (this.lyricEvent.isMsDown) {
if (!this.lyricEvent.isStopScroll) this.lyricEvent.isStopScroll = true
if (cancelScrollFn) {
cancelScrollFn()
cancelScrollFn = null
}
- this.$refs.dom_lyric.scrollTop = this.lyricEvent.msDownScrollY + this.lyricEvent.msDownY - e.clientY
+ this.$refs.dom_lyric.scrollTop = this.lyricEvent.msDownScrollY + this.lyricEvent.msDownY - y
this.startLyricScrollTimeout()
} else if (this.winEvent.isMsDown) {
rendererSend(NAMES.winLyric.set_win_bounds, {
- x: e.clientX - this.winEvent.msDownX,
- y: e.clientY - this.winEvent.msDownY,
+ x: x - this.winEvent.msDownX,
+ y: y - this.winEvent.msDownY,
w: window.innerWidth,
h: window.innerHeight,
})
}
-
- // if (this.volumeEvent.isMsDown) {
- // let val = this.volumeEvent.msDownValue + (e.clientX - this.volumeEvent.msDownX) / 70
- // this.volume = val < 0 ? 0 : val > 1 ? 1 : val
- // if (this.audio) this.audio.volume = this.volume
- // }
-
- // console.log(val)
+ },
+ handleTouchMove(e) {
+ if (e.changedTouches.length) {
+ const touch = e.changedTouches[0]
+ this.handleMove(touch.clientX, touch.clientY)
+ }
+ },
+ handleMouseMsMove(e) {
+ this.handleMove(e.clientX, e.clientY)
},
startLyricScrollTimeout() {
this.clearLyricScrollTimeout()
diff --git a/src/renderer/App.vue b/src/renderer/App.vue
index d1c05a27..64645594 100644
--- a/src/renderer/App.vue
+++ b/src/renderer/App.vue
@@ -29,6 +29,7 @@ import music from './utils/music'
import { throttle, openUrl, compareVer, getPlayList, parseUrlParams, saveSetting } from './utils'
import { base as eventBaseName, sync as eventSyncName } from './event/names'
import apiSourceInfo from './utils/music/api-source-info'
+import { initListPosition, initListPrevSelectId } from '@renderer/utils/data'
window.ELECTRON_DISABLE_SECURITY_WARNINGS = process.env.ELECTRON_DISABLE_SECURITY_WARNINGS
@@ -338,6 +339,8 @@ export default {
return Promise.all([
this.initMyList(), // 初始化播放列表
this.initSearchHistoryList(), // 初始化搜索历史列表
+ initListPosition(), // 列表位置记录
+ initListPrevSelectId(), // 上次选中的列表记录
])
// this.initDownloadList() // 初始化下载列表
},
diff --git a/src/renderer/assets/styles/index.less b/src/renderer/assets/styles/index.less
index db861e80..b045c5a3 100644
--- a/src/renderer/assets/styles/index.less
+++ b/src/renderer/assets/styles/index.less
@@ -1,5 +1,7 @@
@import './reset.less';
@import './animate.less';
+@import './layout.less';
+
*, *::after, *::before {
-webkit-user-drag: none;
}
@@ -72,6 +74,45 @@ table {
}
}
+.list {
+ width: 100%;
+ overflow: hidden;
+ color: @color-theme_2-font;
+ .list-item {
+ height: 100%;
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+ // border-top: 1px solid rgba(0, 0, 0, 0.12);
+ transition: background-color 0.2s ease;
+ border-bottom: 1px solid @color-theme_2-line;
+ box-sizing: border-box;
+ &:hover {
+ background-color: @color-theme_2-hover;
+ }
+ &.active {
+ background-color: @color-theme_2-active;
+ }
+ &.selected {
+ background-color: @color-theme_2-hover;
+ }
+ .list-item-cell {
+ flex: none;
+ padding: 0 6px;
+ position: relative;
+ transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+ font-size: 13px;
+ line-height: 16px;
+ vertical-align: middle;
+ box-sizing: border-box;
+ .mixin-ellipsis-1;
+
+ &.auto {
+ flex: auto;
+ }
+ }
+ }
+}
.badge {
display: inline-block;
@@ -240,6 +281,22 @@ each(@themes, {
}
}
+ .list {
+ color: ~'@{color-@{value}-theme_2-font}';
+ .list-item {
+ border-bottom-color: ~'@{color-@{value}-theme_2-line}';
+ &:hover {
+ background-color: ~'@{color-@{value}-theme_2-hover}';
+ }
+ &.active {
+ background-color: ~'@{color-@{value}-theme_2-active}';
+ }
+ &.selected {
+ background-color: ~'@{color-@{value}-theme_2-hover}';
+ }
+ }
+ }
+
input, textarea {
&::placeholder {
color: ~'@{color-@{value}-theme_2-font-label}';
diff --git a/src/renderer/components/core/Aside.vue b/src/renderer/components/core/Aside.vue
index 4bef41a1..f3210d98 100644
--- a/src/renderer/components/core/Aside.vue
+++ b/src/renderer/components/core/Aside.vue
@@ -35,7 +35,7 @@ div(:class="$style.aside")
dl
//- dt {{$t('core.aside.my_music')}}
dd
- router-link(:active-class="$style.active" :tips="$t('core.aside.my_list')" :to="`list?id=${setting.list.prevSelectListId || defaultList.id}`")
+ router-link(:active-class="$style.active" to="list" :tips="$t('core.aside.my_list')")
div(:class="$style.icon")
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' viewBox='0 0 444.87 391.18' space='preserve')
use(xlink:href='#icon-love')
diff --git a/src/renderer/components/core/Player.vue b/src/renderer/components/core/Player.vue
index 541d1f5a..4a02fc1a 100644
--- a/src/renderer/components/core/Player.vue
+++ b/src/renderer/components/core/Player.vue
@@ -5,7 +5,7 @@ div(:class="$style.player")
svg(v-else version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='102%' width='100%' viewBox='0 0 60 60' space='preserve')
use(:xlink:href='`#${$style.iconPic}`')
div(:class="$style.middle")
- div(:class="$style.middleContainer" v-if="!isShowPlayerDetail")
+ div(:class="$style.middleContainer")
div(:class="$style.column1")
div(:class="$style.container")
div(:class="$style.title" @click="handleCopy(title)" :tips="title + $t('core.player.copy_title')") {{title}}
@@ -64,7 +64,7 @@ div(:class="$style.player")
//- transition(enter-active-class="animated lightSpeedIn"
transition(enter-active-class="animated lightSpeedIn"
leave-active-class="animated slideOutDown")
- core-player-detail(v-if="isShowPlayerDetail" :musicInfo="listId == 'download' ? targetSong.musicInfo : targetSong"
+ core-player-detail(v-if="isShowPlayerDetail" :visible.sync="isShowPlayerDetail" :musicInfo="listId == 'download' ? targetSong.musicInfo : targetSong"
:lyric="lyric" :list="list" :listId="listId"
:playInfo="{ nowPlayTimeStr, maxPlayTimeStr, progress, nowPlayTime, status }"
:isPlay="isPlay" @action="handlePlayDetailAction"
@@ -141,11 +141,12 @@ export default {
playTime: 0,
},
isShowAddMusicTo: false,
+ isShowPlayerDetail: false,
}
},
computed: {
...mapGetters(['setting']),
- ...mapGetters('player', ['list', 'changePlay', 'playMusicInfo', 'isShowPlayerDetail', 'playInfo', 'playedList']),
+ ...mapGetters('player', ['list', 'changePlay', 'playMusicInfo', 'playInfo', 'playedList']),
// pic() {
// return this.musicInfo.img ? this.musicInfo.img : ''
// },
@@ -340,7 +341,6 @@ export default {
'setPlayMusicInfo',
'setPlayIndex',
'resetChangePlay',
- 'visiblePlayerDetail',
'clearPlayedList',
'setPlayedList',
]),
@@ -769,7 +769,7 @@ export default {
},
showPlayerDetail() {
if (!this.targetSong) return
- this.visiblePlayerDetail(true)
+ this.isShowPlayerDetail = true
},
handleTransitionEnd(e) {
// console.log(e)
diff --git a/src/renderer/components/core/PlayerDetail.vue b/src/renderer/components/core/PlayerDetail.vue
index e1881d27..e9bc90ad 100644
--- a/src/renderer/components/core/PlayerDetail.vue
+++ b/src/renderer/components/core/PlayerDetail.vue
@@ -4,7 +4,7 @@
//- div(:class="$style.bg2")
div(:class="$style.header")
div(:class="$style.controBtn")
- button(type="button" :class="$style.hide" :tips="$t('core.player.hide_detail')" @click="visiblePlayerDetail(false)")
+ button(type="button" :class="$style.hide" :tips="$t('core.player.hide_detail')" @click="hide")
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='80%' viewBox='0 0 30.727 30.727' space='preserve')
use(xlink:href='#icon-window-hide')
button(type="button" :class="$style.min" :tips="$t('core.toolbar.min')" @click="min")
@@ -96,7 +96,7 @@
diff --git a/src/renderer/lang/en-us/view/setting.json b/src/renderer/lang/en-us/view/setting.json
index ee5b2930..b648ae86 100644
--- a/src/renderer/lang/en-us/view/setting.json
+++ b/src/renderer/lang/en-us/view/setting.json
@@ -120,6 +120,7 @@
"other_resource_cache_clear_btn": "Clear resource cache",
"other_resource_cache_label": "The software has used cache size: ",
"other_tray_theme": "Tray Icon Style",
+ "other_tray_theme_black": "Black Color",
"other_tray_theme_native": "Solid Color",
"other_tray_theme_origin": "Primary Color",
"play": "Play",
diff --git a/src/renderer/lang/zh-cn/view/setting.json b/src/renderer/lang/zh-cn/view/setting.json
index 9b01c238..944cd47d 100644
--- a/src/renderer/lang/zh-cn/view/setting.json
+++ b/src/renderer/lang/zh-cn/view/setting.json
@@ -120,6 +120,7 @@
"other_resource_cache_clear_btn": "清理资源缓存",
"other_resource_cache_label": "软件已使用缓存大小:",
"other_tray_theme": "托盘图标样式",
+ "other_tray_theme_black": "黑色",
"other_tray_theme_native": "纯色",
"other_tray_theme_origin": "原色",
"play": "播放设置",
diff --git a/src/renderer/lang/zh-tw/view/setting.json b/src/renderer/lang/zh-tw/view/setting.json
index 95e523a0..9297c126 100644
--- a/src/renderer/lang/zh-tw/view/setting.json
+++ b/src/renderer/lang/zh-tw/view/setting.json
@@ -120,6 +120,7 @@
"other_resource_cache_clear_btn": "清理資源緩存",
"other_resource_cache_label": "軟件已使用緩存大小:",
"other_tray_theme": "托盤圖標樣式",
+ "other_tray_theme_black": "黑色",
"other_tray_theme_native": "純色",
"other_tray_theme_origin": "原色",
"play": "播放設置",
diff --git a/src/renderer/main.js b/src/renderer/main.js
index 2ad40edb..8ef83b07 100644
--- a/src/renderer/main.js
+++ b/src/renderer/main.js
@@ -1,5 +1,5 @@
import Vue from 'vue'
-import { sync } from 'vuex-router-sync'
+// import { sync } from 'vuex-router-sync'
import './event'
@@ -20,7 +20,7 @@ import { getSetting } from './utils'
import languageList from '@renderer/lang/languages.json'
import { rendererSend, NAMES } from '../common/ipc'
-sync(store, router)
+// sync(store, router)
Vue.config.productionTip = false
Vue.config.devtools = process.env.NODE_ENV === 'development'
diff --git a/src/renderer/plugins/Dialog/Dialog.vue b/src/renderer/plugins/Dialog/Dialog.vue
index 1d061d44..e5628f4f 100644
--- a/src/renderer/plugins/Dialog/Dialog.vue
+++ b/src/renderer/plugins/Dialog/Dialog.vue
@@ -61,6 +61,7 @@ export default {
max-width: 320px;
min-width: 220px;
line-height: 1.5;
+ white-space: pre-line;
}
.footer {
diff --git a/src/renderer/store/modules/leaderboard.js b/src/renderer/store/modules/leaderboard.js
index d5985c29..1d4bc698 100644
--- a/src/renderer/store/modules/leaderboard.js
+++ b/src/renderer/store/modules/leaderboard.js
@@ -9,9 +9,7 @@ for (const source of music.sources) {
sources.push(source)
}
-// state
-const state = {
- boards: sourceList,
+const listInfo = {
list: [],
total: 0,
page: 1,
@@ -19,6 +17,11 @@ const state = {
key: null,
}
+// state
+const state = {
+ boards: sourceList,
+}
+
// getters
const getters = {
sources(state, getters, rootState, { sourceNames }) {
@@ -27,16 +30,6 @@ const getters = {
boards(state) {
return state.boards
},
- list(state) {
- return state.list
- },
- info(state) {
- return {
- total: state.total,
- limit: state.limit,
- page: state.page,
- }
- },
}
// actions
@@ -47,7 +40,6 @@ const actions = {
// let tabId = rootState.setting.leaderboard.tabId
// let key = `${source}${tabId}${page}`
// if (state.list.length && state.key == key) return true
- // commit('clearList')
if (state.boards[source].length) return
return music[source].leaderboard.getBoards().then(result => commit('setBoardsList', { boards: result, source }))
},
@@ -56,14 +48,22 @@ const actions = {
let tabId = rootState.setting.leaderboard.tabId
let [source, bangId] = tabId.split('__')
let key = `${source}${tabId}${page}`
- if (state.list.length && state.key == key) return Promise.resolve()
- commit('clearList')
+ if (listInfo.list.length && listInfo.key == key) return Promise.resolve(listInfo)
+ // commit('clearList')
// return (
// cache.has(key)
// ? Promise.resolve(cache.get(key))
// : music[source].leaderboard.getList(bangId, page)
// ).then(result => commit('setList', { result, key }))
- return music[source].leaderboard.getList(bangId, page).then(result => commit('setList', { result, key }))
+ return music[source].leaderboard.getList(bangId, page).then(result => {
+ cache.set(key, result)
+ listInfo.list = result.list
+ listInfo.total = result.total
+ listInfo.limit = result.limit
+ listInfo.page = result.page
+ listInfo.key = key
+ return listInfo
+ })
},
getListAll({ state, rootState }, id) {
// console.log(source, id)
@@ -96,18 +96,6 @@ const mutations = {
setBoardsList(state, { boards, source }) {
state.boards[source] = boards.list
},
- setList(state, { result, key }) {
- state.list = result.list
- state.total = result.total
- state.limit = result.limit
- state.page = result.page
- state.key = key
- cache.set(key, result)
- },
- clearList(state) {
- state.list = []
- state.total = 0
- },
}
export default {
diff --git a/src/renderer/store/modules/list.js b/src/renderer/store/modules/list.js
index 8fd2c3fe..0e570b76 100644
--- a/src/renderer/store/modules/list.js
+++ b/src/renderer/store/modules/list.js
@@ -1,6 +1,7 @@
import musicSdk from '../../utils/music'
import { clearLyric, clearMusicUrl } from '../../utils'
import { sync as eventSyncName } from '@renderer/event/names'
+import { removeListPosition, setListPrevSelectId } from '@renderer/utils/data'
let allList = {}
window.allList = allList
@@ -53,13 +54,21 @@ const getters = {
allList: () => allList,
}
+const getOtherSourcePromises = new Map()
+
// actions
const actions = {
getOtherSource({ state, commit }, musicInfo) {
- return (musicInfo.otherSource && musicInfo.otherSource.length ? Promise.resolve(musicInfo.otherSource) : musicSdk.findMusic(musicInfo)).then(otherSource => {
+ if (musicInfo.otherSource?.length) return Promise.resolve(musicInfo.otherSource)
+ let key = `${musicInfo.source}_${musicInfo.songmid}`
+ if (getOtherSourcePromises.has(key)) return getOtherSourcePromises.get(key)
+ const promise = musicSdk.findMusic(musicInfo).then(otherSource => {
commit('setOtherSource', { musicInfo, otherSource })
+ if (getOtherSourcePromises.has(key)) getOtherSourcePromises.delete(key)
return otherSource
})
+ getOtherSourcePromises.set(key, promise)
+ return promise
},
}
@@ -332,6 +341,7 @@ const mutations = {
if (index < 0) return
let list = state.userList.splice(index, 1)[0]
allListRemove(list)
+ removeListPosition(id)
},
setUserListName(state, { id, name, isSync }) {
if (!isSync) {
@@ -372,9 +382,6 @@ const mutations = {
state.userList.splice(index, 1)
state.userList.splice(index + 1, 0, targetList)
},
- setListScroll(state, { id, location }) {
- if (allList[id]) allList[id].location = location
- },
setMusicPosition(state, { id, position, list, isSync }) {
if (!isSync) {
window.eventHub.$emit(eventSyncName.send_action_list, {
@@ -410,6 +417,9 @@ const mutations = {
setOtherSource(state, { musicInfo, otherSource }) {
musicInfo.otherSource = otherSource
},
+ setPrevSelectListId(state, val) {
+ setListPrevSelectId(val)
+ },
}
export default {
diff --git a/src/renderer/store/modules/player.js b/src/renderer/store/modules/player.js
index 55a1a7df..e18ffadd 100644
--- a/src/renderer/store/modules/player.js
+++ b/src/renderer/store/modules/player.js
@@ -18,7 +18,6 @@ const state = {
},
playIndex: -1,
changePlay: false,
- isShowPlayerDetail: false,
playedList: [],
playMusicInfo: null,
@@ -197,7 +196,6 @@ const getters = {
musicInfo: state.playMusicInfo.musicInfo,
}
},
- isShowPlayerDetail: state => state.isShowPlayerDetail,
playMusicInfo: state => state.playMusicInfo,
playedList: state => state.playedList,
tempPlayList: state => state.tempPlayList,
@@ -457,9 +455,6 @@ const mutations = {
clearPlayedList(state) {
state.playedList.splice(0, state.playedList.length)
},
- visiblePlayerDetail(state, visible) {
- state.isShowPlayerDetail = visible
- },
setTempPlayList(state, list) {
state.tempPlayList.push(...list.map(({ musicInfo, listId }) => ({ musicInfo, listId, isTempPlay: true })))
if (!state.playMusicInfo) this.commit('player/playNext')
diff --git a/src/renderer/store/mutations.js b/src/renderer/store/mutations.js
index 5cd60e33..9b02b7f7 100644
--- a/src/renderer/store/mutations.js
+++ b/src/renderer/store/mutations.js
@@ -61,9 +61,6 @@ export default {
setMediaDeviceId(state, val) {
state.setting.player.mediaDeviceId = val
},
- setPrevSelectListId(state, val) {
- state.setting.list.prevSelectListId = val
- },
setDesktopLyricConfig(state, config) {
state.setting.desktopLyric = Object.assign(state.setting.desktopLyric, config)
},
diff --git a/src/renderer/utils/data.js b/src/renderer/utils/data.js
new file mode 100644
index 00000000..8637ca7a
--- /dev/null
+++ b/src/renderer/utils/data.js
@@ -0,0 +1,45 @@
+import { rendererSend, rendererInvoke, NAMES } from '../../common/ipc'
+import { throttle } from './index'
+
+let listPosition = {}
+let listPrevSelectId
+
+const saveListPosition = throttle(() => {
+ rendererSend(NAMES.mainWindow.save_data, {
+ path: 'listPosition',
+ data: listPosition,
+ })
+}, 1000)
+
+export const initListPosition = () => {
+ return rendererInvoke(NAMES.mainWindow.get_data, 'listPosition').then(data => {
+ if (!data) data = {}
+ listPosition = data
+ })
+}
+export const getListPosition = id => listPosition[id] || 0
+export const setListPosition = (id, position) => {
+ listPosition[id] = position || 0
+ saveListPosition()
+}
+export const removeListPosition = id => {
+ delete listPosition[id]
+ saveListPosition()
+}
+
+const saveListPrevSelectId = throttle(() => {
+ rendererSend(NAMES.mainWindow.save_data, {
+ path: 'listPrevSelectId',
+ data: listPrevSelectId,
+ })
+}, 200)
+export const initListPrevSelectId = () => {
+ return rendererInvoke(NAMES.mainWindow.get_data, 'listPrevSelectId').then(id => {
+ listPrevSelectId = id
+ })
+}
+export const getListPrevSelectId = () => listPrevSelectId
+export const setListPrevSelectId = id => {
+ listPrevSelectId = id
+ saveListPrevSelectId()
+}
diff --git a/src/renderer/utils/music/kg/comment.js b/src/renderer/utils/music/kg/comment.js
index 5e4adf85..17f99289 100644
--- a/src/renderer/utils/music/kg/comment.js
+++ b/src/renderer/utils/music/kg/comment.js
@@ -29,7 +29,8 @@ export default {
const { body, statusCode } = await _requestObj2.promise
// console.log(body)
if (statusCode != 200 || body.err_code !== 0) throw new Error('获取热门评论失败')
- return { source: 'kg', comments: this.filterComment(body.weightList || []) }
+ const total = body.weightList?.length ?? 0
+ return { source: 'kg', comments: this.filterComment(body.weightList || []), total, page, limit, maxPage: 1 }
},
async getReplyComment({ songmid, audioId }, replyId, page = 1, limit = 100) {
if (this._requestObj2) this._requestObj2.cancelHttp()
diff --git a/src/renderer/utils/music/kg/songList.js b/src/renderer/utils/music/kg/songList.js
index fc20d4aa..825e4527 100644
--- a/src/renderer/utils/music/kg/songList.js
+++ b/src/renderer/utils/music/kg/songList.js
@@ -1,6 +1,17 @@
import { httpFetch } from '../../request'
import { decodeName, formatPlayTime, sizeFormate } from '../../index'
import { toMD5 } from '../utils'
+import infSign from './vendors/infSign.min'
+
+const handleSignature = (id, page, limit) => new Promise((resolve, reject) => {
+ infSign({ appid: 1058, type: 0, module: 'playlist', page, pagesize: limit, specialid: id }, null, {
+ useH5: !0,
+ isCDN: !0,
+ callback(i) {
+ resolve(i.signature)
+ },
+ })
+})
export default {
_requestObj_tags: null,
@@ -35,6 +46,7 @@ export default {
id: '8',
},
],
+ cache: new Map(),
regExps: {
listData: /global\.data = (\[.+\]);/,
listInfo: /global = {[\s\S]+?name: "(.+)"[\s\S]+?pic: "(.+)"[\s\S]+?};/,
@@ -249,7 +261,7 @@ export default {
})
if (!songInfo.list) {
if (songInfo.global_collection_id) return this.getUserListDetail2(songInfo.global_collection_id)
- else throw new Error('fail')
+ else return this.getUserListDetail4(songInfo, chain, page).catch(() => this.getUserListDetail5(chain))
}
let result = await Promise.all(this.createTask(songInfo.list.map(item => ({ hash: item.hash })))).then(([...datas]) => datas.flat())
// console.log(info, songInfo)
@@ -362,6 +374,94 @@ export default {
}
},
+ async getListInfoByChain(chain) {
+ if (this.cache.has(chain)) return this.cache.get(chain)
+ const { body } = await httpFetch(`https://m.kugou.com/share/?chain=${chain}&id=${chain}`, {
+ headers: {
+ 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
+ },
+ }).promise
+ let result = body.match(/var\sphpParam\s=\s({.+?});/)
+ if (result) result = JSON.parse(result[1])
+ this.cache.set(chain, result)
+ return result
+ },
+
+ async getUserListDetailByPcChain(chain) {
+ let key = `${chain}_pc_list`
+ if (this.cache.has(key)) return this.cache.get(key)
+ const { body } = await httpFetch(`http://www.kugou.com/share/${chain}.html`, {
+ headers: {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
+ },
+ }).promise
+ let result = body.match(/var\sdataFromSmarty\s=\s(\[.+?\])/)
+ if (result) result = JSON.parse(result[1])
+ this.cache.set(chain, result)
+ result = await Promise.all(this.createTask(result.map(item => ({ hash: item.hash })))).then(([...datas]) => datas.flat())
+ // console.log(info, songInfo)
+ return this.filterData2(result)
+ },
+
+ async getUserListDetail4(songInfo, chain, page) {
+ const limit = 100
+ const [listInfo, list] = await Promise.all([
+ this.getListInfoByChain(chain),
+ this.getUserListDetailById(songInfo.id, page, limit),
+ ])
+ return {
+ list: list || [],
+ page,
+ limit,
+ total: listInfo.songcount,
+ source: 'kg',
+ info: {
+ name: listInfo.specialname,
+ img: listInfo.imgurl && listInfo.imgurl.replace('{size}', 240),
+ // desc: body.result.info.list_desc,
+ author: listInfo.nickname,
+ // play_count: this.formatPlayCount(info.count),
+ },
+ }
+ },
+
+ async getUserListDetail5(chain) {
+ const [listInfo, list] = await Promise.all([
+ this.getListInfoByChain(chain),
+ this.getUserListDetailByPcChain(chain),
+ ])
+ return {
+ list: list || [],
+ page: 1,
+ limit: this.listDetailLimit,
+ total: listInfo.songcount,
+ source: 'kg',
+ info: {
+ name: listInfo.specialname,
+ img: listInfo.imgurl && listInfo.imgurl.replace('{size}', 240),
+ // desc: body.result.info.list_desc,
+ author: listInfo.nickname,
+ // play_count: this.formatPlayCount(info.count),
+ },
+ }
+ },
+
+ async getUserListDetailById(id, page, limit) {
+ const signature = await handleSignature(id, page, limit)
+ let info = await this.createHttp(`https://pubsongscdn.kugou.com/v2/get_other_list_file?srcappid=2919&clientver=20000&appid=1058&type=0&module=playlist&page=${page}&pagesize=${limit}&specialid=${id}&signature=${signature}`, {
+ headers: {
+ Referer: 'https://m3ws.kugou.com/share/index.php',
+ 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
+ dfid: '-',
+ },
+ })
+
+ // console.log(info)
+ let result = await Promise.all(this.createTask(info.info.map(item => ({ hash: item.hash })))).then(([...datas]) => datas.flat())
+ // console.log(info, songInfo)
+ return this.filterData2(result)
+ },
+
async getUserListDetail(link, page, retryNum = 0) {
if (retryNum > 3) return Promise.reject(new Error('link try max num'))
if (link.includes('#')) link = link.replace(/#.*$/, '')
diff --git a/src/renderer/utils/music/kg/vendors/infSign.min.js b/src/renderer/utils/music/kg/vendors/infSign.min.js
new file mode 100644
index 00000000..7b817758
--- /dev/null
+++ b/src/renderer/utils/music/kg/vendors/infSign.min.js
@@ -0,0 +1,2 @@
+!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self,t.infSign=n())}(this,function(){"use strict";function t(t,n,r){return n in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,t}function n(t,n){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);n&&(e=e.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,e)}return r}function r(r){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=!1,c=!1,a="json",l=r({},n),u=s.isInClient();"function"==typeof o?t=o:(t=o.callback,i=o.useH5||!1,a=o.postType||"json",c=o.isCDN||!1),e&&("[object Object]"!=Object.prototype.toString.call(e)?u=!1:"urlencoded"==a&&(u=!1));var f=function(){var n=(new Date).getTime(),i=[],s=[],u="NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt",f={srcappid:"2919",clientver:"20000",clienttime:n,mid:n,uuid:n,dfid:"-"};c&&(delete f.clienttime,delete f.mid,delete f.uuid,delete f.dfid),l=r({},f,{},l);for(var g in l)i.push(g);if(i.sort(),i.forEach(function(t){s.push(t+"="+l[t])}),e)if("[object Object]"==Object.prototype.toString.call(e))if("json"==a)s.push(JSON.stringify(e));else{var b=[];for(var g in e)b.push(g+"="+e[g]);s.push(b.join("&"))}else s.push(e);s.unshift(u),s.push(u),l.signature=d(s.join("")),o.log&&(console.log("H5签名前参数",s),console.log("H5签名后返回",l)),e?t&&t(l,"[object Object]"==Object.prototype.toString.call(e)&&"json"==a?JSON.stringify(e):e):t&&t(l)};if(u&&!i){var g=!1;s.mobileCall(764,{get:l,post:e},function(n){return!g&&(g=!0,n&&n.status?(delete n.status,o.log&&(console.log("客户端签名前参数",{get:l,post:e}),console.log("客户端签名后返回",r({},l,{},n))),l=r({},l,{},n),e?t&&t(l,"[object Object]"==Object.prototype.toString.call(e)&&"json"==a?JSON.stringify(e):e):t&&t(l),!1):(u=!1,void f()))})}else u=!1,f()}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var s=e(function(t,n){!function(n,r){t.exports=function(){var t={str2Json:function(t){var n={};if("[object String]"===Object.prototype.toString.call(t))try{n=JSON.parse(t)}catch(t){n={}}return n},json2Str:function(t){var n=t;if("string"!=typeof t)try{n=JSON.stringify(t)}catch(t){n=""}return n},_extend:function(t,n){if(n)for(var r in t)n.hasOwnProperty(r)||(n[r]=t[r]);return n},formatURL:{browser:"",url:""},formatSong:{filename:"",filesize:"",hash:"",bitrate:"",extname:"",duration:"",mvhash:"",m4afilesize:"","320hash":"","320filesize":"",sqhash:"",sqfilesize:0,feetype:0,isfirst:0},formatMV:{filename:"",singername:"",hash:"",imgurl:""},formatShare:{shareName:"",topicName:"",hash:"",listID:"",type:"",suid:"",slid:"",imgUrl:"",filename:"",duration:"",shareData:{linkUrl:"",picUrl:"",content:"",title:""}},cbNum:0,isIOS:!!navigator.userAgent.match(/KGBrowser/gi),isKugouAndroid:!!navigator.userAgent.match(/kugouandroid/gi),isAndroid:"undefined"!=typeof external&&void 0!==external.superCall,loadUrl:function(t){var n=document.createElement("iframe");n.setAttribute("src",t),n.setAttribute("style","display:none;"),n.setAttribute("height","0px"),n.setAttribute("width","0px"),n.setAttribute("frameborder","0"),document.body.appendChild(n),n.parentNode.removeChild(n),n=null},callCmd:function(n){var r=t;if(r.isKugouAndroid){var e={},o="";if(n.cmd&&(e.cmd=n.cmd),n.jsonStr&&(e.jsonStr=n.jsonStr),n.callback&&(o="kgandroidmobilecall"+ ++r.cbNum+Math.random().toString().substr(2,9),e.callback=o,window[o]=function(t,e){void 0!==t&&("[object String]"===Object.prototype.toString.call(t)?(t="#"===e?decodeURIComponent(t):decodeURIComponent(decodeURIComponent(t)),n.callback(r.str2Json(t))):n.callback(t))}),n.AndroidCallback){var i=r.str2Json(n.jsonStr);i.AndroidCallback=o,n.jsonStr=r.json2Str(i),n.jsonStr&&(e.jsonStr=n.jsonStr)}var c=encodeURIComponent(JSON.stringify(e)),s="kugoujsbridge://start.kugou_jsbridge/?".concat(c);r.loadUrl(s)}else if(r.isAndroid){var a="",l="";if(n.jsonStr){if(n.callback&&""!==n.callback&&!0===n.AndroidCallback){l="kgmobilecall"+ ++r.cbNum+Math.random().toString().substr(2,9),window[l]=function(t,e){void 0!==t&&("[object String]"===Object.prototype.toString.call(t)?(t="#"===e?decodeURIComponent(t):decodeURIComponent(decodeURIComponent(t)),n.callback(r.str2Json(t))):n.callback(t))};var u=r.str2Json(n.jsonStr);u.AndroidCallback=l,n.jsonStr=r.json2Str(u)}try{a=external.superCall(n.cmd,n.jsonStr)}catch(t){}}else try{a=external.superCall(n.cmd)}catch(t){}n.callback&&""!==n.callback&&"AndroidCallback"!=a&&(a=r.str2Json(a),n.callback(a))}else{var f="",d="";n.callback&&(d="kgmobilecall"+ ++r.cbNum+Math.random().toString().substr(2,9),window[d]=function(t){void 0!==t&&n.callback&&("[object String]"===Object.prototype.toString.call(t)?n.callback(r.str2Json(t)):n.callback(t))}),d&&""!=d&&n.jsonStr&&(f='kugouurl://start.music/?{"cmd":'+n.cmd+', "jsonStr":'+n.jsonStr+', "callback":"'+d+'"}'),d&&""!=d&&!n.jsonStr&&(f='kugouurl://start.music/?{"cmd":'+n.cmd+', "callback":"'+d+'"}'),""==d&&n.jsonStr&&(f='kugouurl://start.music/?{"cmd":'+n.cmd+', "jsonStr":'+n.jsonStr+"}"),""!=d||n.jsonStr||(f='kugouurl://start.music/?{"cmd":'+n.cmd+"}"),r.loadUrl(f)}},formartData:function(n,r){n&&123==n&&r&&(r=t._extend(t.formatURL,r)),n&&123==n&&r&&(r=t._extend(t.formatURL,r))}};return{isIOS:t.isIOS,isKugouAndroid:t.isKugouAndroid,isAndroid:t.isAndroid,isInClient:function(){return!(!t.isAndroid&&!t.isKugouAndroid&&!t.isIOS)},mobileCall:function(n,r,e){var o="";if(r&&(o=t.json2Str(r)),!n)return console.error("请输入命令号!"),!1;var i={};n&&(i.cmd=n),""!=o&&(i.jsonStr=o),e&&(i.callback=e),n&&186==n&&e&&(i.AndroidCallback=!0),t.callCmd(i)},KgWebMobileCall:function(t,n){if(t)try{var r=t.split(".");r.reduce(function(e,o){if(e[o]){if(o===r[r.length-1]){var i=e[o];return"function"==typeof i?(e[o]=function(t){i&&i(t),n&&n(t)},e[o]):(console.error("请检查,当前环境变量已注册了对象:"+t+",且该对象不是方法"),null)}return e[o]}return o===r[r.length-1]?e[o]=function(t){n&&n(t)}:e[o]=new Object,e[o]},window)}catch(t){}}}}()}()}),a=e(function(t){!function(){var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(t,n){return t<>>32-n},rotr:function(t,n){return t<<32-n|t>>>n},endian:function(t){if(t.constructor==Number)return 16711935&r.rotl(t,8)|4278255360&r.rotl(t,24);for(var n=0;n0;t--)n.push(Math.floor(256*Math.random()));return n},bytesToWords:function(t){for(var n=[],r=0,e=0;r>>5]|=t[r]<<24-e%32;return n},wordsToBytes:function(t){for(var n=[],r=0;r<32*t.length;r+=8)n.push(t[r>>>5]>>>24-r%32&255);return n},bytesToHex:function(t){for(var n=[],r=0;r>>4).toString(16)),n.push((15&t[r]).toString(16));return n.join("")},hexToBytes:function(t){for(var n=[],r=0;r>>6*(3-i)&63)):r.push("=");return r.join("")},base64ToBytes:function(t){t=t.replace(/[^A-Z0-9+\/]/gi,"");for(var r=[],e=0,o=0;e>>6-2*o);return r}};t.exports=r}()}),l={utf8:{stringToBytes:function(t){return l.bin.stringToBytes(unescape(encodeURIComponent(t)))},bytesToString:function(t){return decodeURIComponent(escape(l.bin.bytesToString(t)))}},bin:{stringToBytes:function(t){for(var n=[],r=0;r>>24)|4278255360&(s[g]<<24|s[g]>>>8);s[a>>>5]|=128<>>9<<4)]=a;for(var b=i._ff,p=i._gg,h=i._hh,m=i._ii,g=0;g>>0,u=u+j>>>0,f=f+S>>>0,d=d+v>>>0}return n.endian([l,u,f,d])};i._ff=function(t,n,r,e,o,i,c){var s=t+(n&r|~n&e)+(o>>>0)+c;return(s<>>32-i)+n},i._gg=function(t,n,r,e,o,i,c){var s=t+(n&e|r&~e)+(o>>>0)+c;return(s<>>32-i)+n},i._hh=function(t,n,r,e,o,i,c){var s=t+(n^r^e)+(o>>>0)+c;return(s<>>32-i)+n},i._ii=function(t,n,r,e,o,i,c){var s=t+(r^(n|~e))+(o>>>0)+c;return(s<>>32-i)+n},i._blocksize=16,i._digestsize=16,t.exports=function(t,r){if(void 0===t||null===t)throw new Error("Illegal argument "+t);var e=n.wordsToBytes(i(t,r));return r&&r.asBytes?e:r&&r.asString?o.bytesToString(e):n.bytesToHex(e)}}()});return c});
+//# sourceMappingURL=infSign.min.js.map
diff --git a/src/renderer/utils/music/kw/comment.js b/src/renderer/utils/music/kw/comment.js
index 7c6a7cfe..39c49e04 100644
--- a/src/renderer/utils/music/kw/comment.js
+++ b/src/renderer/utils/music/kw/comment.js
@@ -28,7 +28,7 @@ export default {
const { body, statusCode } = await _requestObj2.promise
if (statusCode != 200 || body.result !== 'ok') throw new Error('获取热门评论失败')
// console.log(body)
- return { source: 'kw', comments: this.filterComment(body.rows) }
+ return { source: 'kw', comments: this.filterComment(body.rows), total: body.total, page, limit, maxPage: Math.ceil(body.total / limit) || 1 }
},
filterComment(rawList) {
if (!rawList) return []
diff --git a/src/renderer/utils/music/mg/comment.js b/src/renderer/utils/music/mg/comment.js
index c3fab1a4..f8468b83 100644
--- a/src/renderer/utils/music/mg/comment.js
+++ b/src/renderer/utils/music/mg/comment.js
@@ -53,7 +53,7 @@ export default {
const { body, statusCode } = await _requestObj2.promise
// console.log(body)
if (statusCode != 200 || body.returnCode !== '000000') throw new Error('获取热门评论失败')
- return { source: 'mg', comments: this.filterComment(body.data.items) }
+ return { source: 'mg', comments: this.filterComment(body.data.items), total: body.data.itemTotal, page, limit, maxPage: Math.ceil(body.data.itemTotal / limit) || 1 }
},
async getReplyComment(musicInfo, replyId, page = 1, limit = 10) {
if (this._requestObj2) this._requestObj2.cancelHttp()
diff --git a/src/renderer/utils/music/tx/comment.js b/src/renderer/utils/music/tx/comment.js
index fee8c0ff..58afe59b 100644
--- a/src/renderer/utils/music/tx/comment.js
+++ b/src/renderer/utils/music/tx/comment.js
@@ -77,6 +77,7 @@ export default {
if (this._requestObj) this._requestObj.cancelHttp()
const _requestObj = httpFetch('http://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg', {
+ method: 'POST',
headers: {
'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)',
},
@@ -110,6 +111,7 @@ export default {
if (this._requestObj2) this._requestObj2.cancelHttp()
const _requestObj2 = httpFetch('http://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg', {
+ method: 'POST',
headers: {
'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)',
},
@@ -134,6 +136,9 @@ export default {
source: 'tx',
comments: this.filterComment(comment.commentlist),
total: comment.commenttotal,
+ page,
+ limit,
+ maxPage: Math.ceil(comment.commenttotal / limit) || 1,
}
},
replaceEmoji(msg) {
@@ -149,7 +154,8 @@ export default {
},
filterComment(rawList) {
return rawList.map(item => {
- let time = item.rootcommentid ? parseInt(item.rootcommentid.substring(item.rootcommentid.lastIndexOf('_') + 1) + '000') : null
+ let time = parseInt(item.time + '000')
+ let timeStr = dateFormat2(time)
if (item.middlecommentcontent) {
let firstItem = item.middlecommentcontent[0]
firstItem.avatarurl = item.avatarurl
@@ -159,23 +165,23 @@ export default {
item.middlecommentcontent.reverse()
}
return {
- id: item.subcommentid,
+ id: `${item.rootcommentid}_${item.commentid}`,
rootId: item.rootcommentid,
text: item.rootcommentcontent ? this.replaceEmoji(item.rootcommentcontent).replace(/\\n/g, '\n').split('\n') : [],
- time,
- timeStr: time ? dateFormat2(time) : null,
+ time: item.rootcommentid == item.commentid ? time : null,
+ timeStr: item.rootcommentid == item.commentid ? timeStr : null,
userName: item.rootcommentnick ? item.rootcommentnick.substring(1) : '',
avatar: item.avatarurl,
userId: item.encrypt_rootcommentuin,
likedCount: item.praisenum,
reply: item.middlecommentcontent
? item.middlecommentcontent.map(c => {
- let index = c.subcommentid.lastIndexOf('_')
+ // let index = c.subcommentid.lastIndexOf('_')
return {
- id: c.subcommentid,
+ id: `sub_${item.rootcommentid}_${c.subcommentid}`,
text: this.replaceEmoji(c.subcommentcontent).replace(/\\n/g, '\n').split('\n'),
- time: parseInt(c.subcommentid.substring(index + 1) + '000'),
- timeStr: dateFormat2(parseInt(c.subcommentid.substring(index + 1) + '000')),
+ time: c.subcommentid == item.commentid ? time : null,
+ timeStr: c.subcommentid == item.commentid ? timeStr : null,
userName: c.replynick.substring(1),
avatar: c.avatarurl,
userId: c.encrypt_replyuin,
diff --git a/src/renderer/utils/music/wy/comment.js b/src/renderer/utils/music/wy/comment.js
index 5597b894..469e1e3a 100644
--- a/src/renderer/utils/music/wy/comment.js
+++ b/src/renderer/utils/music/wy/comment.js
@@ -104,7 +104,8 @@ export default {
const { body, statusCode } = await _requestObj2.promise
if (statusCode != 200 || body.code !== 200) throw new Error('获取热门评论失败')
// console.log(body)
- return { source: 'wy', comments: this.filterComment(body.data.hotComments) }
+ const total = body.data.hotComments?.length ?? 0
+ return { source: 'wy', comments: this.filterComment(body.data.hotComments), total, page, limit, maxPage: 1 }
},
filterComment(rawList) {
return rawList.map(item => {
diff --git a/src/renderer/views/Download.vue b/src/renderer/views/Download.vue
index d530c150..0a89dcde 100644
--- a/src/renderer/views/Download.vue
+++ b/src/renderer/views/Download.vue
@@ -14,21 +14,22 @@ div(:class="$style.download")
th.nobreak(style="width: 22%;") {{$t('view.download.status')}}
th.nobreak(style="width: 10%;") {{$t('view.download.quality')}}
th.nobreak(style="width: 13%;") {{$t('view.download.action')}}
- div.scroll(v-if="list.length" :class="$style.tbody" ref="dom_scrollContent")
- table
- tbody(ref="dom_tbody")
- tr(v-for='(item, index) in showList' :key='item.key' @contextmenu="handleListItemRigthClick($event, index)" @click="handleDoubleClick($event, index)" :class="playListIndex === index ? $style.active : ''")
- td.nobreak.center(style="width: 5%; padding-left: 3px; padding-right: 3px;" @click.stop) {{index + 1}}
- td.break
- span.select {{item.musicInfo.name}} - {{item.musicInfo.singer}}
- td.break(style="width: 20%;") {{item.progress.progress}}%
- td.break(style="width: 22%;") {{item.statusText}}
- td.break(style="width: 10%;") {{item.type && item.type.toUpperCase()}}
- td(style="width: 13%; padding-left: 0; padding-right: 0;")
- material-list-buttons(:index="index" :download-btn="false" :file-btn="item.status != downloadStatus.ERROR" remove-btn
- :start-btn="!item.isComplate && item.status != downloadStatus.WAITING && (item.status != downloadStatus.RUN)"
- :pause-btn="!item.isComplate && (item.status == downloadStatus.RUN || item.status == downloadStatus.WAITING)" :list-add-btn="false"
- :play-btn="item.status == downloadStatus.COMPLETED" :search-btn="item.status == downloadStatus.ERROR" @btn-click="handleListBtnClick")
+ div(v-if="list.length" :class="$style.content" ref="dom_listContent")
+ material-virtualized-list(:list="showList" key-name="key" ref="list" :item-height="listItemHeight" #default="{ item, index }"
+ containerClass="scroll" contentClass="list")
+ div.list-item(@click="handleDoubleClick($event, index)" @contextmenu="handleListItemRigthClick($event, index)"
+ :class="[{[$style.active]: playListIndex == index }, { selected: selectedIndex == index }, { active: selectedData.includes(item) }]")
+ div.list-item-cell.nobreak.center(style="width: 5%; padding-left: 3px; padding-right: 3px;" @click.stop) {{index + 1}}
+ div.list-item-cell.auto
+ span.select {{item.musicInfo.name}} - {{item.musicInfo.singer}}
+ div.list-item-cell(style="width: 20%;") {{item.progress.progress}}%
+ div.list-item-cell(style="width: 22%;") {{item.statusText}}
+ div.list-item-cell(style="width: 10%;") {{item.type && item.type.toUpperCase()}}
+ div.list-item-cell(style="width: 13%; padding-left: 0; padding-right: 0;")
+ material-list-buttons(:index="index" :download-btn="false" :file-btn="item.status != downloadStatus.ERROR" remove-btn
+ :start-btn="!item.isComplate && item.status != downloadStatus.WAITING && (item.status != downloadStatus.RUN)"
+ :pause-btn="!item.isComplate && (item.status == downloadStatus.RUN || item.status == downloadStatus.WAITING)" :list-add-btn="false"
+ :play-btn="item.status == downloadStatus.COMPLETED" :search-btn="item.status == downloadStatus.ERROR" @btn-click="handleListBtnClick")
material-menu(:menus="listItemMenu" :location="listMenu.menuLocation" item-name="name" :isShow="listMenu.isShowItemMenu" @menu-click="handleListItemMenuClick")
div(:class="$style.noItem" v-else)
@@ -38,6 +39,7 @@ import { mapGetters, mapActions, mapMutations } from 'vuex'
import { checkPath, openDirInExplorer, openUrl } from '../utils'
import musicSdk from '../utils/music'
import path from 'path'
+import { windowSizeList } from '@common/config'
export default {
name: 'Download',
@@ -52,8 +54,10 @@ export default {
isShiftDown: false,
isModDown: false,
},
+ selectedIndex: -1,
lastSelectIndex: 0,
listMenu: {
+ rightClickItemIndex: -1,
isShowItemMenu: false,
itemMenuControl: {
play: true,
@@ -168,6 +172,9 @@ export default {
},
]
},
+ listItemHeight() {
+ return parseInt(windowSizeList.find(item => item.id == this.setting.windowSizeId).fontSize) / 16 * 37
+ },
},
watch: {
list() {
@@ -217,7 +224,7 @@ export default {
this.handleSelectAllData()
},
handleDoubleClick(event, index) {
- if (event.target.classList.contains('select')) return
+ if (this.listMenu.rightClickItemIndex > -1) return
this.handleSelectData(event, index)
@@ -248,14 +255,8 @@ export default {
}
this.selectedData = this.showList.slice(lastSelectIndex, clickIndex + 1)
if (isNeedReverse) this.selectedData.reverse()
- let nodes = this.$refs.dom_tbody.childNodes
- do {
- nodes[lastSelectIndex].classList.add('active')
- lastSelectIndex++
- } while (lastSelectIndex <= clickIndex)
}
} else {
- event.currentTarget.classList.add('active')
this.selectedData.push(this.showList[clickIndex])
this.lastSelectIndex = clickIndex
}
@@ -265,21 +266,13 @@ export default {
let index = this.selectedData.indexOf(item)
if (index < 0) {
this.selectedData.push(item)
- event.currentTarget.classList.add('active')
} else {
this.selectedData.splice(index, 1)
- event.currentTarget.classList.remove('active')
}
} else if (this.selectedData.length) this.removeAllSelect()
},
removeAllSelect() {
this.selectedData = []
- let dom_tbody = this.$refs.dom_tbody
- if (!dom_tbody) return
- let nodes = dom_tbody.querySelectorAll('.active')
- for (const node of nodes) {
- if (node.parentNode == dom_tbody) node.classList.remove('active')
- }
},
handleClick(index) {
const key = this.showList[index].key
@@ -323,11 +316,6 @@ export default {
handleSelectAllData() {
this.removeAllSelect()
this.selectedData = [...this.showList]
-
- let nodes = this.$refs.dom_tbody.childNodes
- for (const node of nodes) {
- node.classList.add('active')
- }
},
// async handleFlowBtnClick(action) {
// let selectedData = [...this.selectedData]
@@ -363,13 +351,19 @@ export default {
},
handleListItemRigthClick(event, index) {
this.listMenu.itemMenuControl.sourceDetail = !!musicSdk[this.showList[index].musicInfo.source].getMusicDetailPageUrl
- let dom_selected = this.$refs.dom_tbody.querySelector('tr.selected')
- if (dom_selected) dom_selected.classList.remove('selected')
- this.$refs.dom_tbody.querySelectorAll('tr')[index].classList.add('selected')
- let dom_td = event.target.closest('td')
+ let dom_container = event.target.closest('.' + this.$style.download)
+ const getOffsetValue = (target, x = 0, y = 0) => {
+ if (target === dom_container) return { x, y }
+ if (!target) return { x: 0, y: 0 }
+ x += target.offsetLeft
+ y += target.offsetTop
+ return getOffsetValue(target.offsetParent, x, y)
+ }
this.listMenu.rightClickItemIndex = index
- this.listMenu.menuLocation.x = dom_td.offsetLeft + event.offsetX
- this.listMenu.menuLocation.y = dom_td.offsetTop + event.offsetY - this.$refs.dom_scrollContent.scrollTop
+ this.selectedIndex = index
+ let { x, y } = getOffsetValue(event.target)
+ this.listMenu.menuLocation.x = x + event.offsetX
+ this.listMenu.menuLocation.y = y + event.offsetY - this.$refs.list.getScrollTop()
let item = this.showList[index]
if (item.isComplate) {
@@ -397,8 +391,7 @@ export default {
})
},
hideListMenu() {
- let dom_selected = this.$refs.dom_tbody && this.$refs.dom_tbody.querySelector('tr.selected')
- if (dom_selected) dom_selected.classList.remove('selected')
+ this.selectedIndex = -1
this.listMenu.isShowItemMenu = false
this.listMenu.rightClickItemIndex = -1
},
@@ -524,18 +517,18 @@ export default {
// padding-left: 10px;
}
}
-.tbody {
+:global(.list) {
flex: auto;
overflow-y: auto;
- td {
- font-size: 12px;
+ :global(.list-item-cell) {
+ font-size: 12px !important;
&:first-child {
// padding-left: 10px;
- font-size: 11px;
- color: @color-theme_2-font-label;
+ font-size: 11px !important;
+ color: @color-theme_2-font-label !important;
}
}
- tr {
+ :global(.list-item) {
&.active {
color: @color-btn;
}
@@ -544,17 +537,17 @@ export default {
each(@themes, {
:global(#container.@{value}) {
- .tbody {
- tr {
- &.active {
- color: ~'@{color-@{value}-btn}';
- }
- }
- td {
+ :global(.list) {
+ :global(.list-item-cell) {
&:first-child {
color: ~'@{color-@{value}-theme_2-font-label}';
}
}
+ :global(.list-item) {
+ &.active {
+ color: ~'@{color-@{value}-btn}' !important;
+ }
+ }
}
}
})
diff --git a/src/renderer/views/Leaderboard.vue b/src/renderer/views/Leaderboard.vue
index 425a4345..6b5350dd 100644
--- a/src/renderer/views/Leaderboard.vue
+++ b/src/renderer/views/Leaderboard.vue
@@ -16,7 +16,7 @@
@contextmenu="handleListsItemRigthClick($event, index)")
span(:class="$style.listsLabel") {{item.name}}
div(:class="$style.list")
- material-song-list(v-model="selectedData" ref="songList" :hideListsMenu="hideListsMenu" :rowWidth="{r1: '5%', r2: 'auto', r3: '22%', r4: '22%', r5: '9%', r6: '15%'}" @action="handleSongListAction" :source="source" :page="page" :limit="info.limit" :total="info.total" :noItem="$t('material.song_list.loding_list')" :list="list")
+ material-song-list(v-model="selectedData" ref="songList" :hideListsMenu="hideListsMenu" :rowWidth="{r1: '5%', r2: 'auto', r3: '22%', r4: '22%', r5: '9%', r6: '15%'}" @action="handleSongListAction" :source="source" :page="page" :limit="listInfo.limit" :total="listInfo.total" :noItem="$t('material.song_list.loding_list')" :list="list")
material-download-modal(:show="isShowDownload" :musicInfo="musicInfo" @select="handleAddDownload" @close="isShowDownload = false")
material-download-multiple-modal(:show="isShowDownloadMultiple" :list="selectedData" @select="handleAddDownloadMultiple" @close="isShowDownloadMultiple = false")
material-list-add-modal(:show="isShowListAdd" :musicInfo="musicInfo" @close="isShowListAdd = false")
@@ -56,11 +56,18 @@ export default {
y: 0,
},
},
+ listInfo: {
+ list: [],
+ total: 0,
+ page: 1,
+ limit: 30,
+ key: null,
+ },
}
},
computed: {
...mapGetters(['setting']),
- ...mapGetters('leaderboard', ['sources', 'boards', 'list', 'info']),
+ ...mapGetters('leaderboard', ['sources', 'boards', 'info']),
...mapGetters('list', ['defaultList']),
boardList() {
return this.source && this.boards[this.source] ? this.boards[this.source] : []
@@ -79,13 +86,22 @@ export default {
},
]
},
+ list() {
+ return this.listInfo.list
+ },
},
watch: {
tabId(n, o) {
this.setLeaderboard({ tabId: n })
if (!n || (!o && this.page !== 1)) return
- this.getList(1).then(() => {
- this.page = this.info.page
+ this.listInfo.list = []
+ this.getList(1).then(listInfo => {
+ this.listInfo.list = listInfo.list
+ this.listInfo.total = listInfo.total
+ this.listInfo.limit = listInfo.limit
+ this.listInfo.page = listInfo.page
+ this.listInfo.key = listInfo.key
+ this.page = listInfo.page
})
},
source(n, o) {
@@ -102,7 +118,7 @@ export default {
mounted() {
this.source = this.setting.leaderboard.source
this.tabId = this.setting.leaderboard.tabId
- this.page = this.info.page
+ this.page = this.listInfo.page
},
methods: {
...mapMutations(['setLeaderboard']),
@@ -206,8 +222,14 @@ export default {
})
},
handleTogglePage(page) {
- this.getList(page).then(() => {
- this.page = this.info.page
+ this.listInfo.list = []
+ this.getList(page).then(listInfo => {
+ this.listInfo.list = listInfo.list
+ this.listInfo.total = listInfo.total
+ this.listInfo.limit = listInfo.limit
+ this.listInfo.page = listInfo.page
+ this.listInfo.key = listInfo.key
+ this.page = listInfo.page
})
},
handleAddDownload(type) {
@@ -381,7 +403,7 @@ export default {
transition: opacity .3s ease;
}
- :global(.list) {
+ :global(.selection-list) {
max-height: 500px;
box-shadow: 0 1px 8px 0 rgba(0,0,0,.2);
li {
@@ -465,7 +487,7 @@ each(@themes, {
:global(.label) {
color: ~'@{color-@{value}-theme_2-font}' !important;
}
- :global(.list) {
+ :global(.selection-list) {
li {
background-color: ~'@{color-@{value}-theme_2-background_2}';
&:hover {
diff --git a/src/renderer/views/List.vue b/src/renderer/views/List.vue
index 25ab684e..469c6447 100644
--- a/src/renderer/views/List.vue
+++ b/src/renderer/views/List.vue
@@ -36,35 +36,26 @@
th.nobreak(style="width: 22%;") {{$t('view.list.album')}}
th.nobreak(style="width: 9%;") {{$t('view.list.time')}}
th.nobreak(style="width: 15%;") {{$t('view.list.action')}}
- div(v-if="delayShow && list.length" :class="$style.content")
- div.scroll(:class="$style.tbody" @scroll="handleScroll" ref="dom_scrollContent")
- table
- tbody(@contextmenu.capture="handleContextMenu" ref="dom_tbody")
- tr(v-for='(item, index) in list' :key='item.songmid' :id="'mid_' + item.songmid" @contextmenu="handleListItemRigthClick($event, index)"
- @click="handleDoubleClick($event, index)" :class="[isPlayList && playInfo.playIndex === index ? $style.active : '', assertApiSupport(item.source) ? null : $style.disabled]")
- td.nobreak.center(style="width: 5%; padding-left: 3px; padding-right: 3px;" :class="$style.noSelect" @click.stop) {{index + 1}}
- td.break
- span.select {{item.name}}
- span(:class="[$style.labelSource, $style.noSelect]" v-if="isShowSource") {{item.source}}
- //- span.badge.badge-light(v-if="item._types['128k']") 128K
- //- span.badge.badge-light(v-if="item._types['192k']") 192K
- //- span.badge.badge-secondary(v-if="item._types['320k']") 320K
- //- span.badge.badge-theme-info(v-if="item._types.ape") APE
- //- span.badge.badge-theme-success(v-if="item._types.flac") FLAC
- td.break(style="width: 22%;")
- span.select {{item.singer}}
- td.break(style="width: 22%;")
- span.select {{item.albumName}}
- td(style="width: 9%;")
- span(:class="[$style.time, $style.noSelect]") {{item.interval || '--/--'}}
- td(style="width: 15%; padding-left: 0; padding-right: 0;")
- material-list-buttons(:index="index" @btn-click="handleListBtnClick" :download-btn="assertApiSupport(item.source)")
- //- button.btn-info(type='button' v-if="item._types['128k'] || item._types['192k'] || item._types['320k'] || item._types.flac" @click.stop='openDownloadModal(index)') 下载
- //- button.btn-secondary(type='button' v-if="item._types['128k'] || item._types['192k'] || item._types['320k']" @click.stop='testPlay(index)') 试听
- //- button.btn-secondary(type='button' @click.stop='handleRemove(index)') 删除
- //- button.btn-success(type='button' v-if="(item._types['128k'] || item._types['192k'] || item._types['320k']) && userInfo" @click.stop='showListModal(index)') +
+ div(v-if="list.length" :class="$style.content" ref="dom_listContent")
+ material-virtualized-list(:list="list" key-name="songmid" ref="list" #default="{ item, index }" :item-height="listItemHeight"
+ @scroll="handleScroll" containerClass="scroll" contentClass="list" @contextmenu.native.capture="handleContextMenu")
+ div.list-item(@click="handleDoubleClick($event, index)"
+ :class="[{ [$style.active]: isPlayList && playInfo.playIndex === index }, { selected: selectedIndex == index }, { active: selectdListDetailData.includes(item) }, { [$style.disabled]: !assertApiSupport(item.source) }]"
+ @contextmenu="handleListItemRigthClick($event, index)")
+ div.list-item-cell.nobreak.center(style="flex: 0 0 5%; padding-left: 3px; padding-right: 3px;" :class="$style.noSelect" @click.stop) {{index + 1}}
+ div.list-item-cell.auto.break(:tips="item.name")
+ span.select {{item.name}}
+ span(:class="[$style.labelSource, $style.noSelect]" v-if="isShowSource") {{item.source}}
+ div.list-item-cell.break(style="flex: 0 0 22%;")
+ span.select {{item.singer}}
+ div.list-item-cell.break(style="flex: 0 0 22%;")
+ span.select {{item.albumName}}
+ div.list-item-cell(style="flex: 0 0 9%;")
+ span(:class="[$style.time, $style.noSelect]") {{item.interval || '--/--'}}
+ div.list-item-cell(style="flex: 0 0 15%; padding-left: 0; padding-right: 0;")
+ material-list-buttons(:index="index" @btn-click="handleListBtnClick" :download-btn="assertApiSupport(item.source)")
div(:class="$style.noItem" v-else)
- p(v-text="list.length ? $t('view.list.loding_list') : $t('view.list.no_item')")
+ p(v-text="$t('view.list.no_item')")
material-download-modal(:show="isShowDownload" :musicInfo="musicInfo" @select="handleAddDownload" @close="isShowDownload = false")
material-download-multiple-modal(:show="isShowDownloadMultiple" :list="selectdListDetailData" @select="handleAddDownloadMultiple" @close="isShowDownloadMultiple = false")
//- material-flow-btn(:show="isShowEditBtn" :play-btn="false" @btn-click="handleFlowBtnClick")
@@ -79,8 +70,12 @@