refactor: 增量更新
parent
064b8f6d84
commit
136cf7671d
|
@ -128,7 +128,8 @@ const executor = {
|
|||
async mac (exec, params) {
|
||||
// exec = _exec
|
||||
let wifiAdaptor = await exec('sh -c "networksetup -listnetworkserviceorder | grep `route -n get 0.0.0.0 | grep \'interface\' | cut -d \':\' -f2` -B 1 | head -n 1 "')
|
||||
wifiAdaptor = wifiAdaptor.substring(3).trim()
|
||||
wifiAdaptor = wifiAdaptor.trim()
|
||||
wifiAdaptor = wifiAdaptor.substring(wifiAdaptor.indexOf(' ')).trim()
|
||||
|
||||
if (params == null) {
|
||||
await exec(`networksetup -setwebproxystate '${wifiAdaptor}' off`)
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
// test().then((ret) => {
|
||||
// console.log('haha', ret)
|
||||
// })
|
||||
let wifiAdaptor = '(151) test'
|
||||
wifiAdaptor = wifiAdaptor.substring(wifiAdaptor.indexOf(' ')).trim()
|
||||
console.log(wifiAdaptor)
|
||||
|
|
|
@ -18,15 +18,20 @@
|
|||
"dependencies": {
|
||||
"@docmirror/dev-sidecar": "^1.5.0",
|
||||
"@docmirror/mitmproxy": "^1.5.0",
|
||||
"adm-zip": "^0.5.5",
|
||||
"ant-design-vue": "^1.6.5",
|
||||
"compressing": "^1.5.1",
|
||||
"core-js": "^3.6.5",
|
||||
"electron-baidu-tongji": "^1.0.5",
|
||||
"electron-reload": "^1.5.0",
|
||||
"electron-store": "^6.0.1",
|
||||
"electron-updater": "^4.3.5",
|
||||
"es-abstract": "^1.17.7",
|
||||
"extract-zip": "^2.0.1",
|
||||
"json5": "^2.1.3",
|
||||
"lodash": "^4.17.20",
|
||||
"log4js": "^6.3.0",
|
||||
"request-progress": "^3.0.0",
|
||||
"sass": "^1.27.1",
|
||||
"sass-loader": "^10.0.4",
|
||||
"vue": "^2.6.11",
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
const path = require('path')
|
||||
const AdmZip = require('adm-zip')
|
||||
const pkg = require('../package.json')
|
||||
const fs = require('fs')
|
||||
exports.default = async function (context) {
|
||||
console.log('context', context)
|
||||
let targetPath
|
||||
let latest = null
|
||||
if (context.packager.platform.nodeName === 'darwin') {
|
||||
targetPath = path.join(context.appOutDir, `${context.packager.appInfo.productName}.app/Contents/Resources`)
|
||||
latest = 'latest-mac.yml'
|
||||
} else {
|
||||
targetPath = path.join(context.appOutDir, './resources')
|
||||
latest = 'latest.yml'
|
||||
}
|
||||
const zip = new AdmZip()
|
||||
zip.addLocalFolder(targetPath)
|
||||
const partUpdateFile = `update-${pkg.version}.zip`
|
||||
zip.writeZip(path.join(context.outDir, partUpdateFile))
|
||||
|
||||
const partUpdateUrl = 'http://dev-sidecar.docmirror.cn/update/' + partUpdateFile
|
||||
|
||||
fs.appendFile(path.join(context.outDir, latest), `partPackage: ${partUpdateUrl}\nreleaseNotes: \n - 升级日志`, (err) => {
|
||||
if (err) {
|
||||
console.log('修改latest 失败')
|
||||
}
|
||||
})
|
||||
}
|
|
@ -1,13 +1,39 @@
|
|||
import { ipcMain } from 'electron'
|
||||
import { autoUpdater } from 'electron-updater'
|
||||
import path from 'path'
|
||||
import request from 'request'
|
||||
import progress from 'request-progress'
|
||||
// win是所有窗口的引用
|
||||
// const path = require('path') // 引入path模块
|
||||
// const fs = require('fs-extra')
|
||||
import fs from 'fs'
|
||||
import AdmZip from 'adm-zip'
|
||||
import logger from '../../utils/util.log'
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const isMac = process.platform === 'darwin'
|
||||
|
||||
function downloadFile (uri, filePath, onProgress, onSuccess, onError) {
|
||||
progress(request(uri), {
|
||||
// throttle: 2000, // Throttle the progress event to 2000ms, defaults to 1000ms
|
||||
// delay: 1000, // Only start to emit after 1000ms delay, defaults to 0ms
|
||||
// lengthHeader: 'x-transfer-length' // Length header to use, defaults to content-length
|
||||
})
|
||||
.on('progress', function (state) {
|
||||
onProgress(state.percent * 100)
|
||||
logger.log('progress', state.percent)
|
||||
})
|
||||
.on('error', function (err) {
|
||||
// Do something with err
|
||||
logger.error('下载升级包失败', err)
|
||||
onError(err)
|
||||
})
|
||||
.on('end', function () {
|
||||
// Do something after request finishes
|
||||
onSuccess()
|
||||
})
|
||||
.pipe(fs.createWriteStream(filePath))
|
||||
}
|
||||
|
||||
// 检测更新,在你想要检查更新的时候执行,renderer事件触发后的操作自行编写
|
||||
function updateHandle (app, win, beforeQuit, updateUrl, log) {
|
||||
function updateHandle (app, win, beforeQuit, log) {
|
||||
// // 更新前,删除本地安装包 ↓
|
||||
// const updaterCacheDirName = 'dev-sidecar-updater'
|
||||
// const updatePendingPath = path.join(autoUpdater.app.baseCachePath, updaterCacheDirName, 'pending')
|
||||
|
@ -22,14 +48,54 @@ function updateHandle (app, win, beforeQuit, updateUrl, log) {
|
|||
// 本地开发环境,改变app-update.yml地址
|
||||
if (process.env.NODE_ENV === 'development' && !isMac) {
|
||||
autoUpdater.updateConfigPath = path.join(__dirname, 'win-unpacked/resources/app-update.yml')
|
||||
autoUpdater.setFeedURL({
|
||||
provider: 'generic',
|
||||
url: 'http://localhost/dev-sidecar/'
|
||||
})
|
||||
}
|
||||
autoUpdater.autoDownload = false
|
||||
|
||||
// 设置服务器更新地址
|
||||
autoUpdater.setFeedURL({
|
||||
provider: 'generic',
|
||||
url: updateUrl
|
||||
})
|
||||
let partPackagePath = null
|
||||
|
||||
function downloadPart (app, value) {
|
||||
const appPath = app.getAppPath()
|
||||
const fileDir = path.join(appPath, 'update')
|
||||
console.log('fileDir', fileDir)
|
||||
try {
|
||||
fs.accessSync(fileDir, fs.constants.F_OK)
|
||||
} catch (e) {
|
||||
fs.mkdirSync(fileDir)
|
||||
}
|
||||
const filePath = path.join(fileDir, value.version + '.zip')
|
||||
|
||||
downloadFile(value.partPackage, filePath, (data) => {
|
||||
win.webContents.send('update', { key: 'progress', value: parseInt(data) })
|
||||
}, () => {
|
||||
// 文件下载完成
|
||||
win.webContents.send('update', { key: 'progress', value: 100 })
|
||||
logger.info('升级包下载成功:', filePath)
|
||||
partPackagePath = filePath
|
||||
win.webContents.send('update', {
|
||||
key: 'downloaded',
|
||||
value: value
|
||||
})
|
||||
}, (error) => {
|
||||
sendUpdateMessage({ key: 'error', value: error, error: error })
|
||||
})
|
||||
}
|
||||
|
||||
function updatePart (app, value, partPackagePath) {
|
||||
const appPath = app.getAppPath()
|
||||
const target = path.join(appPath, 'resources')
|
||||
log.info('开始解压缩,安装升级包', partPackagePath, target)
|
||||
// 解压缩
|
||||
var zip = new AdmZip(partPackagePath)
|
||||
zip.extractAllTo(target, true)
|
||||
log.info('安装完成,重启app')
|
||||
app.relaunch()
|
||||
app.quit()
|
||||
}
|
||||
|
||||
autoUpdater.on('error', function (error) {
|
||||
log.info('autoUpdater error', error)
|
||||
sendUpdateMessage({ key: 'error', value: error, error: error })
|
||||
|
@ -63,6 +129,10 @@ function updateHandle (app, win, beforeQuit, updateUrl, log) {
|
|||
|
||||
ipcMain.on('update', (e, arg) => {
|
||||
if (arg.key === 'doUpdateNow') {
|
||||
if (partPackagePath) {
|
||||
updatePart(app, arg.value, partPackagePath)
|
||||
return
|
||||
}
|
||||
// some code here to handle event
|
||||
beforeQuit().then(() => {
|
||||
autoUpdater.quitAndInstall()
|
||||
|
@ -80,6 +150,11 @@ function updateHandle (app, win, beforeQuit, updateUrl, log) {
|
|||
// 下载新版本
|
||||
log.info('autoUpdater downloadUpdate')
|
||||
autoUpdater.downloadUpdate()
|
||||
} else if (arg.key === 'downloadPart') {
|
||||
// 下载增量更新版本
|
||||
log.info('autoUpdater downloadPart')
|
||||
// autoUpdater.downloadUpdate()
|
||||
downloadPart(app, arg.value)
|
||||
}
|
||||
})
|
||||
// 通过main进程发送事件给renderer进程,提示更新信息
|
||||
|
@ -95,7 +170,6 @@ function updateHandle (app, win, beforeQuit, updateUrl, log) {
|
|||
export default {
|
||||
install (context) {
|
||||
const { app, win, beforeQuit, log } = context
|
||||
const updateUrl = 'http://dev-sidecar.docmirror.cn/update/'
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
Object.defineProperty(app, 'isPackaged', {
|
||||
get () {
|
||||
|
@ -105,6 +179,6 @@ export default {
|
|||
// updateUrl = 'http://dev-sidecar.docmirror.cn/update/'
|
||||
// updateUrl = 'http://localhost/dev-sidecar/'
|
||||
}
|
||||
updateHandle(app, win, beforeQuit, updateUrl, log)
|
||||
updateHandle(app, win, beforeQuit, log)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
function install (app, api) {
|
||||
const updateParams = app.$global.update = { fromUser: false, autoDownload: true, progress: 0, downloading: false, newVersion: false }
|
||||
const updateParams = app.$global.update = { fromUser: false, autoDownload: true, progress: 0, downloading: false, newVersion: false, isFullUpdate: true }
|
||||
api.ipc.on('update', (event, message) => {
|
||||
console.log('on message', event, message)
|
||||
handleUpdateMessage(message, app)
|
||||
|
@ -16,6 +16,10 @@ function install (app, api) {
|
|||
downloadUpdate () {
|
||||
api.ipc.send('update', { key: 'downloadUpdate' })
|
||||
},
|
||||
downloadPart (value) {
|
||||
// 增量更新
|
||||
api.ipc.send('update', { key: 'downloadPart', value })
|
||||
},
|
||||
doUpdateNow () {
|
||||
api.ipc.send('update', { key: 'doUpdateNow' })
|
||||
}
|
||||
|
@ -50,6 +54,15 @@ function install (app, api) {
|
|||
function progressUpdate (value) {
|
||||
updateParams.progress = value
|
||||
}
|
||||
|
||||
function downloadNewVersion (value) {
|
||||
if (value.partPackage) {
|
||||
// 有增量更新
|
||||
api.update.downloadPart(value)
|
||||
} else {
|
||||
api.update.downloadUpdate()
|
||||
}
|
||||
}
|
||||
function foundNewVersion (value) {
|
||||
updateParams.newVersion = true
|
||||
|
||||
|
@ -71,18 +84,26 @@ function install (app, api) {
|
|||
}
|
||||
})
|
||||
|
||||
api.update.downloadUpdate()
|
||||
downloadNewVersion(value)
|
||||
return
|
||||
}
|
||||
app.$confirm({
|
||||
title: '发现新版本',
|
||||
content: `是否要更新到v${value.version}?`,
|
||||
cancelText: '暂不升级',
|
||||
okText: '升级',
|
||||
// content: h => <div><h4>{value.version}更新内容:</h4><div>{value.releaseNotes}</div></div>,
|
||||
content: h => {
|
||||
console.log(value)
|
||||
if (value.releaseNotes) {
|
||||
const notes = []
|
||||
for (const note of value.releaseNotes) {
|
||||
notes.push(<li>{note}</li>)
|
||||
}
|
||||
return <div><div>更新内容:</div><ol>{notes}</ol></div>
|
||||
}
|
||||
},
|
||||
onOk () {
|
||||
console.log('OK')
|
||||
api.update.downloadUpdate()
|
||||
downloadNewVersion(value)
|
||||
},
|
||||
onCancel () {
|
||||
console.log('Cancel')
|
||||
|
|
|
@ -30,11 +30,15 @@ module.exports = {
|
|||
},
|
||||
pluginOptions: {
|
||||
electronBuilder: {
|
||||
afterPack: './pkg/after-pack.js',
|
||||
nodeIntegration: true,
|
||||
// Provide an array of files that, when changed, will recompile the main process and restart Electron
|
||||
// Your main process file will be added by default
|
||||
mainProcessWatch: ['src/bridge', 'src/*.js', 'node_modules/dev-sidecar/src'],
|
||||
builderOptions: {
|
||||
// builderOptions: {
|
||||
// publish: ['github']// 此处写入github 就好,不用添加其他内容
|
||||
// },
|
||||
extraResources: [
|
||||
{
|
||||
from: 'extra',
|
||||
|
@ -57,7 +61,7 @@ module.exports = {
|
|||
},
|
||||
publish: {
|
||||
provider: 'generic',
|
||||
url: ''
|
||||
url: 'http://dev-sidecar.docmirror.cn/update/'
|
||||
}
|
||||
},
|
||||
chainWebpackMainProcess (config) {
|
||||
|
|
|
@ -901,12 +901,12 @@
|
|||
ajv "^6.12.0"
|
||||
ajv-keywords "^3.4.1"
|
||||
|
||||
"@docmirror/dev-sidecar@^1.4.0":
|
||||
version "1.4.0"
|
||||
resolved "https://registry.npmjs.org/@docmirror/dev-sidecar/-/dev-sidecar-1.4.0.tgz"
|
||||
integrity sha512-ZUjWfBMBy5O2H4AMufdGkE3OjhwsKEjySuSHnx9KIpmQymdsl89QsarYwnParIre7umgh24AflwHq0Baef1cOg==
|
||||
"@docmirror/dev-sidecar@^1.5.0":
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@docmirror/dev-sidecar/-/dev-sidecar-1.5.0.tgz#cbded77651fc5a8dbee5d84db083a06518928cfd"
|
||||
integrity sha512-f2eDfOs9PDOBxFpAxo/nImSRfwqVi/tVFdzyv4Bn10kBcBJY8iiqYWpqq+blvgWSO43V+UyG1VNXagqHK37GLQ==
|
||||
dependencies:
|
||||
"@docmirror/mitmproxy" "^1.4.0"
|
||||
"@docmirror/mitmproxy" "^1.5.0"
|
||||
agentkeepalive "^2.1.1"
|
||||
babel-preset-es2020 "^1.0.2"
|
||||
charset "^1.0.0"
|
||||
|
@ -934,12 +934,13 @@
|
|||
validator "^13.1.17"
|
||||
winreg "^1.2.4"
|
||||
|
||||
"@docmirror/mitmproxy@^1.4.0":
|
||||
version "1.4.0"
|
||||
resolved "https://registry.npmjs.org/@docmirror/mitmproxy/-/mitmproxy-1.4.0.tgz"
|
||||
integrity sha512-RAFcSqKD8huDPaUFs7k/pSijOc4PC0+JRp5dOk6NYfNDveKsJuPf1fjqbb6HqmbByjE+c+M09lwU3yX/XXqw9A==
|
||||
"@docmirror/mitmproxy@^1.5.0":
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@docmirror/mitmproxy/-/mitmproxy-1.5.0.tgz#16b9a956542a56f9889cd0c69c08a33d06d77ab8"
|
||||
integrity sha512-H17TAqKmvzCMSTO6VGTC6kKQskjk1gEJZYsU2ijziZU0XEC96ObG0TWOnsdKh2PhmwDLwxS9cUyb1hpYilLreQ==
|
||||
dependencies:
|
||||
agentkeepalive "^2.1.1"
|
||||
axios "^0.21.1"
|
||||
child_process "^1.0.2"
|
||||
colors "^1.1.2"
|
||||
commander "^2.9.0"
|
||||
|
@ -956,6 +957,7 @@
|
|||
node-cmd "^3.0.0"
|
||||
node-forge "^0.8.2"
|
||||
require-context "^1.1.0"
|
||||
stream-throttle "^0.1.3"
|
||||
through2 "^2.0.1"
|
||||
tunnel-agent "^0.4.3"
|
||||
util "^0.12.3"
|
||||
|
@ -1603,6 +1605,13 @@
|
|||
dependencies:
|
||||
"@types/yargs-parser" "*"
|
||||
|
||||
"@types/yauzl@^2.9.1":
|
||||
version "2.9.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af"
|
||||
integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@vue/babel-helper-vue-jsx-merge-props@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz?cache=0&sync_timestamp=1596768129236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-helper-vue-jsx-merge-props%2Fdownload%2F%40vue%2Fbabel-helper-vue-jsx-merge-props-1.0.0.tgz"
|
||||
|
@ -2069,6 +2078,11 @@ address@^1.1.2:
|
|||
resolved "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz"
|
||||
integrity sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=
|
||||
|
||||
adm-zip@^0.5.5:
|
||||
version "0.5.5"
|
||||
resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.5.5.tgz#b6549dbea741e4050309f1bb4d47c47397ce2c4f"
|
||||
integrity sha512-IWwXKnCbirdbyXSfUDvCCrmYrOHANRZcc8NcRrvTlIApdl7PwE9oGcsYvNeJPAVY1M+70b4PxXGKIf8AEuiQ6w==
|
||||
|
||||
agentkeepalive@^2.1.1:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz"
|
||||
|
@ -2488,6 +2502,13 @@ aws4@^1.8.0:
|
|||
resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.10.1.tgz?cache=0&sync_timestamp=1597236947743&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.1.tgz"
|
||||
integrity sha1-4eguTz6Zniz9YbFhKA0WoRH4ZCg=
|
||||
|
||||
axios@^0.21.1:
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
|
||||
integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
|
||||
dependencies:
|
||||
follow-redirects "^1.10.0"
|
||||
|
||||
babel-code-frame@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz"
|
||||
|
@ -2702,6 +2723,14 @@ bindings@^1.5.0:
|
|||
dependencies:
|
||||
file-uri-to-path "1.0.0"
|
||||
|
||||
bl@^1.0.0:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7"
|
||||
integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==
|
||||
dependencies:
|
||||
readable-stream "^2.3.5"
|
||||
safe-buffer "^5.1.1"
|
||||
|
||||
bluebird-lst@^1.0.9:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.npm.taobao.org/bluebird-lst/download/bluebird-lst-1.0.9.tgz"
|
||||
|
@ -2895,6 +2924,19 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.5:
|
|||
escalade "^3.1.0"
|
||||
node-releases "^1.1.61"
|
||||
|
||||
buffer-alloc-unsafe@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
|
||||
integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
|
||||
|
||||
buffer-alloc@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
|
||||
integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
|
||||
dependencies:
|
||||
buffer-alloc-unsafe "^1.1.0"
|
||||
buffer-fill "^1.0.0"
|
||||
|
||||
buffer-crc32@~0.2.3:
|
||||
version "0.2.13"
|
||||
resolved "https://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz"
|
||||
|
@ -2905,6 +2947,11 @@ buffer-equal@0.0.1:
|
|||
resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz"
|
||||
integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=
|
||||
|
||||
buffer-fill@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
|
||||
integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
|
||||
|
||||
buffer-from@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz"
|
||||
|
@ -3514,7 +3561,7 @@ commander@2.17.x:
|
|||
resolved "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1598576116597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz"
|
||||
integrity sha1-vXerfebelCBc6sxy8XFtKfIKd78=
|
||||
|
||||
commander@^2.18.0, commander@^2.20.0, commander@^2.9.0:
|
||||
commander@^2.18.0, commander@^2.2.0, commander@^2.20.0, commander@^2.9.0:
|
||||
version "2.20.3"
|
||||
resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
|
||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
||||
|
@ -3553,6 +3600,21 @@ compressible@~2.0.16:
|
|||
dependencies:
|
||||
mime-db ">= 1.43.0 < 2"
|
||||
|
||||
compressing@^1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/compressing/-/compressing-1.5.1.tgz#d031a3311b8c2ed6561a8431671d5a844540482d"
|
||||
integrity sha512-1AGBR4Vh0/rpPKSXHoV9cerLo0CUlAhZ/xsJqU3a9+2cbSaFjWT3fk2MIGkCnbpk//DGWrcWw03rhKFQrA9RQw==
|
||||
dependencies:
|
||||
flushwritable "^1.0.0"
|
||||
get-ready "^1.0.0"
|
||||
iconv-lite "^0.5.0"
|
||||
mkdirp "^0.5.1"
|
||||
pump "^3.0.0"
|
||||
streamifier "^0.1.1"
|
||||
tar-stream "^1.5.2"
|
||||
yauzl "^2.7.0"
|
||||
yazl "^2.4.2"
|
||||
|
||||
compression@^1.7.4:
|
||||
version "1.7.4"
|
||||
resolved "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz"
|
||||
|
@ -4542,6 +4604,13 @@ electron-publish@22.9.1:
|
|||
lazy-val "^1.0.4"
|
||||
mime "^2.4.6"
|
||||
|
||||
electron-reload@^1.5.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/electron-reload/-/electron-reload-1.5.0.tgz#179ab1f6941fcf0ed261c37b16dc465e201348f5"
|
||||
integrity sha512-L9X6LzsL3Bt2j0eJ4/MBrI9Vt902KvVUtBB7J4qrL1A9sXqC2fE0lpvUAlOThpJYh6zWO1l86U/YiEN9bDURHw==
|
||||
dependencies:
|
||||
chokidar "^3.0.2"
|
||||
|
||||
electron-store@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.npmjs.org/electron-store/-/electron-store-6.0.1.tgz"
|
||||
|
@ -5186,6 +5255,17 @@ extract-zip@^1.0.3, extract-zip@^1.6.5:
|
|||
mkdirp "^0.5.4"
|
||||
yauzl "^2.10.0"
|
||||
|
||||
extract-zip@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
|
||||
integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
|
||||
dependencies:
|
||||
debug "^4.1.1"
|
||||
get-stream "^5.1.0"
|
||||
yauzl "^2.10.0"
|
||||
optionalDependencies:
|
||||
"@types/yauzl" "^2.9.1"
|
||||
|
||||
extsprintf@1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz"
|
||||
|
@ -5417,11 +5497,21 @@ flush-write-stream@^1.0.0:
|
|||
inherits "^2.0.3"
|
||||
readable-stream "^2.3.6"
|
||||
|
||||
flushwritable@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/flushwritable/-/flushwritable-1.0.0.tgz#3e328d8fde412ad47e738e3be750b4d290043498"
|
||||
integrity sha1-PjKNj95BKtR+c44751C00pAENJg=
|
||||
|
||||
follow-redirects@^1.0.0:
|
||||
version "1.13.0"
|
||||
resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.0.tgz?cache=0&sync_timestamp=1597057976909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz"
|
||||
integrity sha1-tC6Nk6Kn7qXtiGM2dtZZe8jjhNs=
|
||||
|
||||
follow-redirects@^1.10.0:
|
||||
version "1.13.3"
|
||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267"
|
||||
integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==
|
||||
|
||||
for-in@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz"
|
||||
|
@ -5494,6 +5584,11 @@ from2@^2.1.0:
|
|||
inherits "^2.0.1"
|
||||
readable-stream "^2.0.0"
|
||||
|
||||
fs-constants@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
|
||||
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
|
||||
|
||||
fs-extra@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz"
|
||||
|
@ -5591,6 +5686,11 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5:
|
|||
resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz"
|
||||
integrity sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=
|
||||
|
||||
get-ready@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/get-ready/-/get-ready-1.0.0.tgz#f91817f1e9adecfea13a562adfc8de883ab34782"
|
||||
integrity sha1-+RgX8emt7P6hOlYq38jeiDqzR4I=
|
||||
|
||||
get-stream@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz?cache=0&sync_timestamp=1597056502934&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-3.0.0.tgz"
|
||||
|
@ -6128,6 +6228,13 @@ iconv-lite@0.4.24, iconv-lite@^0.4.13, iconv-lite@^0.4.24:
|
|||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3"
|
||||
|
||||
iconv-lite@^0.5.0:
|
||||
version "0.5.2"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.2.tgz#af6d628dccfb463b7364d97f715e4b74b8c8c2b8"
|
||||
integrity sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==
|
||||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3"
|
||||
|
||||
iconv-lite@^0.6.2:
|
||||
version "0.6.2"
|
||||
resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.6.2.tgz"
|
||||
|
@ -7082,6 +7189,11 @@ lie@~3.3.0:
|
|||
dependencies:
|
||||
immediate "~3.0.5"
|
||||
|
||||
limiter@^1.0.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2"
|
||||
integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==
|
||||
|
||||
lines-and-columns@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz"
|
||||
|
@ -9187,7 +9299,7 @@ read-pkg@^5.1.1:
|
|||
parse-json "^5.0.0"
|
||||
type-fest "^0.6.0"
|
||||
|
||||
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
|
||||
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
|
||||
version "2.3.7"
|
||||
resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1589682741447&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"
|
||||
integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=
|
||||
|
@ -9356,6 +9468,13 @@ request-progress@^2.0.1:
|
|||
dependencies:
|
||||
throttleit "^1.0.0"
|
||||
|
||||
request-progress@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe"
|
||||
integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=
|
||||
dependencies:
|
||||
throttleit "^1.0.0"
|
||||
|
||||
request@^2.81.0, request@^2.88.2:
|
||||
version "2.88.2"
|
||||
resolved "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz?cache=0&sync_timestamp=1589682741998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz"
|
||||
|
@ -10127,6 +10246,19 @@ stream-shift@^1.0.0:
|
|||
resolved "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz"
|
||||
integrity sha1-1wiCgVWasneEJCebCHfaPDktWj0=
|
||||
|
||||
stream-throttle@^0.1.3:
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/stream-throttle/-/stream-throttle-0.1.3.tgz#add57c8d7cc73a81630d31cd55d3961cfafba9c3"
|
||||
integrity sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=
|
||||
dependencies:
|
||||
commander "^2.2.0"
|
||||
limiter "^1.0.5"
|
||||
|
||||
streamifier@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/streamifier/-/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f"
|
||||
integrity sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=
|
||||
|
||||
streamroller@^2.2.4:
|
||||
version "2.2.4"
|
||||
resolved "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz"
|
||||
|
@ -10389,6 +10521,19 @@ tapable@^1.0.0, tapable@^1.1.3:
|
|||
resolved "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1600381197118&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz"
|
||||
integrity sha1-ofzMBrWNth/XpF2i2kT186Pme6I=
|
||||
|
||||
tar-stream@^1.5.2:
|
||||
version "1.6.2"
|
||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
|
||||
integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==
|
||||
dependencies:
|
||||
bl "^1.0.0"
|
||||
buffer-alloc "^1.2.0"
|
||||
end-of-stream "^1.0.0"
|
||||
fs-constants "^1.0.0"
|
||||
readable-stream "^2.3.0"
|
||||
to-buffer "^1.1.1"
|
||||
xtend "^4.0.0"
|
||||
|
||||
tar@^6.0.2:
|
||||
version "6.0.5"
|
||||
resolved "https://registry.npm.taobao.org/tar/download/tar-6.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.5.tgz"
|
||||
|
@ -10569,6 +10714,11 @@ to-arraybuffer@^1.0.0:
|
|||
resolved "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz"
|
||||
integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
|
||||
|
||||
to-buffer@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
|
||||
integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==
|
||||
|
||||
to-fast-properties@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz"
|
||||
|
@ -11643,7 +11793,7 @@ yargs@^6.5.0:
|
|||
y18n "^3.2.1"
|
||||
yargs-parser "^4.2.0"
|
||||
|
||||
yauzl@^2.10.0:
|
||||
yauzl@^2.10.0, yauzl@^2.7.0:
|
||||
version "2.10.0"
|
||||
resolved "https://registry.npm.taobao.org/yauzl/download/yauzl-2.10.0.tgz"
|
||||
integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
|
||||
|
@ -11651,6 +11801,13 @@ yauzl@^2.10.0:
|
|||
buffer-crc32 "~0.2.3"
|
||||
fd-slicer "~1.1.0"
|
||||
|
||||
yazl@^2.4.2:
|
||||
version "2.5.1"
|
||||
resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35"
|
||||
integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==
|
||||
dependencies:
|
||||
buffer-crc32 "~0.2.3"
|
||||
|
||||
yorkie@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@docmirror/mitmproxy",
|
||||
"version": "1.5.0",
|
||||
"version": "1.5.1",
|
||||
"description": "",
|
||||
"main": "src/index.js",
|
||||
"keywords": [
|
||||
|
|
Loading…
Reference in New Issue