commit 1b5bb54dceea6abe33fa7839ea5f2d512d4c8172 Author: Xen Date: Mon May 4 22:00:55 2020 +0800 first commit diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..9a81a27 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,17 @@ +{ + "env": { + "browser": true, + "commonjs": true, + "es6": true + }, + "extends": "eslint:recommended", + "globals": { + "Atomics": "readonly", + "SharedArrayBuffer": "readonly" + }, + "parserOptions": { + "ecmaVersion": 2018 + }, + "rules": { + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8e3a106 --- /dev/null +++ b/.gitignore @@ -0,0 +1,89 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock +.DS_Store + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# Webpack +.webpack/ + +# Electron-Forge +out/ diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..b92d1cd --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,22 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Debug Main Process", + "type": "node", + "request": "launch", + "cwd": "${workspaceFolder}", + "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", + "windows": { + "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd" + }, + "args": [ + "." + ], + "outputCapture": "std" + } + ] +} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9b10bbb --- /dev/null +++ b/LICENSE @@ -0,0 +1,23 @@ +MIT License + +Copyright (c) 2019 - present Xen Kuo + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e673814 --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ +# comNG -- 串口助手 + +`comNG` 是一款具有现代化 UI 设计并且功能强大的串口助手软件。 + +## 介绍 + +comNG 区别于其他串口助手的地方在于其强大的 “现场数据分析“ 能力。简单来说就是 comNG 提供的多种功能以帮助用户更方便的分析打印输出文本。这些功能包括: + +- 内建的 comNGLang 高亮语法 +- 内建的手动文本高亮功能(类似于 notepad++的 Style Token) +- 搜索文本高亮 (类似于 vscode 的搜索文本高亮) +- 选择文本高亮 (类似于 vscode 的选择文本高亮) +- 基于文本内容的中断功能,全新的功能 +- 日志文档的签名(时间和姓名) +- 跨平台:Windows, Mac OS 以及 Ubuntu 等 Linux 系统 + +另外还包含一些串口助手通用的功能: + +- Modem 信号指示和控制 +- 自定义波特率 +- 十六进制接收 +- 接收时间戳 +- 发送文本 +- 流控 +- 文件保存和打开,支持拖动 + +当然还有一些不支持的功能,比如: + +- 十六进制发送 +- 文件发送 +- 抓取至文件 + +## 用户界面 + +![image](/image/preview.jpg) + +## 使用方法 + +下载对应系统的安装文件,安装,然后就应该可以正常使用了。对于 Linux 系统,可能对串口设备文件执行以下命令: + +`sudo chmod 666 /dev/ttyS1` + +记得把 `ttyS1` 替换为你的串口设备文件。 + +## 开发 + +### 克隆代码 + +``` +git clone git@gitee.com:xenkuo/comNG.git +``` + +### 安装依赖文件 + +``` +cd comNG +yarn +``` + +Windows 下安装 node 和 electron 比较麻烦,建议使用以下 `.npmrc` 文件配置: + +``` +registry=https://registry.npm.taobao.org +electron_mirror=https://cdn.npm.taobao.org/dist/electron/ +electron_custom_dir=7.1.11 +``` + +Windows 下安装 native 编译工具更麻烦,建议多试试,因为我现在在其他 Windows 上也安装不成功了。。。 + +### 编译 + +``` +code . +yarn start +yarn make +``` + +## Licence + +comNG is [MIT](https://opensource.org/licenses/MIT) licensed and all it's dependencies are MIT licensed. diff --git a/image/advance.jpg b/image/advance.jpg new file mode 100644 index 0000000..4e8bc2b Binary files /dev/null and b/image/advance.jpg differ diff --git a/image/bar-color-1.jpg b/image/bar-color-1.jpg new file mode 100644 index 0000000..e0678f6 Binary files /dev/null and b/image/bar-color-1.jpg differ diff --git a/image/bar-color-2.jpg b/image/bar-color-2.jpg new file mode 100644 index 0000000..f2c8488 Binary files /dev/null and b/image/bar-color-2.jpg differ diff --git a/image/comNGLang.jpg b/image/comNGLang.jpg new file mode 100644 index 0000000..2949537 Binary files /dev/null and b/image/comNGLang.jpg differ diff --git a/image/dmg-background.png b/image/dmg-background.png new file mode 100644 index 0000000..abd2e3e Binary files /dev/null and b/image/dmg-background.png differ diff --git a/image/highlighter.jpg b/image/highlighter.jpg new file mode 100644 index 0000000..e9d8362 Binary files /dev/null and b/image/highlighter.jpg differ diff --git a/image/logo.icns b/image/logo.icns new file mode 100755 index 0000000..09510e0 Binary files /dev/null and b/image/logo.icns differ diff --git a/image/logo.ico b/image/logo.ico new file mode 100755 index 0000000..709f1bb Binary files /dev/null and b/image/logo.ico differ diff --git a/image/logo.png b/image/logo.png new file mode 100644 index 0000000..9c74ba6 Binary files /dev/null and b/image/logo.png differ diff --git a/image/preview.jpg b/image/preview.jpg new file mode 100644 index 0000000..2d84209 Binary files /dev/null and b/image/preview.jpg differ diff --git a/package.json b/package.json new file mode 100644 index 0000000..aba221c --- /dev/null +++ b/package.json @@ -0,0 +1,102 @@ +{ + "name": "comNG", + "productName": "comNG", + "version": "1.0.4", + "description": "My Electron application description", + "repository": "https://github.com/xenkuo/comNG", + "main": "src/main.js", + "scripts": { + "start": "electron-forge start", + "rebuild": "electron-rebuild -f -w serialport", + "package": "electron-forge package", + "make": "electron-forge make", + "publish": "electron-forge publish", + "lint": "echo \"No linting configured\"" + }, + "keywords": [], + "author": { + "name": "Xen", + "email": "xenkuo@gmail.com" + }, + "license": "MIT", + "config": { + "forge": { + "packagerConfig": { + "asar": true, + "ignore": [ + "node_modules/monaco-editor/(dev|esm|min-maps|monaco.d.ts)", + "node_modules/materialize-css/(extras|js|sass)", + "node_modules/material-design-icons/(?!iconfont)" + ], + "icon": "image/logo" + }, + "makers": [ + { + "name": "@electron-forge/maker-squirrel", + "config": { + "authors": "Xen", + "setupIcon": "image/logo.ico" + } + }, + { + "name": "@electron-forge/maker-dmg", + "config": { + "icon": "./image/logo.icns", + "background": "./image/dmg-background.png", + "format": "ULFO" + } + }, + { + "name": "@electron-forge/maker-deb", + "config": { + "options": { + "maintainer": "Xen", + "icon": "./image/logo.png", + "mimeType": [ + "cnl", + "text" + ], + "section": "utils", + "categories": [ + "Utilify" + ], + "homepage": "https://xenkuo.github.io", + "description": "comNG is a serialport tool from next generation!" + } + } + } + ], + "publishers": [ + { + "name": "@electron-forge/publisher-github", + "config": { + "repository": { + "owner": "xenkuo", + "name": "comNG" + }, + "draft": true + } + } + ] + } + }, + "dependencies": { + "electron-localshortcut": "^3.2.1", + "electron-squirrel-startup": "^1.0.0", + "electron-store": "^5.1.0", + "material-design-icons": "^3.0.1", + "materialize-css": "^1.0.0-rc.2", + "monaco-editor": "^0.20.0", + "serialport": "^8.0.7" + }, + "devDependencies": { + "@electron-forge/cli": "6.0.0-beta.47", + "@electron-forge/maker-deb": "6.0.0-beta.47", + "@electron-forge/maker-dmg": "^6.0.0-beta.49", + "@electron-forge/maker-squirrel": "6.0.0-beta.47", + "@electron-forge/publisher-github": "^6.0.0-beta.50", + "electron": "7.1.11", + "electron-rebuild": "^1.10.0", + "eslint": "^6.8.0" + } +} \ No newline at end of file diff --git a/src/editor.js b/src/editor.js new file mode 100644 index 0000000..3249418 --- /dev/null +++ b/src/editor.js @@ -0,0 +1,548 @@ +/* eslint-disable no-unused-vars */ +/* eslint-disable no-undef */ +const fs = require("fs"); +const path = require("path"); +const amdLoader = require("../node_modules/monaco-editor/min/vs/loader.js"); +const { dialog } = require("electron").remote; + +const amdRequire = amdLoader.require; +const hexmodeUnitWidth = 8; + +const decoMod = 7; +const decoTable = [ + { style: "hl-red", color: "#ff8a80" }, + { style: "hl-orange", color: "#ffd180" }, + { style: "hl-yellow", color: "#ffff8d" }, + { style: "hl-green", color: "#b9f6ca" }, + { style: "hl-blue", color: "8dd8ff" }, + { style: "hl-indigo", color: "8c9eff" }, + { style: "hl-purple", color: "ea80fc" }, +]; + +var editor; +var hexmodeIndex = 0; +var hexmodeUnitIndex = 0; +var breakpointHit = false; +var breakpointAfterLines = 0; +var breakpointBuff = []; +var half_line = false; +var decoIndex = 0; + +function uriFromPath(_path) { + var pathName = path.resolve(_path).replace(/\\/g, "/"); + if (pathName.length > 0 && pathName.charAt(0) !== "/") { + pathName = "/" + pathName; + } + return encodeURI("file://" + pathName); +} + +function decoGet() { + return decoTable[decoIndex++ % decoMod]; +} + +function decoApply(m, text) { + let matches = m.findMatches( + text, + false, + false, + true, + "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?", + false + ); + let decoration = decoGet(); + + console.log(decoration.style, decoration.color); + + for (let i of matches) { + let range = i.range; + + m.deltaDecorations( + [], + [ + { + range: range, + options: { + className: decoration.style, + overviewRuler: { + color: decoration.color, + position: 4, // position right + }, + }, + }, + ] + ); + } +} + +function decoRemove(m, text) { + let matches = m.findMatches( + text, + false, + false, + true, + "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?", + false + ); + + for (let match of matches) { + let decos = m.getDecorationsInRange(match.range); + + // super word remove decoration will cause sub word decoration to 1 + for (let deco of decos) { + m.deltaDecorations([deco.id], []); + } + } +} + +function highlightToggle() { + console.log("highligh toggle"); + let decoExpectedLength = 1; + let m = editor.getModel(); + let range = editor.getSelection(); + let text = m.getValueInRange(range); + if (text === "") { + let word = m.getWordAtPosition(editor.getPosition()); + text = word.word; + range.startColumn = word.startColumn; + range.endColumn = word.endColumn; + decoExpectedLength = 2; + } + + if (text === "") return; + + let decos = m.getDecorationsInRange(range); + if (decos.length === decoExpectedLength) { + decoApply(m, text); + } else { + decoRemove(m, text); + } + + return null; +} + +function openFile() { + dialog + .showOpenDialog({ + properties: ["openFile"], + filters: [{ name: "comNG log", extensions: ["cnl", "txt"] }], + }) + .then((result) => { + if (result.canceled === false) { + const file = result.filePaths[0]; + const text = fs.readFileSync(file).toString(); + editor.getModel().setValue(text); + } + }); +} + +function saveToFile() { + let fileName = new Date(+new Date() + 8 * 3600 * 1000); + fileName = "Log-" + fileName.toISOString(); + fileName = fileName.replace(/[.|:]/g, "-"); + if (config.advance.sign.switch === true && config.advance.sign.name !== "") + fileName += "-" + config.advance.sign.name; + + dialog + .showSaveDialog({ + properties: ["createDirectory"], + defaultPath: fileName, + filters: [{ name: "comNG Log", extensions: ["cnl"] }], + }) + .then((result) => { + if (result.canceled === false) { + const file = result.filePath; + const text = editor.getModel().getValue(); + fs.writeFileSync(file, text); + } + }); +} + +function getTimestamp() { + const t = new Date(); + + return ( + t.toLocaleTimeString().split(" ")[0] + + ":" + + t.getMilliseconds().toString().padStart(3, 0) + + " " + ); +} + +function editorAppend(text) { + const lineCount = editor.getModel().getLineCount(); + const lastLineLength = editor.getModel().getLineMaxColumn(lineCount); + + const range = new monaco.Range( + lineCount, + lastLineLength, + lineCount, + lastLineLength + ); + + editor.getModel().applyEdits([ + { + forceMoveMarkers: true, + range: range, + text: text.toString(), + }, + ]); + + editor.revealLine(editor.getModel().getLineCount()); +} + +function buff2hex(buff) { + return Array.prototype.map + .call(new Uint8Array(buff), (x) => ("00" + x.toString(16)).slice(-2)) + .join(""); +} + +function showHex(buff) { + let hexBuff = buff2hex(buff); + + while (hexBuff.length !== 0) { + let len = hexmodeUnitWidth - hexmodeIndex; + if (hexBuff.length < len) len = hexBuff.length; + let line = hexBuff.slice(0, len); + + hexmodeIndex = (hexmodeIndex + len) % hexmodeUnitWidth; + if (hexmodeIndex === 0) { + hexmodeUnitIndex++; + if (hexmodeUnitIndex === 4) { + hexmodeUnitIndex = 0; + line += "\n"; + } else { + line += " "; + } + } + editorAppend(line); + + hexBuff = hexBuff.slice(len, hexBuff.length); + } +} + +function breakpointProcess(line) { + if (breakpointHit === false) { + let bpLine = line; + + if (breakpointBuff.length !== 0) { + bpLine = Buffer.concat( + [breakpointBuff, line], + line.length + breakpointBuff.length + ); + breakpointBuff = []; + } + + if (bpLine.includes(config.advance.breakpoint.onText) === true) { + breakpointHit = true; + breakpointAfterLines = 0; + } + } else { + breakpointAfterLines++; + if (breakpointAfterLines >= config.advance.breakpoint.afterLines) { + breakpointHit = false; + breakpointAfterLines = 0; + + return true; + } + } + + return false; +} + +function processSerialData(buff) { + if (config.general.hexmode === true) { + showHex(buff); + } else { + let index = -1; + // console.log(buff) + // console.log(buff.toString()) + while ((index = buff.indexOf("\n")) !== -1) { + let line = buff.slice(0, index + 1); + // console.log(line) + + if (half_line === true) { + editorAppend(line); + half_line = false; + } else { + let timestamp = ""; + + if (config.general.timestamp === true) timestamp = getTimestamp(); + editorAppend(timestamp + line); + } + buff = buff.slice(index + 1, buff.length); + // console.log(buff) + + if (config.advance.breakpoint.switch === true) { + if (breakpointProcess(line) === true) { + buff = []; + serialClose(); + } + } + } + if (buff.length !== 0) { + if (half_line === false) { + let timestamp = ""; + + if (config.general.timestamp === true) timestamp = getTimestamp(); + editorAppend(timestamp + buff); + half_line = true; + } else { + editorAppend(buff); + } + } + if (config.advance.breakpoint.switch === true) { + breakpointBuff = buff; + } + } +} + +amdRequire.config({ + // eslint-disable-next-line no-undef + baseUrl: uriFromPath( + path.join(__dirname, "../node_modules/monaco-editor/min") + ), +}); + +// workaround monaco-css not understanding the environment +self.module = undefined; + +amdRequire(["vs/editor/editor.main"], function () { + monaco.languages.register({ + id: "comNGLang", + }); + monaco.languages.setMonarchTokensProvider("comNGLang", { + defaultToken: "", + + tokenizer: { + root: [ + [/^\[?[f|F][a|A][t|T][a|A][l|L]\]?\s.*/, "fatal"], + [/\s+\[?[f|F][a|A][t|T][a|A][l|L]\]?\s+/, "fatal"], + [/^\[?F\]?\s.*/, "fatal"], + [/\s+\[?F\]?\s+/, "fatal"], + [/^\[?[e|E][r|R][r|R][o|O][r|R]\]?\s.*/, "error"], + [/\s+\[?[e|E][r|R][r|R][o|O][r|R]\]?\s+/, "error"], + [/^\[?E\]?\s.*/, "error"], + [/\s+\[?E\]?\s+/, "error"], + [/^\[?[w|W][a|A][r|R][n|N]\]?\s.*/, "warn"], + [/\s+\[?[w|W][a|A][r|R][n|N]\]?\s+/, "warn"], + [/^\[?W\]?\s.*/, "warn"], + [/\s+\[?W\]?\s+/, "warn"], + [/^\[?[i|I][n|N][f|F][o|O]\]?\s.*/, "info"], + [/\s+\[?[i|I][n|N][f|F][o|O]\]?\s+/, "info"], + [/^\[?I\]?\s.*/, "info"], + [/\s+\[?I\]?\s+/, "info"], + [/^\[?[t|T][r|R][a|A][c|C][e|E]\]?\s.*/, "trace"], + [/\s+\[?[t|T][r|R][a|A][c|C][e|E]\]?\s+/, "trace"], + [/^\[?T\]?\s.*/, "trace"], + [/\s+\[?T\]?\s+/, "trace"], + [/^\[?[d|D][e|E][b|B][u|U][g|G]\]?\s.*/, "debug"], + [/\s+\[?[d|D][e|E][b|B][u|U][g|G]\]?\s+/, "debug"], + [/^\[?D\]?\s.*/, "debug"], + [/\s+\[?D\]?\s+/, "debug"], + + [/\[\d;\d{2}m/, "useless"], + [/\[\dm/, "useless"], + + [/[{}()[\]]/, "bracket"], + [/^\d{1,2}:\d{2}:\d{2}:\d{1,3}/, "timestamp"], + [/\d{1,4}(-|\/|\.|:)\d{1,2}\1\d{1,4}/, "time"], + [ + /(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)(-|\/|\.|:)(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\2(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\2(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)/, + "ip", + ], + [ + /[0-9a-fA-F]{2}(-|\/|\.|:)[0-9a-fA-F]{2}\1[0-9a-fA-F]{2}\1[0-9a-fA-F]{2}\1[0-9a-fA-F]{2}\1[0-9a-fA-F]{2}/, + "mac", + ], + [/\d*\.\d+([eE][-+]?\d+)?/, "number"], + [/0[xX][0-9a-fA-F]+/, "number"], + [/[0-9a-fA-F]{4,}/, "number"], + [/\d+/, "number"], + ], + }, + }); + + // Define a new theme that contains only rules that match this language + monaco.editor.defineTheme("comNGTheme", { + base: "vs", + inherit: false, + colors: { + "editor.background": "#fafafa", + "scrollbarSlider.background": "#fafafa", + }, + rules: [ + { token: "number", foreground: "2e7d32" }, + { token: "bracket", foreground: "ff9800" }, + { token: "timestamp", foreground: "009688" }, + { token: "time", foreground: "2196f3" }, + { token: "ip", foreground: "03a9f4" }, + { token: "mac", foreground: "00bcd4" }, + { token: "fatal", foreground: "e91e63" }, + { token: "error", foreground: "f44336" }, + { token: "warn", foreground: "ff9800" }, + { token: "info", foreground: "9e9e9e" }, + { token: "trace", foreground: "9e9d24" }, + { token: "debug", foreground: "2e7d32" }, + { token: "useless", foreground: "cecece" }, + ], + }); + + editor = monaco.editor.create(document.getElementById("editor-area"), { + theme: "comNGTheme", + language: "comNGLang", + automaticLayout: true, + readOnly: true, + folding: false, + fontFamily: config.general.fontFamily, + fontSize: config.general.fontSize, + overviewRulerBorder: false, + scrollBeyondLastLine: false, + smoothScrolling: true, + mouseWheelZoom: true, // combined with Ctrl + wordWrap: "on", + wordWrapBreakAfterCharacters: "", + wordWrapBreakBeforeCharacters: "", + lineNumbersMinChars: 3, + minimap: { + enabled: false, + }, + scrollbar: { + vertical: "auto", + useShadows: false, + verticalScrollbarSize: 10, + }, + }); + + let editorConfig = { + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ['"', '"'], + ["'", "'"], + ], + }; + monaco.languages.setLanguageConfiguration("comNGLang", editorConfig); + + editor.addAction({ + id: "highlight-toggle", + label: "Highlight Toggle", + keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_E], + precondition: null, + keybindingContext: null, + contextMenuGroupId: "9_cutcopypaste", + contextMenuOrder: 1.5, + run: highlightToggle, + }); + + // editor.addAction({ + // id: "open-file", + // label: "Open File...", + // keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_O], + // precondition: null, + // keybindingContext: null, + // contextMenuGroupId: "9_cutcopypaste", + // contextMenuOrder: 1.5, + // run: dummy, + // }); + + // editor.addAction({ + // id: "save-to-file", + // label: "Save To File...", + // keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_S], + // precondition: null, + // keybindingContext: null, + // contextMenuGroupId: "9_cutcopypaste", + // contextMenuOrder: 1.5, + // run: dummy, + // }); + + editor.addCommand(monaco.KeyMod.CtrlCmd + monaco.KeyCode.KEY_W, () => { + // Do nothing but prevent default action: close window + }); + + editor.addCommand(monaco.KeyMod.CtrlCmd + monaco.KeyCode.KEY_X, () => { + // Do nothing but prevent default action: close window + }); +}); + +document.getElementById("clear-btn").onclick = () => { + let value = ""; + + if (config.advance.sign.switch === true) { + value = "Captured at " + new Date().toLocaleString() + " with comNG"; + if (config.advance.sign.name !== "") + value += " by " + config.advance.sign.name + "."; + value += "\n"; + } + hexmodeIndex = 0; + editor.getModel().setValue(value); +}; + +document.getElementById("editor-font-family").onblur = (e) => { + let font = e.target.value.trim(); + + if (font === "") + font = + "Consolas, 'SF Mono', Menlo, 'Lucida Console', 'Courier New', monospace"; + editor.updateOptions({ fontFamily: font }); + configUpdate("general.fontFamily", font); +}; + +document.getElementById("editor-font-size").onblur = (e) => { + let size = e.target.value.trim(); + if (size === "") size = 12; + + editor.updateOptions({ fontSize: size }); + configUpdate("general.fontSize", size); +}; + +document.getElementById("breakpoint-switch").onclick = (e) => { + if (e.target.checked === true) { + if (config.advance.breakpoint.onText.length === 0) { + toast("Error: Breakpoint on-text cant be empty"); + e.target.checked = false; + return; + } + } + + configUpdate("advance.breakpoint.switch", e.target.checked); + breakpointHit = false; + breakpointAfterLines = 0; +}; + +document.getElementById("breakpoint-on-text").onblur = (e) => { + configUpdate("advance.breakpoint.onText", e.target.value); +}; + +document.getElementById("breakpoint-after-lines").onblur = (e) => { + let lines = parseInt(e.target.value); + + if (isNaN(lines) === true) lines = 5; + configUpdate("advance.breakpoint.afterLines", lines); +}; + +document.getElementById("editor-area").ondragover = () => { + return false; +}; + +document.getElementById("editor-area").ondragleave = () => { + return false; +}; + +document.getElementById("editor-area").ondragend = () => { + return false; +}; + +document.getElementById("editor-area").ondrop = (e) => { + console.log("ondrop"); + e.preventDefault(); + + let f = e.dataTransfer.files[0]; + + f.text().then((text) => { + editor.getModel().setValue(text); + }); + + return false; +}; diff --git a/src/index.css b/src/index.css new file mode 100755 index 0000000..d3b9d47 --- /dev/null +++ b/src/index.css @@ -0,0 +1,297 @@ +html { + height: 100%; + font-size: 12px; +} + +body { + border: 1px solid #26a69a; + height: 100%; + background-color: #fafafa; +} + +:root { + --menu-height: 200px; + --bar-height: 53px; + --trans-btn-height: 20px; + --modem-btn-height: 10px; + --bar-color-head: #fafafa; + --bar-color-middle: #fafafa; + --bar-color-tail: #fafafa; +} + +::-webkit-scrollbar { + display: none; +} + +nav { + -webkit-app-region: drag; + background-color: #fafafa; + height: 24px; + line-height: 24px; +} + +blockquote { + margin-top: 14px; + margin-bottom: 6px; + font-size: 12px; + font-weight: bold; + border-left: 4px solid #26a69a; +} + +.nav-wrapper { + height: 24px; + line-height: 24px; +} + +.head-li { + width: 24px; + height: 24px; + line-height: 24px; +} + +.tiny-btn { + -webkit-app-region: no-drag; + margin: 5px !important; + width: 12px; + height: 12px; +} + +.no-head { + margin-top: 12px; + padding: 0px !important; +} + +.select-wrapper input.select-dropdown { + padding-left: 14px; + padding-right: 20px; + box-sizing: border-box; + text-overflow: ellipsis; + border-radius: 12px; + height: 24px; + font-size: 12px; + z-index: inherit; +} + +.dropdown-content { + border-radius: 12px; +} + +.dropdown-content li { + min-height: 24px; +} + +.dropdown-content li > a, +.dropdown-content li > span { + font-size: 12px; + line-height: 24px; + padding-top: 4px; + padding-bottom: 4px; +} + +.tabs { + height: 26px; +} + +.tabs .tab { + height: 26px; +} + +.tabs .tab a { + color: #26a69a; + height: 26px; + line-height: 26px; + font-size: 12px; + font-weight: bold; + /* border-radius: 6px 6px 6px 6px; */ +} + +.tabs .indicator { + background-color: #fafafa; +} + +.tabs .tab a:hover, +.tabs .tab a.active, +.tabs .tab a:focus.active { + color: #26a69a; + background-color: #fafafa; +} + +input { + font-size: 12px !important; +} + +.input-field { + margin-top: 0px; + margin-bottom: 5px; +} + +.config-row { + margin-top: 0px; + margin-bottom: 0px; +} + +.config-key { + font-weight: bold; +} + +.config-item { + line-height: 42px; + margin-top: 0px; +} + +.label-row { + margin-bottom: 0px; + padding-left: 10px; +} + +.label-key { + font-weight: bold; +} + +.toast { + background-color: #fafafa; + color: #26a69a; + margin-bottom: 254px; + margin-left: 150px; + max-width: 300px; + font-weight: bold; + text-align: center; +} + +#logo { + zoom: 80%; + height: 20px !important; + line-height: 24px !important; + margin-left: 6px; + margin-top: 2px; + color: #26a69a; +} + +#menu-area { + height: var(--menu-height); + width: calc(100%); + background-color: #fafafa; +} + +#menu-tabs-row { + padding-left: 0px; + padding-right: 0px; +} + +#menu-tabs { + background-color: #e0f2f1; +} + +#bar-area { + width: calc(100% - 2px); + height: var(--bar-height); + position: fixed; + bottom: 1px; + margin-bottom: 0px; + line-height: 54px; + background: -webkit-linear-gradient( + 60deg, + var(--bar-color-head), + var(--bar-color-middle), + var(--bar-color-tail) + ); +} + +#modem-signal-bar { + height: var(--modem-btn-height); + /* background-color: aqua; */ + position: fixed; + bottom: var(--bar-height) - var(--modem-btn-height); +} + +.modem-btn { + position: sticky; + bottom: var(--bar-height) - var(--modem-btn-height); + font-size: var(--modem-btn-height); + height: var(--modem-btn-height) !important; + line-height: var(--modem-btn-height) !important; + border-radius: 0px 0px var(--modem-btn-height) var(--modem-btn-height); +} + +#trans-log-area { + font-size: 12px; + max-height: 136px; + overflow-y: scroll; +} + +#trans-eof-row { + margin-top: 10px; + margin-left: 10px; +} + +#trans-send-btn, +#trans-log-btn { + margin-top: 16px; + + height: var(--trans-btn-height) !important; + line-height: var(--trans-btn-height) !important; + border-radius: calc(var(--trans-btn-height) / 2); +} + +#color-panel { + height: 43px; + line-height: 43px; +} + +#licence-row { + margin-top: 6px; +} +#licence-key { + height: 24px; + margin-bottom: 0px; +} + +#refresh-btn { + transform: scale(0.6); + transform-origin: left; + line-height: 24px; +} + +#clear-btn { + line-height: 24px; +} + +#baud-input, +#path-input { + margin: 15px 0px; +} + +.hl-red { + background-color: #ff8a80 !important; + border-radius: 4px; +} + +.hl-orange { + background-color: #ffd180 !important; + border-radius: 4px; +} + +.hl-yellow { + background-color: #ffff8d !important; + border-radius: 4px; +} + +.hl-green { + background-color: #b9f6ca !important; + border-radius: 4px; +} + +.hl-blue { + background-color: #80d8ff !important; + border-radius: 4px; +} + +.hl-indigo { + background-color: #8c9eff !important; + border-radius: 4px; +} + +.hl-purple { + background-color: #ea80fc !important; + border-radius: 4px; +} diff --git a/src/index.html b/src/index.html new file mode 100755 index 0000000..bd27841 --- /dev/null +++ b/src/index.html @@ -0,0 +1,459 @@ + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ menu +
+ +
+
+
+ +
+
+ +
+ +
+ +
+ refresh +
+ +
+ delete +
+ +
+ +
+
+
+ + + + + + + + diff --git a/src/index.js b/src/index.js new file mode 100755 index 0000000..3aa8a2c --- /dev/null +++ b/src/index.js @@ -0,0 +1,536 @@ +/* eslint-disable no-unused-vars */ +/* eslint-disable no-undef */ +const { remote, shell, ipcRenderer, clipboard } = require("electron"); +const Store = require("electron-store"); +const appVersion = remote.app.getVersion(); +const appUpdaterUrl = + "https://api.github.com/repos/xenkuo/comNG/releases/latest"; + +var M = require("materialize-css"); +M.AutoInit(); + +var config; +var barHeight; +var menuHeight; +const store = new Store({ + projectVersion: appVersion, + migrations: { + "1.0.3": (store) => { + store.delete("desert"); + store.delete("about"); + store.set("window.width", 600); + store.set("window.height", 640); + store.set("window.widthBefore", 600); + store.set("window.heightBefore", 640); + store.set("window.xBefore", 0); + store.set("window.yBefore", 0); + + store.set("menu.hidden", true); + store.set("menu.tab", "general"); + + store.set("baudIndex", 2); + store.set("pathIndex", 0); + + store.set("general.hexmode", false); + store.set("general.timestamp", false); + store.set("general.customized", 9600); + store.set("general.databitsIndex", 0); + store.set("general.parityIndex", 0); + store.set("general.stopbitsIndex", 0); + store.set("general.flowcontrolIndex", 0); + + store.set("transmit.eof", "\r\n"); + + store.set("advance.sign.switch", false); + store.set("advance.sign.name", ""); + store.set("advance.breakpoint.switch", false); + store.set("advance.breakpoint.onText", "Error"); + store.set("advance.breakpoint.afterLines", 5); + store.set("advance.barColor.head", "#fafafa"); + store.set("advance.barColor.middle", "#fafafa"); + store.set("advance.barColor.tail", "#26a69a"); + }, + "1.0.4": (store) => { + store.set("general.modemSignal", false); + store.set( + "general.fontFamily", + "Consolas, 'SF Mono', Menlo, 'Lucida Console', 'Courier New', monospace" + ); + store.set("general.fontSize", 12); + }, + }, +}); + +function configUpdate(key, value) { + let keyArray = key.split("."); + + if (keyArray.length === 1) { + config[keyArray[0]] = value; + } else if (keyArray.length === 2) { + config[keyArray[0]][keyArray[1]] = value; + } else if (keyArray.length === 3) { + config[keyArray[0]][keyArray[1]][keyArray[2]] = value; + } else { + console.error("config key structure error"); + } + + store.set(key, value); +} + +ipcRenderer.on("main-cmd", (event, arg) => { + console.log(arg); + switch (arg) { + case "Clear": { + let text = editor.getModel().getValue(); + clipboard.writeText(text); + editor.getModel().setValue(""); + break; + } + case "Switch": + document.getElementById("port-switch").click(); + break; + case "Open": + openFile(); + break; + case "Save": + saveToFile(); + break; + default: + console.log("Unknown cmds"); + break; + } +}); + +window.onload = () => { + config = store.store; + document.getElementById("menu-area").hidden = config.menu.hidden; + + barHeight = getComputedStyle(document.documentElement) + .getPropertyValue("--bar-height") + .trim() + .split("px")[0]; + barHeight = parseInt(barHeight); + menuHeight = getComputedStyle(document.documentElement) + .getPropertyValue("--menu-height") + .trim() + .split("px")[0]; + menuHeight = parseInt(menuHeight); + + let nav = document.getElementById("nav-area"); + let bar = document.getElementById("bar-area"); + let menu = document.getElementById("menu-area"); + let editor = document.getElementById("editor-area"); + + editor.style.height = + window.innerHeight - + nav.offsetHeight - + bar.offsetHeight - + menu.offsetHeight + + "px"; + + M.Tabs.getInstance(document.getElementById("menu-tabs")).select( + config.menu.tab + ); + + let baudSelect = document.getElementById("baud-select"); + baudSelect.options[0].text = config.general.customized; + baudSelect.selectedIndex = config.baudIndex; + M.FormSelect.init(baudSelect); + + portUpdate(); + + document.getElementById("hexmode-switch").checked = config.general.hexmode; + document.getElementById("timestamp-switch").checked = + config.general.timestamp; + document.getElementById("modem-signal-switch").checked = + config.general.modemSignal; + if (config.general.modemSignal === true) { + document.getElementById("modem-signal-bar").hidden = false; + } else { + document.getElementById("modem-signal-bar").hidden = true; + } + document.getElementById("customized").value = config.general.customized; + + let databits = document.getElementById("databits-select"); + databits.selectedIndex = config.general.databitsIndex; + M.FormSelect.init(databits); + let parity = document.getElementById("parity-select"); + parity.selectedIndex = config.general.parityIndex; + M.FormSelect.init(parity); + let stopbits = document.getElementById("stopbits-select"); + stopbits.selectedIndex = config.general.stopbitsIndex; + M.FormSelect.init(stopbits); + let flowcontrol = document.getElementById("flowcontrol-select"); + flowcontrol.selectedIndex = config.general.flowcontrolIndex; + M.FormSelect.init(flowcontrol); + + document.getElementById("editor-font-family").value = + config.general.fontFamily; + document.getElementById("editor-font-size").value = config.general.fontSize; + + document.getElementById("breakpoint-switch").checked = + config.advance.breakpoint.switch; + document.getElementById("breakpoint-on-text").value = + config.advance.breakpoint.onText; + document.getElementById("breakpoint-after-lines").value = + config.advance.breakpoint.afterLines; + + document.getElementById("sign-switch").checked = config.advance.sign.switch; + document.getElementById("sign-name").value = config.advance.sign.name; + + document.getElementById("bar-color-head").value = + config.advance.barColor.head; + document.getElementById("bar-color-middle").value = + config.advance.barColor.middle; + document.getElementById("bar-color-tail").value = + config.advance.barColor.tail; + + document.documentElement.style.setProperty( + "--bar-color-head", + config.advance.barColor.head + ); + document.documentElement.style.setProperty( + "--bar-color-middle", + config.advance.barColor.middle + ); + document.documentElement.style.setProperty( + "--bar-color-tail", + config.advance.barColor.tail + ); + + document.getElementById("app-version").innerHTML = appVersion; + console.log("Current Version: ", appVersion); + + fetch(appUpdaterUrl) + .then((data) => { + return data.json(); + }) + .then((res) => { + let latest = res.tag_name.split("v")[1]; + if (latest !== appVersion) { + const dialogOpts = { + type: "info", + buttons: ["Download Now", "Later"], + message: "Version: " + latest + " released!", + detail: res.body, + }; + + dialog.showMessageBox(dialogOpts).then((returnValue) => { + if (returnValue.response === 0) shell.openExternal(res.html_url); + }); + } + }); +}; + +window.onresize = () => { + configUpdate("window.width", window.innerWidth); + configUpdate("window.height", window.innerHeight); + + let nav = document.getElementById("nav-area"); + let bar = document.getElementById("bar-area"); + let menu = document.getElementById("menu-area"); + let editor = document.getElementById("editor-area"); + + editor.style.height = + window.innerHeight - + nav.offsetHeight - + bar.offsetHeight - + menu.offsetHeight + + "px"; +}; + +document.onkeydown = function (e) { + e = e || window.event; + switch (e.which || e.keyCode) { + case 13: + console.log("hello world 13"); + if (document.activeElement.id === "trans-data") { + document.getElementById("trans-send-btn").click(); + } + break; + default: + console.log("unknown event"); + break; + } +}; + +// prevent text select for double click action +document.getElementById("nav-area").onmousedown = () => { + return false; +}; + +document.getElementById("nav-area").ondblclick = () => { + if ( + window.innerWidth === screen.width || + window.innerHeight === screen.height + ) { + window.resizeTo(config.window.widthBefore, config.window.heightBefore); + window.moveTo(config.window.xBefore, config.window.yBefore); + } else { + configUpdate("window.widthBefore", window.innerWidth); + configUpdate("window.heightBefore", window.innerHeight); + configUpdate("window.xBefore", window.screenX); + configUpdate("window.yBefore", window.screenY); + + window.resizeTo(screen.width, screen.height); + window.moveTo(0, 0); + } +}; + +document.getElementById("logo").onclick = () => { + shell.openExternal("https://github.com/xenkuo/comNG"); +}; + +document.getElementById("min-btn").onclick = () => { + remote.getCurrentWindow().minimize(); +}; + +document.getElementById("max-btn").onclick = () => { + configUpdate("window.widthBefore", window.innerWidth); + configUpdate("window.heightBefore", window.innerHeight); + configUpdate("window.xBefore", window.screenX); + configUpdate("window.yBefore", window.screenY); + + window.resizeTo(screen.width, screen.height); + window.moveTo(0, 0); +}; + +document.getElementById("close-btn").onclick = () => { + window.close(); +}; + +document.getElementById("menu-btn").onclick = () => { + let menu = document.getElementById("menu-area"); + let editor = document.getElementById("editor-area"); + + if (menu.hidden === true) { + editor.style.height = editor.offsetHeight - menuHeight + "px"; + menu.hidden = false; + + configUpdate("menu.hidden", false); + } else { + editor.style.height = editor.offsetHeight + menuHeight + "px"; + menu.hidden = true; + + configUpdate("menu.hidden", true); + } +}; + +document.body.onclick = (e) => { + // don't process fake click + if (e.isTrusted === false) return; + // don't process when click on menu-btn + if (e.target.parentNode.id === "menu-btn") return; + // don't process when we are in Transmit tab + if (document.getElementById("menu-tabs").M_Tabs.index === 1) return; + + let pos = e.clientY; + let range = document.body.offsetHeight; + + if (pos > range - barHeight || pos < range - barHeight - menuHeight) { + let menu = document.getElementById("menu-area"); + let editor = document.getElementById("editor-area"); + + if (menu.hidden === false) { + editor.style.height = editor.offsetHeight + menuHeight + "px"; + menu.hidden = true; + + configUpdate("menu.hidden", true); + } + } +}; + +document.getElementById("menu-tabs").onclick = () => { + let tabs = M.Tabs.getInstance(document.getElementById("menu-tabs")); + + configUpdate("menu.tab", tabs.$content[0].id); +}; + +document.getElementById("hexmode-switch").onclick = (e) => { + configUpdate("general.hexmode", e.target.checked); +}; + +document.getElementById("timestamp-switch").onclick = (e) => { + configUpdate("general.timestamp", e.target.checked); +}; + +document.getElementById("modem-signal-switch").onclick = (e) => { + let state = e.target.checked; + + configUpdate("general.modemSignal", state); + if (state === true) { + document.getElementById("modem-signal-bar").hidden = false; + } else { + document.getElementById("modem-signal-bar").hidden = true; + } +}; + +document.getElementById("customized").onblur = (e) => { + let customized = parseInt(e.target.value); + + if (isNaN(customized) === true) customized = 9600; + configUpdate("general.customized", customized); + + let baudSelect = document.getElementById("baud-select"); + + baudSelect.options[0].text = customized; + M.FormSelect.init(baudSelect); +}; + +document.getElementById("databits-select").onchange = (e) => { + configUpdate("general.databitsIndex", e.target.selectedIndex); +}; + +document.getElementById("parity-select").onchange = (e) => { + configUpdate("general.parityIndex", e.target.selectedIndex); +}; + +document.getElementById("stopbits-select").onchange = (e) => { + configUpdate("general.stopbitsIndex", e.target.selectedIndex); +}; + +document.getElementById("flowcontrol-select").onchange = (e) => { + configUpdate("general.flowcontrolIndex", e.target.selectedIndex); +}; + +document.getElementById("sign-switch").onclick = (e) => { + configUpdate("advance.sign.switch", e.target.checked); +}; + +document.getElementById("sign-name").onblur = (e) => { + configUpdate("advance.sign.name", e.target.value); +}; + +let transRepeatTimer = undefined; +document.getElementById("trans-eof-select").onchange = (e) => { + let index = e.target.selectedIndex; + let eof = "\r\n"; + switch (index) { + case 1: + eof = "\r"; + break; + case 2: + eof = "\n"; + break; + default: + break; + } + + configUpdate("transmit.eof", eof); +}; + +// document.getElementById('trans-clear-btn').onclick = () => { +// document.getElementById('trans-data').value = '' +// } + +document.getElementById("trans-send-btn").onclick = () => { + const p = document.getElementById("trans-log-area"); + let data = document.getElementById("trans-data").value; + + // if (data.trim() === "") return; + data.trim(); + data += config.transmit.eof; + if (serialWrite(data) === false) return; + + p.value += "\n" + document.getElementById("trans-data").value; + M.updateTextFields(p); + M.textareaAutoResize(p); + p.scrollTop = p.scrollHeight; + + if (document.getElementById("trans-repeat-switch").checked === true) { + if (transRepeatTimer !== undefined) clearInterval(transRepeatTimer); + + let interval = document.getElementById("trans-repeat-interval").value; + interval = parseInt(interval); + if (isNaN(interval) === true) interval = 1000; + + transRepeatTimer = setInterval(() => { + serialWrite(data); + }, interval); + } +}; + +document.getElementById("trans-repeat-switch").onchange = (e) => { + let checked = e.target.checked; + + if (checked === false && transRepeatTimer !== undefined) + clearInterval(transRepeatTimer); +}; + +document.getElementById("trans-log-btn").onclick = () => { + let p = document.getElementById("trans-log-area"); + + p.value = ""; + M.updateTextFields(p); + M.textareaAutoResize(p); +}; + +document.getElementById("bar-color-head").oninput = (e) => { + let color = e.target.value; + + document.documentElement.style.setProperty("--bar-color-head", color); + configUpdate("advance.barColor.head", color); +}; + +document.getElementById("bar-color-middle").oninput = (e) => { + let color = e.target.value; + + document.documentElement.style.setProperty("--bar-color-middle", color); + configUpdate("advance.barColor.middle", color); +}; + +document.getElementById("bar-color-tail").oninput = (e) => { + let color = e.target.value; + + document.documentElement.style.setProperty("--bar-color-tail", color); + configUpdate("advance.barColor.tail", color); +}; + +document.getElementById("issue").onclick = (e) => { + console.log("licence click", e); + e.preventDefault(); + shell.openExternal(e.target.href); +}; + +document.getElementById("introduction").onclick = (e) => { + console.log("licence click", e); + e.preventDefault(); + shell.openExternal(e.target.href); +}; + +document.getElementById("comnglang").onclick = (e) => { + console.log("licence click", e); + e.preventDefault(); + shell.openExternal(e.target.href); +}; + +document.getElementById("baud-select").onchange = (e) => { + configUpdate("baudIndex", e.target.selectedIndex); +}; + +// document.getElementById("path-input").addEventListener( +// "click", +// e => { +// console.log("path select add event"); +// if (e.isTrusted === false) return; +// console.log("path x"); +// e.stopPropagation(); +// // portUpdate(); +// setTimeout(() => { +// try { +// let evt = document.createEvent("Event"); +// evt.initEvent("click", true, true); +// document.getElementById("path-select").dispatchEvent(evt); +// } catch (e) { +// console.error(e); +// } +// }, 5000); +// }, +// true +// ); + +document.getElementById("path-select").onchange = (e) => { + configUpdate("pathIndex", e.target.selectedIndex); +}; + +document.getElementById("refresh-btn").onclick = portUpdate; diff --git a/src/main.js b/src/main.js new file mode 100755 index 0000000..d6b04fe --- /dev/null +++ b/src/main.js @@ -0,0 +1,106 @@ +const { app, BrowserWindow } = require("electron"); +const path = require("path"); +const Shortcut = require("electron-localshortcut"); + +const Store = require("electron-store"); + +const store = new Store(); + +const widthDefault = 600; +const widthMin = 600; +const widthMax = 1024; +const heightDefault = 640; +const heightMin = 400; +const heightMax = 768; + +// Handle creating/removing shortcuts on Windows when installing/uninstalling. +if (require("electron-squirrel-startup")) { + // eslint-disable-line global-require + app.quit(); +} + +// Keep a global reference of the window object, if you don't, the window will +// be closed automatically when the JavaScript object is garbage collected. +let mainWindow; + +const createWindow = () => { + let width = store.get("window.width", widthDefault); + let height = store.get("window.height", heightDefault); + + if (width > widthMax) width = widthMax; + if (height > heightMax) height = heightMax; + + // Create the browser window. + mainWindow = new BrowserWindow({ + width: width, + minWidth: widthMin, + height: height, + minHeight: heightMin, + alwaysOnTop: false, + frame: false, + icon: path.join(__dirname, "../image/logo.png"), + webPreferences: { + nodeIntegration: true, + preload: path.join(__dirname, "./preload.js"), + }, + }); + + // and load the index.html of the app. + mainWindow.loadFile(path.join(__dirname, "index.html")); + + // Open the DevTools. + // mainWindow.webContents.openDevTools() + + // Emitted when the window is closed. + mainWindow.on("closed", () => { + // Dereference the window object, usually you would store windows + // in an array if your app supports multi windows, this is the time + // when you should delete the corresponding element. + mainWindow = null; + }); + + Shortcut.register(mainWindow, "CmdOrCtrl+X", () => { + console.log("You pressed cmd/ctrl x"); + mainWindow.webContents.send("main-cmd", "Clear"); + }); + + Shortcut.register(mainWindow, "CmdOrCtrl+D", () => { + console.log("You pressed cmd/ctrl d"); + mainWindow.webContents.send("main-cmd", "Switch"); + }); + + Shortcut.register(mainWindow, "CmdOrCtrl+O", () => { + console.log("You pressed cmd/ctrl o"); + mainWindow.webContents.send("main-cmd", "Open"); + }); + + Shortcut.register(mainWindow, "CmdOrCtrl+S", () => { + console.log("You pressed cmd/ctrl s"); + mainWindow.webContents.send("main-cmd", "Save"); + }); +}; + +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.on("ready", createWindow); + +// Quit when all windows are closed. +app.on("window-all-closed", () => { + // On OS X it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform !== "darwin") { + app.quit(); + } +}); + +app.on("activate", () => { + // On OS X it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (mainWindow === null) { + createWindow(); + } +}); + +// In this file you can include the rest of your app's specific main process +// code. You can also put them in separate files and import them here. diff --git a/src/preload.js b/src/preload.js new file mode 100755 index 0000000..053b5d5 --- /dev/null +++ b/src/preload.js @@ -0,0 +1,8 @@ +// All of the Node.js APIs are available in the preload process. +// It has the same sandbox as a Chrome extension. + +// const M = require('materialize-css') + +// window.addEventListener('DOMContentLoaded', () => { +// M.AutoInit() +// }) diff --git a/src/serialport.js b/src/serialport.js new file mode 100644 index 0000000..0d382a3 --- /dev/null +++ b/src/serialport.js @@ -0,0 +1,237 @@ +/* eslint-disable no-unused-vars */ +/* eslint-disable no-undef */ +const serial = require("serialport"); + +var port, modemSignalTimer; +var modemSignal = { + cts: false, + dsr: false, + dcd: false, + rts: true, + dtr: true, +}; + +function portUpdate() { + let pSelect = document.getElementById("path-select"); + pSelect.options.length = 0; + + serial + .list() + .then((ports) => { + ports.forEach((item, index) => { + console.log(item, index); + pSelect.options.add(new Option(item.path, index)); + if (index === config.pathIndex) pSelect.selectedIndex = index; + }); + M.FormSelect.init(pSelect); + }) + .catch((e) => { + console.error(e); + }); +} + +function modemSignalTimerHandle() { + if (port === undefined || port.isOpen === false) + return clearInterval(modemSignalTimer); + + port.get((e, signal) => { + if (e) return console.error(e); + + if (signal.cts !== modemSignal.cts) { + modemSignal.cts = signal.cts; + if (signal.cts === false) { + document.getElementById("cts-btn").style.cssText = + "background-color: #dfdfdf !important"; + } else { + document.getElementById("cts-btn").style.cssText = + "background-color: #26a69a !important"; + } + } + if (signal.dsr !== modemSignal.dsr) { + modemSignal.dsr = signal.dsr; + if (signal.dsr === false) { + document.getElementById("dsr-btn").style.cssText = + "background-color: #dfdfdf !important"; + } else { + document.getElementById("dsr-btn").style.cssText = + "background-color: #26a69a !important"; + } + } + if (signal.dcd !== modemSignal.dcd) { + modemSignal.dcd = signal.dcd; + if (signal.dcd === false) { + document.getElementById("dcd-btn").style.cssText = + "background-color: #dfdfdf !important"; + } else { + document.getElementById("dcd-btn").style.cssText = + "background-color: #26a69a !important"; + } + } + }); +} + +function modemSignalReset() { + modemSignal.cts = false; + modemSignal.dsr = false; + modemSignal.dcd = false; + modemSignal.rts = true; + modemSignal.dtr = true; + document.getElementById("cts-btn").style.cssText = + "background-color: #dfdfdf !important"; + document.getElementById("dsr-btn").style.cssText = + "background-color: #dfdfdf !important"; + document.getElementById("dcd-btn").style.cssText = + "background-color: #dfdfdf !important"; + document.getElementById("rts-btn").style.backgroundColor = ""; + document.getElementById("dtr-btn").style.backgroundColor = ""; +} + +function serialGetOptions() { + let openOptions = {}; + + let baudRate = parseInt( + document.getElementById("baud-select").options[config.baudIndex].text + ); + if (isNaN(baudRate) === true) baudRate = 115200; + openOptions.baudRate = baudRate; + + let dataBits = parseInt( + document.getElementById("databits-select").options[ + config.general.databitsIndex + ].text + ); + if (isNaN(dataBits) === true) dataBits = 8; + openOptions.dataBits = dataBits; + + let parity = document + .getElementById("parity-select") + .options[config.general.parityIndex].text.toLowerCase(); + openOptions.parity = parity; + + let stopBits = parseInt( + document.getElementById("stopbits-select").options[ + config.general.stopbitsIndex + ].text + ); + if (isNaN(stopBits) === true) stopBits = 1; + openOptions.stopBits = stopBits; + + let flowcontrol = document + .getElementById("flowcontrol-select") + .options[config.general.flowcontrolIndex].text.toLowerCase(); + openOptions[flowcontrol] = true; + + openOptions.autoOpen = true; + + return openOptions; +} + +function toast(text) { + M.toast({ html: text, displayLength: 1000 }); + // alert(text) +} + +function serialClose() { + port === undefined ? null : port.close(); +} + +function serialWrite(data) { + if (port === undefined || port.isOpen === false) { + toast("Error: No port opened, cannot write"); + if (transRepeatTimer !== undefined) clearInterval(transRepeatTimer); + return false; + } + + port.write(data); + return true; +} + +document.getElementById("port-switch").onclick = (e) => { + if (e.target.checked === true) { + let pathSelect = document.getElementById("path-select"); + let portPath = pathSelect.options[pathSelect.selectedIndex].label; + + port = new serial(portPath, serialGetOptions()); + + port.on("open", () => { + console.log("port open event"); + if (modemSignalTimer !== undefined) clearInterval(modemSignalTimer); + if (config.general.modemSignal === true) { + modemSignalTimer = setInterval(modemSignalTimerHandle, 100); + } + port.set({rts: true, dtr: true}, (e) => { + if (e !== null) console.error(e); + }); + }); + + port.on("error", (e) => { + toast(e.message); + document.getElementById("port-switch").checked = false; + if (transRepeatTimer !== undefined) clearInterval(transRepeatTimer); + if (modemSignalTimer !== undefined) clearInterval(modemSignalTimer); + }); + + port.on("close", (e) => { + console.log("port close event"); + + if (e !== null) console.error(e); + document.getElementById("port-switch").checked = false; + if (transRepeatTimer !== undefined) clearInterval(transRepeatTimer); + if (modemSignalTimer !== undefined) { + clearInterval(modemSignalTimer); + } + + modemSignalReset(); + }); + + port.on("drain", () => { + toast("Error: Write failed, please try again"); + }); + + port.on("data", processSerialData); + } else { + if (port === undefined || port.isOpen === false) { + document.getElementById("port-switch").checked = false; + } else { + port.close(); + } + } +}; + +document.getElementById("rts-btn").onclick = (e) => { + console.log("rts click"); + if (port === undefined || port.isOpen === false) return; + + if (modemSignal.rts === true) { + modemSignal.rts = false; + e.target.style.backgroundColor = "#dfdfdf"; + port.set({ rts: false }, (e) => { + if (e !== null) console.error(e); + }); + } else { + modemSignal.rts = true; + e.target.style.backgroundColor = ""; + port.set({ rts: modemSignal.rts, dtr: modemSignal.dtr }, (e) => { + if (e !== null) console.error(e); + }); + } +}; + +document.getElementById("dtr-btn").onclick = (e) => { + console.log("dtr click"); + if (port === undefined || port.isOpen === false) return; + + if (modemSignal.dtr === true) { + modemSignal.dtr = false; + e.target.style.backgroundColor = "#dfdfdf"; + port.set({ dtr: false }, (e) => { + if (e !== null) console.error(e); + }); + } else { + modemSignal.dtr = true; + e.target.style.backgroundColor = ""; + port.set({ rts: modemSignal.rts, dtr: true }, (e) => { + if (e !== null) console.error(e); + }); + } +}; diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..fac9893 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4270 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4= + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/helper-validator-identifier@^7.9.0": + version "7.9.5" + resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" + integrity sha1-kJd6jm+/a0MafcMXUu7iM78FLYA= + +"@babel/highlight@^7.8.3": + version "7.9.0" + resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" + integrity sha1-TptFzLgreWBycbKXmtgse2gWMHk= + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@electron-forge/async-ora@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/async-ora/download/@electron-forge/async-ora-6.0.0-beta.47.tgz#8c16c5a67dec45c0b4c7b826ebbe66daab572e90" + integrity sha1-jBbFpn3sRcC0x7gm675m2qtXLpA= + dependencies: + colors "^1.4.0" + debug "^4.1.0" + log-symbols "^3.0.0" + ora "^4.0.3" + pretty-ms "^5.0.0" + +"@electron-forge/async-ora@6.0.0-beta.50": + version "6.0.0-beta.50" + resolved "https://registry.npm.taobao.org/@electron-forge/async-ora/download/@electron-forge/async-ora-6.0.0-beta.50.tgz#5979a009fdb2bc5650752b0a425d4c2cbfaf53f8" + integrity sha1-WXmgCf2yvFZQdSsKQl1MLL+vU/g= + dependencies: + colors "^1.4.0" + debug "^4.1.0" + log-symbols "^3.0.0" + ora "^4.0.3" + pretty-ms "^6.0.0" + +"@electron-forge/cli@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/cli/download/@electron-forge/cli-6.0.0-beta.47.tgz#98509c91844ffcc137992c0dfd6bb0f8a5fb0cc1" + integrity sha1-mFCckYRP/ME3mSwN/Wuw+KX7DME= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.47" + "@electron-forge/core" "6.0.0-beta.47" + "@electron-forge/shared-types" "6.0.0-beta.47" + "@electron/get" "^1.6.0" + colors "^1.4.0" + commander "^4.0.1" + debug "^4.1.0" + fs-extra "^8.1.0" + inquirer "^7.0.0" + semver "^6.3.0" + +"@electron-forge/core@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/core/download/@electron-forge/core-6.0.0-beta.47.tgz#805a547b99b8802f75fdf8c842fd16138a796645" + integrity sha1-gFpUe5m4gC91/fjIQv0WE4p5ZkU= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.47" + "@electron-forge/installer-base" "6.0.0-beta.47" + "@electron-forge/installer-deb" "6.0.0-beta.47" + "@electron-forge/installer-dmg" "6.0.0-beta.47" + "@electron-forge/installer-exe" "6.0.0-beta.47" + "@electron-forge/installer-rpm" "6.0.0-beta.47" + "@electron-forge/installer-zip" "6.0.0-beta.47" + "@electron-forge/maker-base" "6.0.0-beta.47" + "@electron-forge/plugin-base" "6.0.0-beta.47" + "@electron-forge/publisher-base" "6.0.0-beta.47" + "@electron-forge/shared-types" "6.0.0-beta.47" + "@electron-forge/template-base" "6.0.0-beta.47" + "@electron-forge/template-typescript" "6.0.0-beta.47" + "@electron-forge/template-typescript-webpack" "6.0.0-beta.47" + "@electron-forge/template-webpack" "6.0.0-beta.47" + "@electron/get" "^1.6.0" + colors "^1.4.0" + cross-spawn-promise "^0.10.1" + debug "^4.1.0" + electron-packager "^14.0.6" + electron-rebuild "^1.8.6" + find-up "^4.1.0" + fs-extra "^8.1.0" + glob "^7.1.5" + lodash.merge "^4.6.2" + lodash.template "^4.5.0" + log-symbols "^3.0.0" + node-fetch "^2.6.0" + nugget "^2.0.1" + resolve-package "^1.0.1" + semver "^6.3.0" + source-map-support "^0.5.13" + sudo-prompt "^9.1.1" + username "^5.1.0" + yarn-or-npm "^3.0.1" + +"@electron-forge/installer-base@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/installer-base/download/@electron-forge/installer-base-6.0.0-beta.47.tgz#eca22e87c100c8e28430a04045e51dc3c53711bb" + integrity sha1-7KIuh8EAyOKEMKBAReUdw8U3Ebs= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.47" + +"@electron-forge/installer-darwin@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/installer-darwin/download/@electron-forge/installer-darwin-6.0.0-beta.47.tgz#06d0f118965647f1044ed8ed1f9fd1e315a4d733" + integrity sha1-BtDxGJZWR/EETtjtH5/R4xWk1zM= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.47" + "@electron-forge/installer-base" "6.0.0-beta.47" + fs-extra "^8.1.0" + sudo-prompt "^9.1.1" + +"@electron-forge/installer-deb@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/installer-deb/download/@electron-forge/installer-deb-6.0.0-beta.47.tgz#160e5acdf4683ed683b764fec588d7804b9b4a5a" + integrity sha1-Fg5azfRoPtaDt2T+xYjXgEubSlo= + dependencies: + "@electron-forge/installer-linux" "6.0.0-beta.47" + +"@electron-forge/installer-dmg@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/installer-dmg/download/@electron-forge/installer-dmg-6.0.0-beta.47.tgz#c97950e54a9905e74cbe6a3fb904556bd3326b5a" + integrity sha1-yXlQ5UqZBedMvmo/uQRVa9Mya1o= + dependencies: + "@electron-forge/installer-darwin" "6.0.0-beta.47" + cross-spawn-promise "^0.10.1" + debug "^4.1.0" + fs-extra "^8.1.0" + +"@electron-forge/installer-exe@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/installer-exe/download/@electron-forge/installer-exe-6.0.0-beta.47.tgz#4b41527f79da6a3f76299d9455ff2622fc5e76ac" + integrity sha1-S0FSf3naaj92KZ2UVf8mIvxedqw= + dependencies: + "@electron-forge/installer-base" "6.0.0-beta.47" + open "^7.0.0" + +"@electron-forge/installer-linux@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/installer-linux/download/@electron-forge/installer-linux-6.0.0-beta.47.tgz#3495e0c0bf6db2c83fb6aae1954e12f28fa3dca7" + integrity sha1-NJXgwL9tssg/tqrhlU4S8o+j3Kc= + dependencies: + "@electron-forge/installer-base" "6.0.0-beta.47" + sudo-prompt "^9.1.1" + +"@electron-forge/installer-rpm@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/installer-rpm/download/@electron-forge/installer-rpm-6.0.0-beta.47.tgz#bff9fd2480115da50c64a6a11ad0e1fca87fd5f2" + integrity sha1-v/n9JIARXaUMZKahGtDh/Kh/1fI= + dependencies: + "@electron-forge/installer-linux" "6.0.0-beta.47" + +"@electron-forge/installer-zip@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/installer-zip/download/@electron-forge/installer-zip-6.0.0-beta.47.tgz#2a3f6c4052c4db37261cab2982998ec2e9f3f2e7" + integrity sha1-Kj9sQFLE2zcmHKspgpmOwunz8uc= + dependencies: + "@electron-forge/installer-darwin" "6.0.0-beta.47" + cross-spawn-promise "^0.10.1" + fs-extra "^8.1.0" + +"@electron-forge/maker-base@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/maker-base/download/@electron-forge/maker-base-6.0.0-beta.47.tgz#a8ce70cf41cfa2dafaa5bd12d201cb2589ca8b4f" + integrity sha1-qM5wz0HPotr6pb0S0gHLJYnKi08= + dependencies: + "@electron-forge/shared-types" "6.0.0-beta.47" + fs-extra "^8.1.0" + which "^2.0.2" + +"@electron-forge/maker-base@6.0.0-beta.50": + version "6.0.0-beta.50" + resolved "https://registry.npm.taobao.org/@electron-forge/maker-base/download/@electron-forge/maker-base-6.0.0-beta.50.tgz#0fd3be00e92dc6f5639b3086d785c47858a1591f" + integrity sha1-D9O+AOktxvVjmzCG14XEeFihWR8= + dependencies: + "@electron-forge/shared-types" "6.0.0-beta.50" + fs-extra "^8.1.0" + which "^2.0.2" + +"@electron-forge/maker-deb@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/maker-deb/download/@electron-forge/maker-deb-6.0.0-beta.47.tgz#101dd3c75565587ac9d5737677ac1776ddbf3b8d" + integrity sha1-EB3Tx1VlWHrJ1XN2d6wXdt2/O40= + dependencies: + "@electron-forge/maker-base" "6.0.0-beta.47" + "@electron-forge/shared-types" "6.0.0-beta.47" + optionalDependencies: + electron-installer-debian "^2.0.0" + +"@electron-forge/maker-dmg@^6.0.0-beta.49": + version "6.0.0-beta.50" + resolved "https://registry.npm.taobao.org/@electron-forge/maker-dmg/download/@electron-forge/maker-dmg-6.0.0-beta.50.tgz#614c2c456d82b7022c35b0fff40bebf740063c0d" + integrity sha1-YUwsRW2CtwIsNbD/9Avr90AGPA0= + dependencies: + "@electron-forge/maker-base" "6.0.0-beta.50" + "@electron-forge/shared-types" "6.0.0-beta.50" + fs-extra "^8.1.0" + optionalDependencies: + electron-installer-dmg "^3.0.0" + +"@electron-forge/maker-squirrel@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/maker-squirrel/download/@electron-forge/maker-squirrel-6.0.0-beta.47.tgz#6b500dd4405a1b3422a4829b382382ec14b6e4ef" + integrity sha1-a1AN1EBaGzQipIKbOCOC7BS25O8= + dependencies: + "@electron-forge/maker-base" "6.0.0-beta.47" + "@electron-forge/shared-types" "6.0.0-beta.47" + fs-extra "^8.1.0" + optionalDependencies: + electron-winstaller "^4.0.0" + +"@electron-forge/plugin-base@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/plugin-base/download/@electron-forge/plugin-base-6.0.0-beta.47.tgz#24458bd75d9d4657c5312d5972805ddd835523c9" + integrity sha1-JEWL112dRlfFMS1ZcoBd3YNVI8k= + dependencies: + "@electron-forge/shared-types" "6.0.0-beta.47" + +"@electron-forge/publisher-base@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/publisher-base/download/@electron-forge/publisher-base-6.0.0-beta.47.tgz#695eeaaa3a02283cc43c66d63d21f3da88b5c873" + integrity sha1-aV7qqjoCKDzEPGbWPSHz2oi1yHM= + +"@electron-forge/publisher-base@6.0.0-beta.50": + version "6.0.0-beta.50" + resolved "https://registry.npm.taobao.org/@electron-forge/publisher-base/download/@electron-forge/publisher-base-6.0.0-beta.50.tgz#5950255b990090ed7d9315ffc850bb394799b2bf" + integrity sha1-WVAlW5kAkO19kxX/yFC7OUeZsr8= + +"@electron-forge/publisher-github@^6.0.0-beta.50": + version "6.0.0-beta.50" + resolved "https://registry.npm.taobao.org/@electron-forge/publisher-github/download/@electron-forge/publisher-github-6.0.0-beta.50.tgz#92de3373782c2723cd248d3a4027d1114167563d" + integrity sha1-kt4zc3gsJyPNJI06QCfREUFnVj0= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.50" + "@electron-forge/publisher-base" "6.0.0-beta.50" + "@electron-forge/shared-types" "6.0.0-beta.50" + "@octokit/rest" "^16.43.1" + fs-extra "^8.1.0" + lodash "^4.17.15" + mime-types "^2.1.25" + +"@electron-forge/shared-types@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/shared-types/download/@electron-forge/shared-types-6.0.0-beta.47.tgz#64222876d62b49d25b6b0abfd52a62d058da939d" + integrity sha1-ZCIodtYrSdJbawq/1Spi0Fjak50= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.47" + "@types/electron-packager" "^14.0.0" + electron-rebuild "^1.8.6" + ora "^4.0.3" + +"@electron-forge/shared-types@6.0.0-beta.50": + version "6.0.0-beta.50" + resolved "https://registry.npm.taobao.org/@electron-forge/shared-types/download/@electron-forge/shared-types-6.0.0-beta.50.tgz#6e721871b9dba679b3028f83cd729d570b361876" + integrity sha1-bnIYcbnbpnmzAo+DzXKdVws2GHY= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.50" + "@types/electron-packager" "^14.0.0" + electron-rebuild "^1.8.6" + ora "^4.0.3" + +"@electron-forge/template-base@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/template-base/download/@electron-forge/template-base-6.0.0-beta.47.tgz#bc785eefb4545d972987e96665fcef2845ddf0af" + integrity sha1-vHhe77RUXZcph+lmZfzvKEXd8K8= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.47" + "@electron-forge/shared-types" "6.0.0-beta.47" + debug "^4.1.0" + fs-extra "^8.1.0" + username "^5.1.0" + +"@electron-forge/template-typescript-webpack@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/template-typescript-webpack/download/@electron-forge/template-typescript-webpack-6.0.0-beta.47.tgz#6b0fb7cb4b01fb06b3de91d87066cc92b31712b0" + integrity sha1-aw+3y0sB+waz3pHYcGbMkrMXErA= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.47" + "@electron-forge/shared-types" "6.0.0-beta.47" + "@electron-forge/template-base" "6.0.0-beta.47" + fs-extra "^8.1.0" + +"@electron-forge/template-typescript@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/template-typescript/download/@electron-forge/template-typescript-6.0.0-beta.47.tgz#6a0c67989216b9f0b97854c85f33b315c1c48854" + integrity sha1-agxnmJIWufC5eFTIXzOzFcHEiFQ= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.47" + "@electron-forge/shared-types" "6.0.0-beta.47" + "@electron-forge/template-base" "6.0.0-beta.47" + fs-extra "^8.1.0" + +"@electron-forge/template-webpack@6.0.0-beta.47": + version "6.0.0-beta.47" + resolved "https://registry.npm.taobao.org/@electron-forge/template-webpack/download/@electron-forge/template-webpack-6.0.0-beta.47.tgz#1a20531ea06271918b75fb4eca35fba81454ffa4" + integrity sha1-GiBTHqBicZGLdftOyjX7qBRU/6Q= + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.47" + "@electron-forge/shared-types" "6.0.0-beta.47" + "@electron-forge/template-base" "6.0.0-beta.47" + fs-extra "^8.1.0" + +"@electron/get@^1.0.1", "@electron/get@^1.3.1", "@electron/get@^1.6.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@electron/get/download/@electron/get-1.9.0.tgz#7fa6e61d7ff50fb82a8a41f437af7de3b97aa9a5" + integrity sha1-f6bmHX/1D7gqikH0N69947l6qaU= + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + progress "^2.0.3" + sanitize-filename "^1.6.2" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^2.0.2" + global-tunnel-ng "^2.7.1" + +"@octokit/auth-token@^2.4.0": + version "2.4.0" + resolved "https://registry.npm.taobao.org/@octokit/auth-token/download/@octokit/auth-token-2.4.0.tgz#b64178975218b99e4dfe948253f0673cbbb59d9f" + integrity sha1-tkF4l1IYuZ5N/pSCU/BnPLu1nZ8= + dependencies: + "@octokit/types" "^2.0.0" + +"@octokit/endpoint@^6.0.0": + version "6.0.0" + resolved "https://registry.npm.taobao.org/@octokit/endpoint/download/@octokit/endpoint-6.0.0.tgz#4c7acd79ab72df78732a7d63b09be53ec5a2230b" + integrity sha1-THrNeaty33hzKn1jsJvlPsWiIws= + dependencies: + "@octokit/types" "^2.0.0" + is-plain-object "^3.0.0" + universal-user-agent "^5.0.0" + +"@octokit/plugin-paginate-rest@^1.1.1": + version "1.1.2" + resolved "https://registry.npm.taobao.org/@octokit/plugin-paginate-rest/download/@octokit/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc" + integrity sha1-AEFwrPjCvlNauiZyeGfWkve0iPw= + dependencies: + "@octokit/types" "^2.0.1" + +"@octokit/plugin-request-log@^1.0.0": + version "1.0.0" + resolved "https://registry.npm.taobao.org/@octokit/plugin-request-log/download/@octokit/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e" + integrity sha1-7vh6QxMA9hSMOaf3X4z+shiyVH4= + +"@octokit/plugin-rest-endpoint-methods@2.4.0": + version "2.4.0" + resolved "https://registry.npm.taobao.org/@octokit/plugin-rest-endpoint-methods/download/@octokit/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e" + integrity sha1-Mojs9UgfaMSU3QYC/BVAeln69h4= + dependencies: + "@octokit/types" "^2.0.1" + deprecation "^2.3.1" + +"@octokit/request-error@^1.0.2": + version "1.2.1" + resolved "https://registry.npm.taobao.org/@octokit/request-error/download/@octokit/request-error-1.2.1.tgz?cache=0&sync_timestamp=1585068417988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40octokit%2Frequest-error%2Fdownload%2F%40octokit%2Frequest-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" + integrity sha1-7eBxTHc/MjR1dsJWSdwBOuazGAE= + dependencies: + "@octokit/types" "^2.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request-error@^2.0.0": + version "2.0.0" + resolved "https://registry.npm.taobao.org/@octokit/request-error/download/@octokit/request-error-2.0.0.tgz?cache=0&sync_timestamp=1585068417988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40octokit%2Frequest-error%2Fdownload%2F%40octokit%2Frequest-error-2.0.0.tgz#94ca7293373654400fbb2995f377f9473e00834b" + integrity sha1-lMpykzc2VEAPuymV83f5Rz4Ag0s= + dependencies: + "@octokit/types" "^2.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.2.0": + version "5.3.4" + resolved "https://registry.npm.taobao.org/@octokit/request/download/@octokit/request-5.3.4.tgz#fbc950bf785d59da3b0399fc6d042c8cf52e2905" + integrity sha1-+8lQv3hdWdo7A5n8bQQsjPUuKQU= + dependencies: + "@octokit/endpoint" "^6.0.0" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^2.0.0" + deprecation "^2.0.0" + is-plain-object "^3.0.0" + node-fetch "^2.3.0" + once "^1.4.0" + universal-user-agent "^5.0.0" + +"@octokit/rest@^16.43.1": + version "16.43.1" + resolved "https://registry.npm.taobao.org/@octokit/rest/download/@octokit/rest-16.43.1.tgz#3b11e7d1b1ac2bbeeb23b08a17df0b20947eda6b" + integrity sha1-OxHn0bGsK77rI7CKF98LIJR+2ms= + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/plugin-paginate-rest" "^1.1.1" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "2.4.0" + "@octokit/request" "^5.2.0" + "@octokit/request-error" "^1.0.2" + atob-lite "^2.0.0" + before-after-hook "^2.0.0" + btoa-lite "^1.0.0" + deprecation "^2.0.0" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + octokit-pagination-methods "^1.1.0" + once "^1.4.0" + universal-user-agent "^4.0.0" + +"@octokit/types@^2.0.0", "@octokit/types@^2.0.1": + version "2.8.1" + resolved "https://registry.npm.taobao.org/@octokit/types/download/@octokit/types-2.8.1.tgz#935ba46c3abb745e913b1110b87f1ca75f2a3792" + integrity sha1-k1ukbDq7dF6ROxEQuH8cp18qN5I= + dependencies: + "@types/node" ">= 8" + +"@serialport/binding-abstract@^8.0.6": + version "8.0.6" + resolved "https://registry.npm.taobao.org/@serialport/binding-abstract/download/@serialport/binding-abstract-8.0.6.tgz#78e6d7995a95c46d480445303e6f32ca4d53edcd" + integrity sha1-eObXmVqVxG1IBEUwPm8yyk1T7c0= + dependencies: + debug "^4.1.1" + +"@serialport/binding-mock@^8.0.6": + version "8.0.6" + resolved "https://registry.npm.taobao.org/@serialport/binding-mock/download/@serialport/binding-mock-8.0.6.tgz#41a8f827269c6a0e58546513a274e12023134155" + integrity sha1-Qaj4Jyacag5YVGUTonThICMTQVU= + dependencies: + "@serialport/binding-abstract" "^8.0.6" + debug "^4.1.1" + +"@serialport/bindings@^8.0.7": + version "8.0.7" + resolved "https://registry.npm.taobao.org/@serialport/bindings/download/@serialport/bindings-8.0.7.tgz#2a58f60f1e24ee4549be6f9e0e37b3359d038a1c" + integrity sha1-Klj2Dx4k7kVJvm+eDjezNZ0Dihw= + dependencies: + "@serialport/binding-abstract" "^8.0.6" + "@serialport/parser-readline" "^8.0.6" + bindings "^1.5.0" + debug "^4.1.1" + nan "^2.14.0" + prebuild-install "^5.3.0" + +"@serialport/parser-byte-length@^8.0.6": + version "8.0.6" + resolved "https://registry.npm.taobao.org/@serialport/parser-byte-length/download/@serialport/parser-byte-length-8.0.6.tgz#efb6195692b1088e6c095fd43bae196fc30674d0" + integrity sha1-77YZVpKxCI5sCV/UO64Zb8MGdNA= + +"@serialport/parser-cctalk@^8.0.6": + version "8.0.6" + resolved "https://registry.npm.taobao.org/@serialport/parser-cctalk/download/@serialport/parser-cctalk-8.0.6.tgz#4134a3c479d465df3b152a21e16b8ecf1bc818c3" + integrity sha1-QTSjxHnUZd87FSoh4WuOzxvIGMM= + +"@serialport/parser-delimiter@^8.0.6": + version "8.0.6" + resolved "https://registry.npm.taobao.org/@serialport/parser-delimiter/download/@serialport/parser-delimiter-8.0.6.tgz#0e467cb07a40bd3006835c48e488666bd7de22cc" + integrity sha1-DkZ8sHpAvTAGg1xI5Ihma9feIsw= + +"@serialport/parser-readline@^8.0.6": + version "8.0.6" + resolved "https://registry.npm.taobao.org/@serialport/parser-readline/download/@serialport/parser-readline-8.0.6.tgz#8a6a296a1bec08a4855bf7a62bc6335d52972e4a" + integrity sha1-imopahvsCKSFW/emK8YzXVKXLko= + dependencies: + "@serialport/parser-delimiter" "^8.0.6" + +"@serialport/parser-ready@^8.0.6": + version "8.0.6" + resolved "https://registry.npm.taobao.org/@serialport/parser-ready/download/@serialport/parser-ready-8.0.6.tgz#d6e95e53ee70d298ae0b4147995007f4ba62651c" + integrity sha1-1uleU+5w0piuC0FHmVAH9LpiZRw= + +"@serialport/parser-regex@^8.0.6": + version "8.0.6" + resolved "https://registry.npm.taobao.org/@serialport/parser-regex/download/@serialport/parser-regex-8.0.6.tgz#70aa1abe31899d1b986f44cfb6777a76e26755bf" + integrity sha1-cKoavjGJnRuYb0TPtnd6duJnVb8= + +"@serialport/stream@^8.0.6": + version "8.0.6" + resolved "https://registry.npm.taobao.org/@serialport/stream/download/@serialport/stream-8.0.6.tgz#3395dbac788c00797c2435c61c2ecb4e99fbf41d" + integrity sha1-M5XbrHiMAHl8JDXGHC7LTpn79B0= + dependencies: + debug "^4.1.1" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.npm.taobao.org/@sindresorhus/is/download/@sindresorhus/is-0.14.0.tgz?cache=0&sync_timestamp=1581924604681&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha1-n7OjzzEyMoFR81PeRjLgHlIQK+o= + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.npm.taobao.org/@szmarczak/http-timer/download/@szmarczak/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha1-sWZeLEYaLNkvTBu/UNVFTeDUtCE= + dependencies: + defer-to-connect "^1.0.1" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha1-HBJhu+qhCoBVu8XYq4S3sq/IRqA= + +"@types/electron-packager@^14.0.0": + version "14.0.0" + resolved "https://registry.npm.taobao.org/@types/electron-packager/download/@types/electron-packager-14.0.0.tgz#f6dab1542fe02a3dd235d9bf66c8cb365f123902" + integrity sha1-9tqxVC/gKj3SNdm/ZsjLNl8SOQI= + dependencies: + "@electron/get" "^1.3.1" + "@types/node" "*" + electron-notarize "^0.1.1" + electron-osx-sign "^0.4.11" + +"@types/events@*": + version "3.0.0" + resolved "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc= + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU= + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0= + +"@types/node@*", "@types/node@>= 8": + version "13.11.1" + resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-13.11.1.tgz#49a2a83df9d26daacead30d0ccc8762b128d53c7" + integrity sha1-SaKoPfnSbarOrTDQzMh2KxKNU8c= + +"@types/node@^12.0.12": + version "12.12.35" + resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-12.12.35.tgz#1e61b226c14380f4384f70cfe49a65c2c553ad2b" + integrity sha1-HmGyJsFDgPQ4T3DP5JplwsVTrSs= + +abbrev@1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg= + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha1-TGYGkXPW/daO2FI5/CViJhgrLr4= + +acorn@^7.1.1: + version "7.1.1" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.1.1.tgz?cache=0&sync_timestamp=1583796606796&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha1-41Zo3gtALzWd5RXFSCoaufiaab8= + +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: + version "6.12.0" + resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.0.tgz?cache=0&sync_timestamp=1582379790931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha1-BtYLlth7hFSlrauobnhU2mKdtLc= + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz?cache=0&sync_timestamp=1583072845985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-escapes%2Fdownload%2Fansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE= + dependencies: + type-fest "^0.11.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc= + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0= + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha1-kK51xCTQCNJiTFvynq0xd+v881k= + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +appdmg@^0.6.0: + version "0.6.0" + resolved "https://registry.npm.taobao.org/appdmg/download/appdmg-0.6.0.tgz#81b3beab624ab458e6104d87c5cfa4b172203821" + integrity sha1-gbO+q2JKtFjmEE2Hxc+ksXIgOCE= + dependencies: + async "^1.4.2" + ds-store "^0.1.5" + execa "^1.0.0" + fs-temp "^1.0.0" + fs-xattr "^0.3.0" + image-size "^0.7.4" + is-my-json-valid "^2.20.0" + minimist "^1.1.3" + parse-color "^1.0.0" + path-exists "^4.0.0" + repeat-string "^1.5.4" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo= + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha1-SzXClE8GKov82mZBB2A1D+nd/CE= + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= + dependencies: + sprintf-js "~1.0.2" + +array-buffer-from-string@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/array-buffer-from-string/download/array-buffer-from-string-0.1.0.tgz#3b14351f86149d84efc612c5ada7ed85169d7b07" + integrity sha1-OxQ1H4YUnYTvxhLFrafthRadewc= + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +asar@^2.0.1: + version "2.1.0" + resolved "https://registry.npm.taobao.org/asar/download/asar-2.1.0.tgz?cache=0&sync_timestamp=1585617113952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasar%2Fdownload%2Fasar-2.1.0.tgz#97c6a570408c4e38a18d4a3fb748a621b5a7844e" + integrity sha1-l8alcECMTjihjUo/t0imIbWnhE4= + dependencies: + chromium-pickle-js "^0.2.0" + commander "^2.20.0" + cuint "^0.2.2" + glob "^7.1.3" + minimatch "^3.0.4" + mkdirp "^0.5.1" + tmp-promise "^1.0.5" + optionalDependencies: + "@types/glob" "^7.1.1" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha1-jSR136tVO7M+d7VOWeiAu4ziMTY= + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k= + +async@^1.4.2: + version "1.5.2" + resolved "https://registry.npm.taobao.org/async/download/async-1.5.2.tgz?cache=0&sync_timestamp=1582540512270&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob-lite@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/atob-lite/download/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" + integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= + +author-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/author-regex/download/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" + integrity sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.9.1" + resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.9.1.tgz?cache=0&sync_timestamp=1578959055063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base32-encode@^0.1.0: + version "0.1.1" + resolved "https://registry.npm.taobao.org/base32-encode/download/base32-encode-0.1.1.tgz#7510f6aa44e2c695b7efcb2673a454f8f8505ea0" + integrity sha1-dRD2qkTixpW378smc6RU+PhQXqA= + +base64-js@^1.0.2, base64-js@^1.2.3: + version "1.3.1" + resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +before-after-hook@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/before-after-hook/download/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" + integrity sha1-tsA0h/ROJCAN0wyl5qGXnF0vtjU= + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha1-EDU8npRTNLwFEabZCzj7x8nFBN8= + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.0.1: + version "4.0.2" + resolved "https://registry.npm.taobao.org/bl/download/bl-4.0.2.tgz?cache=0&sync_timestamp=1584503263385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a" + integrity sha1-UrcekIhRXQYG2d2cx6pI3B+Y5zo= + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.1.1, bluebird@^3.5.0: + version "3.7.2" + resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= + +boolean@^3.0.0: + version "3.0.1" + resolved "https://registry.npm.taobao.org/boolean/download/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" + integrity sha1-NezytKLuGRsLRJhvFOtfBSpcu08= + +bplist-creator@~0.0.3: + version "0.0.8" + resolved "https://registry.npm.taobao.org/bplist-creator/download/bplist-creator-0.0.8.tgz#56b2a6e79e9aec3fc33bf831d09347d73794e79c" + integrity sha1-VrKm556a7D/DO/gx0JNH1zeU55w= + dependencies: + stream-buffers "~2.2.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/btoa-lite/download/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha1-vX3CauKXLQ7aJTvgYdupkjScGfA= + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow= + 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#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/buffer-fill/download/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#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8= + +buffer@^5.5.0: + version "5.5.0" + resolved "https://registry.npm.taobao.org/buffer/download/buffer-5.5.0.tgz#9c3caa3d623c33dd1c7ef584b89b88bf9c9bc1ce" + integrity sha1-nDyqPWI8M90cfvWEuJuIv5ybwc4= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.npm.taobao.org/cacheable-request/download/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha1-IP+4vRYrpL4R6VZ9gj22UQUsqRI= + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M= + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz?cache=0&sync_timestamp=1585886700711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase-keys%2Fdownload%2Fcamelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA= + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ= + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha1-kAlISfCTfy7twkJdDSip5fDLrZ4= + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs= + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/chromium-pickle-js/download/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha1-JkMFp65JDR0Dvwybp8kl0XU68wc= + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.0.0, cli-spinners@^2.2.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.3.0.tgz?cache=0&sync_timestamp=1586157510340&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.3.0.tgz#0632239a4b5aa4c958610142c34bb7a651fc8df5" + integrity sha1-BjIjmktapMlYYQFCw0u3plH8jfU= + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz?cache=0&sync_timestamp=1573942320052&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U= + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/clone-response/download/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM= + dependencies: + color-name "~1.1.4" + +color-convert@~0.5.0: + version "0.5.3" + resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" + integrity sha1-vbbGnOZg+t/+CwAHzER+G59ygr0= + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= + +colors@^1.3.3, colors@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/colors/download/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha1-xQSRR51MG9rtLJztMs98fcI2D3g= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8= + dependencies: + delayed-stream "~1.0.0" + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= + +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/commander/download/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha1-n9YCvZNilOnp70aj9NaWQESxgGg= + +compare-version@^0.1.2: + version "0.1.2" + resolved "https://registry.npm.taobao.org/compare-version/download/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" + integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ= + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +conf@^6.2.1: + version "6.2.3" + resolved "https://registry.npm.taobao.org/conf/download/conf-6.2.3.tgz#0c0611f0fca25174d72c7b633ff6af9173a55f62" + integrity sha1-DAYR8PyiUXTXLHtjP/avkXOlX2I= + dependencies: + ajv "^6.10.2" + debounce-fn "^3.0.1" + dot-prop "^5.0.0" + env-paths "^2.2.0" + json-schema-typed "^7.0.1" + make-dir "^3.0.0" + onetime "^5.1.0" + pkg-up "^3.0.1" + semver "^6.2.0" + write-file-atomic "^3.0.0" + +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.npm.taobao.org/config-chain/download/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha1-D96NCRIA616AjK8l/mGMAvSOTvo= + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +core-js@^3.6.4: + version "3.6.5" + resolved "https://registry.npm.taobao.org/core-js/download/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha1-c5XcJzrzf7LlDpvT2f6EEoUjHRo= + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cross-spawn-promise@^0.10.1: + version "0.10.2" + resolved "https://registry.npm.taobao.org/cross-spawn-promise/download/cross-spawn-promise-0.10.2.tgz#0e6338149caf53a6d557ac5c65efb3086d8704ac" + integrity sha1-DmM4FJyvU6bVV6xcZe+zCG2HBKw= + dependencies: + cross-spawn "^5.1.0" + +cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-zip@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/cross-zip/download/cross-zip-3.0.0.tgz#478136c7ba2df7e5888f7fb57211a4bbd5afafb4" + integrity sha1-R4E2x7ot9+WIj3+1chGku9Wvr7Q= + dependencies: + rimraf "^3.0.0" + +cuint@^0.2.2: + version "0.2.2" + resolved "https://registry.npm.taobao.org/cuint/download/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" + integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debounce-fn@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/debounce-fn/download/debounce-fn-3.0.1.tgz#034afe8b904d985d1ec1aa589cd15f388741d680" + integrity sha1-A0r+i5BNmF0ewapYnNFfOIdB1oA= + dependencies: + mimic-fn "^2.1.0" + +debug@^2.1.3, debug@^2.2.0, debug@^2.5.1, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8= + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.2.6" + resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= + dependencies: + ms "^2.1.1" + +decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1580010393599&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.npm.taobao.org/decompress-response/download/decompress-response-3.3.0.tgz?cache=0&sync_timestamp=1572616776694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.npm.taobao.org/decompress-response/download/decompress-response-4.2.1.tgz?cache=0&sync_timestamp=1572616776694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha1-QUAjzHowLaJc4uyC0NUjjMr9iYY= + dependencies: + mimic-response "^2.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw= + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.npm.taobao.org/defer-to-connect/download/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha1-MxrgUMCNz3ifjIOnuB8O2U9KxZE= + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= + dependencies: + object-keys "^1.0.12" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.npm.taobao.org/deprecation/download/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha1-Y2jL20Cr8zc7UlrIfkomDDpwCRk= + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha1-rd6+rXKmV023g2OdyHoSF3OXOWE= + dependencies: + esutils "^2.0.2" + +dot-prop@^5.0.0: + version "5.2.0" + resolved "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz?cache=0&sync_timestamp=1572620767955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha1-w07MKVVtxF8fTCJpe29JBODMT8s= + dependencies: + is-obj "^2.0.0" + +ds-store@^0.1.5: + version "0.1.6" + resolved "https://registry.npm.taobao.org/ds-store/download/ds-store-0.1.6.tgz#d1024ef746ed0c13f0f7fec85c7e858e8c4b7ca7" + integrity sha1-0QJO90btDBPw9/7IXH6FjoxLfKc= + dependencies: + bplist-creator "~0.0.3" + macos-alias "~0.2.5" + tn1150 "^0.1.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +electron-installer-common@^0.7.1: + version "0.7.3" + resolved "https://registry.npm.taobao.org/electron-installer-common/download/electron-installer-common-0.7.3.tgz#95beedc4c6abd287a2f3ef60c545abdf804d90a0" + integrity sha1-lb7txMar0oei8+9gxUWr34BNkKA= + dependencies: + asar "^2.0.1" + cross-spawn-promise "^0.10.1" + debug "^4.1.1" + fs-extra "^8.0.1" + glob "^7.1.4" + lodash "^4.17.11" + parse-author "^2.0.0" + semver "^6.0.0" + tmp-promise "^2.0.1" + +electron-installer-debian@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/electron-installer-debian/download/electron-installer-debian-2.0.1.tgz#79dd3f85ddd0651b8e13a83d7934e6de88925df3" + integrity sha1-ed0/hd3QZRuOE6g9eTTm3oiSXfM= + dependencies: + debug "^4.1.1" + electron-installer-common "^0.7.1" + fs-extra "^8.0.1" + get-folder-size "^2.0.1" + lodash "^4.17.4" + word-wrap "^1.2.3" + yargs "^14.0.0" + +electron-installer-dmg@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/electron-installer-dmg/download/electron-installer-dmg-3.0.0.tgz#08935b602f3120981c8d5fd24d3f6525f8b0198a" + integrity sha1-CJNbYC8xIJgcjV/STT9lJfiwGYo= + dependencies: + debug "^4.1.1" + fs-extra "^8.0.1" + minimist "^1.1.1" + optionalDependencies: + appdmg "^0.6.0" + +electron-is-accelerator@^0.1.0: + version "0.1.2" + resolved "https://registry.npm.taobao.org/electron-is-accelerator/download/electron-is-accelerator-0.1.2.tgz#509e510c26a56b55e17f863a4b04e111846ab27b" + integrity sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns= + +electron-localshortcut@^3.2.1: + version "3.2.1" + resolved "https://registry.npm.taobao.org/electron-localshortcut/download/electron-localshortcut-3.2.1.tgz#cfc83a3eff5e28faf98ddcc87f80a2ce4f623cd3" + integrity sha1-z8g6Pv9eKPr5jdzIf4Cizk9iPNM= + dependencies: + debug "^4.0.1" + electron-is-accelerator "^0.1.0" + keyboardevent-from-electron-accelerator "^2.0.0" + keyboardevents-areequal "^0.2.1" + +electron-notarize@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/electron-notarize/download/electron-notarize-0.1.1.tgz#c3563d70c5e7b3315f44e8495b30050a8c408b91" + integrity sha1-w1Y9cMXnszFfROhJWzAFCoxAi5E= + dependencies: + debug "^4.1.1" + fs-extra "^8.0.1" + +electron-notarize@^0.2.0: + version "0.2.1" + resolved "https://registry.npm.taobao.org/electron-notarize/download/electron-notarize-0.2.1.tgz#759e8006decae19134f82996ed910db26d9192cc" + integrity sha1-dZ6ABt7K4ZE0+CmW7ZENsm2Rksw= + dependencies: + debug "^4.1.1" + fs-extra "^8.1.0" + +electron-osx-sign@^0.4.11: + version "0.4.15" + resolved "https://registry.npm.taobao.org/electron-osx-sign/download/electron-osx-sign-0.4.15.tgz#560e190297f0dbf40d4c192e06f160f669c2d015" + integrity sha1-Vg4ZApfw2/QNTBkuBvFg9mnC0BU= + dependencies: + bluebird "^3.5.0" + compare-version "^0.1.2" + debug "^2.6.8" + isbinaryfile "^3.0.2" + minimist "^1.2.0" + plist "^3.0.1" + +electron-packager@^14.0.6: + version "14.2.1" + resolved "https://registry.npm.taobao.org/electron-packager/download/electron-packager-14.2.1.tgz#e1884eee608455e71e96342717e0527d25a329df" + integrity sha1-4YhO7mCEVeceljQnF+BSfSWjKd8= + dependencies: + "@electron/get" "^1.6.0" + asar "^2.0.1" + cross-zip "^3.0.0" + debug "^4.0.1" + electron-notarize "^0.2.0" + electron-osx-sign "^0.4.11" + fs-extra "^8.1.0" + galactus "^0.2.1" + get-package-info "^1.0.0" + junk "^3.1.0" + parse-author "^2.0.0" + plist "^3.0.0" + rcedit "^2.0.0" + resolve "^1.1.6" + sanitize-filename "^1.6.0" + semver "^6.0.0" + yargs-parser "^16.0.0" + +electron-rebuild@^1.10.0, electron-rebuild@^1.8.6: + version "1.10.1" + resolved "https://registry.npm.taobao.org/electron-rebuild/download/electron-rebuild-1.10.1.tgz#f5cb911586e703fe78e2a0e9f644e7a76f137d97" + integrity sha1-9cuRFYbnA/544qDp9kTnp28TfZc= + dependencies: + colors "^1.3.3" + debug "^4.1.1" + detect-libc "^1.0.3" + fs-extra "^8.1.0" + node-abi "^2.11.0" + node-gyp "^6.0.1" + ora "^3.4.0" + spawn-rx "^3.0.0" + yargs "^14.2.0" + +electron-squirrel-startup@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/electron-squirrel-startup/download/electron-squirrel-startup-1.0.0.tgz#19b4e55933fa0ef8f556784b9c660f772546a0b8" + integrity sha1-GbTlWTP6Dvj1VnhLnGYPdyVGoLg= + dependencies: + debug "^2.2.0" + +electron-store@^5.1.0: + version "5.1.1" + resolved "https://registry.npm.taobao.org/electron-store/download/electron-store-5.1.1.tgz#3040e5b4ad25d2e4caea59d505646c1e7c94a09b" + integrity sha1-MEDltK0l0uTK6lnVBWRsHnyUoJs= + dependencies: + conf "^6.2.1" + type-fest "^0.7.1" + +electron-winstaller@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/electron-winstaller/download/electron-winstaller-4.0.0.tgz#d2717eca6665724f922acd2ac7a94d6fd55dd5d7" + integrity sha1-0nF+ymZlck+SKs0qx6lNb9Vd1dc= + dependencies: + asar "^2.0.1" + debug "^4.1.1" + fs-extra "^7.0.1" + lodash.template "^4.2.2" + temp "^0.9.0" + +electron@7.1.11: + version "7.1.11" + resolved "https://registry.npm.taobao.org/electron/download/electron-7.1.11.tgz#3a95e35804af083d58b590513afea5e2290c4b66" + integrity sha1-OpXjWASvCD1YtZBROv6l4ikMS2Y= + dependencies: + "@electron/get" "^1.0.1" + "@types/node" "^12.0.12" + extract-zip "^1.0.3" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY= + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc= + +encodeurl@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha1-WuZKX0UFe682JuwU2gyl5LJDHrA= + dependencies: + once "^1.4.0" + +env-paths@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/env-paths/download/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha1-zcpVfcAJFSkX1hZuL+vh8DloXkM= + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha1-tKxAZIEH/c3PriQvQovqihTU8b8= + dependencies: + is-arrayish "^0.2.1" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/es6-error/download/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha1-njr0B0Wd7tR+mpH5uIWoTrBcVh0= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1586278520081&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz?cache=0&sync_timestamp=1586278520081&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q= + +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha1-6HyIh8c+jR7ITxylkWRcNYv8j7k= + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8= + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha1-4qgs6oT/JGrW+1f5veW0ZiFFnsI= + +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.npm.taobao.org/eslint/download/eslint-6.8.0.tgz?cache=0&sync_timestamp=1585359267230&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s= + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.npm.taobao.org/espree/download/espree-6.2.1.tgz?cache=0&sync_timestamp=1583869989845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o= + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= + +esquery@^1.0.1: + version "1.2.0" + resolved "https://registry.npm.taobao.org/esquery/download/esquery-1.2.0.tgz#a010a519c0288f2530b3404124bfb5f02e9797fe" + integrity sha1-oBClGcAojyUws0BBJL+18C6Xl/4= + dependencies: + estraverse "^5.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8= + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1584934763568&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= + +estraverse@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-5.0.0.tgz?cache=0&sync_timestamp=1584934763568&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.0.0.tgz#ac81750b482c11cca26e4b07e83ed8f75fbcdc22" + integrity sha1-rIF1C0gsEcyibksH6D7Y91+83CI= + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749001049&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg= + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.npm.taobao.org/expand-template/download/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha1-bhSz/O4POmNA7LV9LokYaSBSpHw= + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/expand-tilde/download/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha1-ywP3QL764D6k0oPK7SdBqD8zVJU= + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extract-zip@^1.0.3: + version "1.7.0" + resolved "https://registry.npm.taobao.org/extract-zip/download/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha1-VWzDrp339FLEk6DPtRzDAneUCSc= + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.1.tgz?cache=0&sync_timestamp=1575383522243&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha1-VFFFB3xQFJHjOxXsQIwpQ3bpSuQ= + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/fd-slicer/download/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8= + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w= + dependencies: + flat-cache "^2.0.1" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90= + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha1-SRafHXmTQwZG2mHsxa41XCHJe3M= + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk= + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA= + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz?cache=0&sync_timestamp=1585471110610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha1-RXWyHivO50NKqb5mL0t7X5wrUTg= + +flora-colossus@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/flora-colossus/download/flora-colossus-1.0.1.tgz#aba198425a8185341e64f9d2a6a96fd9a3cbdb93" + integrity sha1-q6GYQlqBhTQeZPnSpqlv2aPL25M= + dependencies: + debug "^4.1.1" + fs-extra "^7.0.0" + +fmix@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/fmix/download/fmix-0.1.0.tgz#c7bbf124dec42c9d191cfb947d0a9778dd986c0c" + integrity sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw= + dependencies: + imul "^1.0.0" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha1-3M5SwF9kTymManq5Nr1yTO/786Y= + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/fs-constants/download/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha1-a+Dem+mYzhavivwkSXue6bfM2a0= + +fs-extra@^4.0.0: + version "4.0.3" + resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha1-DYUhIuW8W+tFP7Ao6cDJvzY0DJQ= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.0, fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha1-TxicRKoSO4lfcigE9V6iPq3DSOk= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.0.1, fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA= + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz?cache=0&sync_timestamp=1579628584498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha1-zP+FcIQef+QmVpPaiJNsVa7X98c= + dependencies: + minipass "^2.6.0" + +fs-temp@^1.0.0: + version "1.1.2" + resolved "https://registry.npm.taobao.org/fs-temp/download/fs-temp-1.1.2.tgz#cc52f038bbefe510f6bcd09ec592b79d0f69253f" + integrity sha1-zFLwOLvv5RD2vNCexZK3nQ9pJT8= + dependencies: + random-path "^0.1.0" + +fs-xattr@^0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/fs-xattr/download/fs-xattr-0.3.0.tgz#019642eacc49f343061af19de4c13543895589ad" + integrity sha1-AZZC6sxJ80MGGvGd5ME1Q4lVia0= + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +galactus@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/galactus/download/galactus-0.2.1.tgz#cbed2d20a40c1f5679a35908e2b9415733e78db9" + integrity sha1-y+0tIKQMH1Z5o1kI4rlBVzPnjbk= + dependencies: + debug "^3.1.0" + flora-colossus "^1.0.0" + fs-extra "^4.0.0" + +gar@^1.0.4: + version "1.0.4" + resolved "https://registry.npm.taobao.org/gar/download/gar-1.0.4.tgz#f777bc7db425c0572fdeb52676172ca1ae9888b8" + integrity sha1-93e8fbQlwFcv3rUmdhcsoa6YiLg= + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz?cache=0&sync_timestamp=1580507640343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +generate-function@^2.0.0: + version "2.3.1" + resolved "https://registry.npm.taobao.org/generate-function/download/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" + integrity sha1-8GlhdpDBDIaOc7hGV0Z2T5fDR58= + dependencies: + is-property "^1.0.2" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/generate-object-property/download/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= + dependencies: + is-property "^1.0.0" + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha1-T5RBKoLbMvNuOwuXQfipf+sDH34= + +get-folder-size@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/get-folder-size/download/get-folder-size-2.0.1.tgz#3fe0524dd3bad05257ef1311331417bcd020a497" + integrity sha1-P+BSTdO60FJX7xMRMxQXvNAgpJc= + dependencies: + gar "^1.0.4" + tiny-each-async "2.0.3" + +get-installed-path@^2.0.3: + version "2.1.1" + resolved "https://registry.npm.taobao.org/get-installed-path/download/get-installed-path-2.1.1.tgz#a1f33dc6b8af542c9331084e8edbe37fe2634152" + integrity sha1-ofM9xrivVCyTMQhOjtvjf+JjQVI= + dependencies: + global-modules "1.0.0" + +get-package-info@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/get-package-info/download/get-package-info-1.0.0.tgz#6432796563e28113cd9474dbbd00052985a4999c" + integrity sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw= + dependencies: + bluebird "^3.1.1" + debug "^2.2.0" + lodash.get "^4.0.0" + read-pkg-up "^2.0.0" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha1-wbJVV189wh1Zv8ec09K0axw6VLU= + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha1-ASA83JJZf5uQkGfD5lbMH008Tck= + dependencies: + pump "^3.0.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.npm.taobao.org/github-from-package/download/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + +glob-parent@^5.0.0: + version "5.1.1" + resolved "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha1-tsHvQXxOVmPqSY8cRa+saRa7wik= + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3, glob@^7.1.4, glob@^7.1.5: + version "7.1.6" + resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz?cache=0&sync_timestamp=1573203677246&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY= + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-agent@^2.0.2: + version "2.1.8" + resolved "https://registry.npm.taobao.org/global-agent/download/global-agent-2.1.8.tgz#99d153662b2c04cbc1199ffbc081a3aa656ac50f" + integrity sha1-mdFTZissBMvBGZ/7wIGjqmVqxQ8= + dependencies: + boolean "^3.0.0" + core-js "^3.6.4" + es6-error "^4.1.1" + matcher "^2.1.0" + roarr "^2.15.2" + semver "^7.1.2" + serialize-error "^5.0.0" + +global-modules@1.0.0, global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/global-modules/download/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o= + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/global-prefix/download/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.npm.taobao.org/global-tunnel-ng/download/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha1-0DtRAt/eOmmRT17n2GdhyjXVfY8= + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg= + dependencies: + type-fest "^0.8.1" + +globalthis@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/globalthis/download/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" + integrity sha1-QBFvXZwHH56PsAN2VN8as6g7fvk= + dependencies: + define-properties "^1.1.3" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.npm.taobao.org/got/download/got-9.6.0.tgz?cache=0&sync_timestamp=1585075207919&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha1-7fRefWf5lUVwXeH3u+7rEhdl7YU= + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: + version "4.2.3" + resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM= + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.3" + resolved "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha1-HvievT5JllV2de7ZiTEQ3DUPoIA= + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s= + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.npm.taobao.org/homedir-polyfill/download/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg= + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1583017392137&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg= + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/http-cache-semantics/download/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha1-SekcXL82yblLz81xwj1SSex045A= + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1585807954283&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1579333981154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q= + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw= + +image-size@^0.7.4: + version "0.7.5" + resolved "https://registry.npm.taobao.org/image-size/download/image-size-0.7.5.tgz#269f357cf5797cb44683dfa99790e54c705ead04" + integrity sha1-Jp81fPV5fLRGg9+pl5DlTHBerQQ= + +import-fresh@^3.0.0: + version "3.2.1" + resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY= + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imul@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/imul/download/imul-1.0.1.tgz#9d5867161e8b3de96c2c38d5dc7cb102f35e2ac9" + integrity sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= + +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= + +inquirer@^7.0.0: + version "7.1.0" + resolved "https://registry.npm.taobao.org/inquirer/download/inquirer-7.1.0.tgz?cache=0&sync_timestamp=1583819732252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" + integrity sha1-EpigGFmIPhfHJkuChwrhA0+S3Sk= + dependencies: + ansi-escapes "^4.2.1" + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-docker@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-docker/download/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" + integrity sha1-LLDfDnXi0GT+GGTDfN6st7Lc8ls= + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-finite/download/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0= + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw= + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-interactive/download/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha1-zqbmrlyHCnsKAAQHC3tYfgJSkS4= + +is-my-ip-valid@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-my-ip-valid/download/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" + integrity sha1-ezUbjo7dTTmV1NBmaA5mTZRpaCQ= + +is-my-json-valid@^2.20.0: + version "2.20.0" + resolved "https://registry.npm.taobao.org/is-my-json-valid/download/is-my-json-valid-2.20.0.tgz#1345a6fca3e8daefc10d0fa77067f54cedafd59a" + integrity sha1-E0Wm/KPo2u/BDQ+ncGf1TO2v1Zo= + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI= + +is-plain-object@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" + integrity sha1-R7/F2htdUNZBEIBsGZNZSC51qSg= + dependencies: + isobject "^4.0.0" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-property@^1.0.0, is-property@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/is-property/download/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0= + +is-wsl@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" + integrity sha1-ShwVLUKd89RBZpSY4khtNZbrrx0= + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isbinaryfile@^3.0.2: + version "3.0.3" + resolved "https://registry.npm.taobao.org/isbinaryfile/download/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha1-XW3vPt6/boyoyunDAYOoBLX4voA= + dependencies: + buffer-alloc "^1.2.0" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/isobject/download/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + integrity sha1-PxyRVec7GSAiqAgZus0DQ3EWl7A= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= + +js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc= + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/json-buffer/download/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= + +json-schema-typed@^7.0.1: + version "7.0.3" + resolved "https://registry.npm.taobao.org/json-schema-typed/download/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" + integrity sha1-I/9IG4tO680soSO0+gQJ5mRpotk= + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.npm.taobao.org/jsonpointer/download/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +junk@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/junk/download/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" + integrity sha1-MUmQmNkCt+mMXZucgPQ0V6iKv6E= + +keyboardevent-from-electron-accelerator@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/keyboardevent-from-electron-accelerator/download/keyboardevent-from-electron-accelerator-2.0.0.tgz#ace21b1aa4e47148815d160057f9edb66567c50c" + integrity sha1-rOIbGqTkcUiBXRYAV/nttmVnxQw= + +keyboardevents-areequal@^0.2.1: + version "0.2.2" + resolved "https://registry.npm.taobao.org/keyboardevents-areequal/download/keyboardevents-areequal-0.2.2.tgz#88191ec738ce9f7591c25e9056de928b40277194" + integrity sha1-iBkexzjOn3WRwl6QVt6Si0AncZQ= + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/keyv/download/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha1-7MIoSG9pmR5J6UdkhaW+Ho/FxNk= + dependencies: + json-buffer "3.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4= + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha1-Gvujlq/WdqbUJQTQpno6frn2KqA= + dependencies: + p-locate "^4.1.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.npm.taobao.org/lodash.assign/download/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= + +lodash.get@^4.0.0, lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npm.taobao.org/lodash.get/download/lodash.get-4.4.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.get%2Fdownload%2Flodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.merge%2Fdownload%2Flodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo= + +lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.npm.taobao.org/lodash.set/download/lodash.set-4.3.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.set%2Fdownload%2Flodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= + +lodash.template@^4.2.2, lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.npm.taobao.org/lodash.template/download/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha1-+XYZXPPzR9DV9SSDVp/oAxzM6Ks= + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.npm.taobao.org/lodash.templatesettings/download/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha1-5IExDwSdPPbUfpEq0JMTsVTw+zM= + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4: + version "4.17.15" + resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg= + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo= + dependencies: + chalk "^2.0.1" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/log-symbols/download/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q= + dependencies: + chalk "^2.4.2" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha1-b54wtHCE2XGnyCD/FabFFnt0wm8= + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha1-JgPni3tLAAbLyi+8yKMgJVislHk= + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80= + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +macos-alias@~0.2.5: + version "0.2.11" + resolved "https://registry.npm.taobao.org/macos-alias/download/macos-alias-0.2.11.tgz#feeea6c13ba119814a43fc43c470b31e59ef718a" + integrity sha1-/u6mwTuhGYFKQ/xDxHCzHlnvcYo= + dependencies: + nan "^2.4.0" + +macos-release@^2.2.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/macos-release/download/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" + integrity sha1-6xkwsDbAgArevM1fF7xMEt6Ltx8= + +make-dir@^3.0.0: + version "3.0.2" + resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" + integrity sha1-BKGsvyIiHh1u9DVZ9D4FqQ27Q5I= + dependencies: + semver "^6.0.0" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo= + dependencies: + p-defer "^1.0.0" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +matcher@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/matcher/download/matcher-2.1.0.tgz?cache=0&sync_timestamp=1574142964872&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatcher%2Fdownload%2Fmatcher-2.1.0.tgz#64e1041c15b993e23b786f93320a7474bf833c28" + integrity sha1-ZOEEHBW5k+I7eG+TMgp0dL+DPCg= + dependencies: + escape-string-regexp "^2.0.0" + +material-design-icons@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/material-design-icons/download/material-design-icons-3.0.1.tgz#9a71c48747218ebca51e51a66da682038cdcb7bf" + integrity sha1-mnHEh0chjrylHlGmbaaCA4zct78= + +materialize-css@^1.0.0-rc.2: + version "1.0.0" + resolved "https://registry.npm.taobao.org/materialize-css/download/materialize-css-1.0.0.tgz#8d5db1c4a81c6d65f3b2e2ca83a8e08daa24d1be" + integrity sha1-jV2xxKgcbWXzsuLKg6jgjaok0b4= + +mem@^4.3.0: + version "4.3.0" + resolved "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg= + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +meow@^3.1.0: + version "3.7.0" + resolved "https://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +mime-db@1.43.0: + version "1.43.0" + resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.43.0.tgz?cache=0&sync_timestamp=1578281173535&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg= + +mime-types@^2.1.12, mime-types@^2.1.25, mime-types@~2.1.19: + version "2.1.26" + resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.26.tgz?cache=0&sync_timestamp=1578282559977&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha1-nJIfwJt+FJpl39wNpNIJlyALCgY= + dependencies: + mime-db "1.43.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI= + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs= + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/mimic-response/download/mimic-response-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha1-SSNTiHju9CBjy4o+OweYeBSHqxs= + +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/mimic-response/download/mimic-response-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha1-0Tdj019hPQnsN+uzC6wEacDuj0M= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY= + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.npm.taobao.org/minizlib/download/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha1-IpDeloGKNMKVUcio0wEha9Zahh0= + dependencies: + minipass "^2.9.0" + +mkdirp-classic@^0.5.2: + version "0.5.2" + resolved "https://registry.npm.taobao.org/mkdirp-classic/download/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" + integrity sha1-VMRBzkyWzXeQ4QtBqHqlEGjsqys= + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4: + version "0.5.5" + resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8= + dependencies: + minimist "^1.2.5" + +monaco-editor@^0.20.0: + version "0.20.0" + resolved "https://registry.npm.taobao.org/monaco-editor/download/monaco-editor-0.20.0.tgz#5d5009343a550124426cb4d965a4d27a348b4dea" + integrity sha1-XVAJNDpVASRCbLTZZaTSejSLTeo= + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= + +murmur-32@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/murmur-32/download/murmur-32-0.1.0.tgz#c1a79d4fc5fabf0405749d0aff77c41402055861" + integrity sha1-waedT8X6vwQFdJ0K/3fEFAIFWGE= + dependencies: + array-buffer-from-string "^0.1.0" + fmix "^0.1.0" + imul "^1.0.0" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha1-FjDEKyJR/4HiooPelqVJfqkuXg0= + +nan@^2.14.0, nan@^2.4.0: + version "2.14.0" + resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw= + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/napi-build-utils/download/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha1-sf3cCyxG44Cgt6dvmE3UfEGhOAY= + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz?cache=0&sync_timestamp=1584699756095&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y= + +node-abi@^2.11.0, node-abi@^2.7.0: + version "2.15.0" + resolved "https://registry.npm.taobao.org/node-abi/download/node-abi-2.15.0.tgz#51d55cc711bd9e4a24a572ace13b9231945ccb10" + integrity sha1-UdVcxxG9nkokpXKs4TuSMZRcyxA= + dependencies: + semver "^5.4.1" + +node-fetch@^2.3.0, node-fetch@^2.6.0: + version "2.6.0" + resolved "https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-fetch%2Fdownload%2Fnode-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0= + +node-gyp@^6.0.1: + version "6.1.0" + resolved "https://registry.npm.taobao.org/node-gyp/download/node-gyp-6.1.0.tgz#64e31c61a4695ad304c1d5b82cf6b7c79cc79f3f" + integrity sha1-ZOMcYaRpWtMEwdW4LPa3x5zHnz8= + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.1.2" + request "^2.88.0" + rimraf "^2.6.3" + semver "^5.7.1" + tar "^4.4.12" + which "^1.3.1" + +noop-logger@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/noop-logger/download/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" + integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= + +nopt@^4.0.1: + version "4.0.3" + resolved "https://registry.npm.taobao.org/nopt/download/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha1-o3XK2dAv2SEnjZVMIlTVqlfhXkg= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.5.0" + resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg= + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha1-RTNUCH5sqWlXvY9br3U/WYIUISk= + +npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.npm.taobao.org/npm-conf/download/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha1-JWzEe9DiGMJZxOlVC/QTvCGSr/k= + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.1, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha1-CKfyqL9zRgR3mp76StXMcXq7lUs= + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nugget@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/nugget/download/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" + integrity sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA= + dependencies: + debug "^2.1.3" + minimist "^1.1.0" + pretty-bytes "^1.0.2" + progress-stream "^1.1.0" + request "^2.45.0" + single-line-log "^1.1.2" + throttleit "0.0.2" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU= + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= + +octokit-pagination-methods@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/octokit-pagination-methods/download/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" + integrity sha1-z0cu3J1VEFX573P25CtNu0yAvqQ= + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/onetime/download/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha1-//DzyRYX/mK7UBiWNumayKbfe+U= + dependencies: + mimic-fn "^2.1.0" + +open@^7.0.0: + version "7.0.3" + resolved "https://registry.npm.taobao.org/open/download/open-7.0.3.tgz?cache=0&sync_timestamp=1583734954683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-7.0.3.tgz#db551a1af9c7ab4c7af664139930826138531c48" + integrity sha1-21UaGvnHq0x69mQTmTCCYThTHEg= + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&sync_timestamp=1585966209412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.npm.taobao.org/ora/download/ora-3.4.0.tgz?cache=0&sync_timestamp=1573640943103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fora%2Fdownload%2Fora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" + integrity sha1-vwdSSRBZo+8+1MhQl1Md6f280xg= + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +ora@^4.0.3: + version "4.0.3" + resolved "https://registry.npm.taobao.org/ora/download/ora-4.0.3.tgz?cache=0&sync_timestamp=1573640943103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fora%2Fdownload%2Fora-4.0.3.tgz#752a1b7b4be4825546a7a3d59256fa523b6b6d05" + integrity sha1-dSobe0vkglVGp6PVklb6UjtrbQU= + dependencies: + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-name@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/os-name/download/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha1-3sGdlmKW4c1i1wGlpm7h3ernCAE= + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha1-hc36+uso6Gd/QW4odZK18/SepBA= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/p-cancelable/download/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha1-0HjRWjr0CSIMiG8dmgyi5EGrJsw= + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg= + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE= + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ= + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha1-o0KLtwiLOmApL2aRkni3wpetTwc= + dependencies: + p-limit "^2.2.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha1-yyhoVA4xPWHeWPr741zpAE1VQOY= + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI= + dependencies: + callsites "^3.0.0" + +parse-author@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/parse-author/download/parse-author-2.0.0.tgz#d3460bf1ddd0dfaeed42da754242e65fb684a81f" + integrity sha1-00YL8d3Q367tQtp1QkLmX7aEqB8= + dependencies: + author-regex "^1.0.0" + +parse-color@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/parse-color/download/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619" + integrity sha1-e3SLlag/A/FqlPU15S1/PZRlhhk= + dependencies: + color-convert "~0.5.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/parse-ms/download/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha1-NIVlp1PUOR+lJAKZVrFyy3dTCX0= + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/parse-passwd/download/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha1-UTvb4tO5XXdi6METfvoZXGxhtbM= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/pend/download/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM= + dependencies: + find-up "^4.0.0" + +pkg-up@^3.0.1: + version "3.1.0" + resolved "https://registry.npm.taobao.org/pkg-up/download/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha1-EA7CNcwVDk/UJRlBJZaihRKg3vU= + dependencies: + find-up "^3.0.0" + +plist@^3.0.0, plist@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/plist/download/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c" + integrity sha1-qbkx0XwwTokS7wujvdYYK68uH4w= + dependencies: + base64-js "^1.2.3" + xmlbuilder "^9.0.7" + xmldom "0.1.x" + +prebuild-install@^5.3.0: + version "5.3.3" + resolved "https://registry.npm.taobao.org/prebuild-install/download/prebuild-install-5.3.3.tgz#ef4052baac60d465f5ba6bf003c9c1de79b9da8e" + integrity sha1-70BSuqxg1GX1umvwA8nB3nm52o4= + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.0" + mkdirp "^0.5.1" + napi-build-utils "^1.0.1" + node-abi "^2.7.0" + noop-logger "^0.1.1" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + which-pm-runs "^1.0.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/prepend-http/download/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +pretty-bytes@^1.0.2: + version "1.0.4" + resolved "https://registry.npm.taobao.org/pretty-bytes/download/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" + integrity sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ= + dependencies: + get-stdin "^4.0.1" + meow "^3.1.0" + +pretty-ms@^5.0.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/pretty-ms/download/pretty-ms-5.1.0.tgz#b906bdd1ec9e9799995c372e2b1c34f073f95384" + integrity sha1-uQa90eyel5mZXDcuKxw08HP5U4Q= + dependencies: + parse-ms "^2.1.0" + +pretty-ms@^6.0.0: + version "6.0.1" + resolved "https://registry.npm.taobao.org/pretty-ms/download/pretty-ms-6.0.1.tgz#03ec6cfee20329f142645e63efad96bb775d3da4" + integrity sha1-A+xs/uIDKfFCZF5j762Wu3ddPaQ= + dependencies: + parse-ms "^2.1.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I= + +progress-stream@^1.1.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/progress-stream/download/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" + integrity sha1-LNPP6jO6OonJwSHsM0er6asSX3c= + dependencies: + speedometer "~0.1.2" + through2 "~0.2.3" + +progress@^2.0.0, progress@^2.0.3: + version "2.0.3" + resolved "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg= + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ= + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ= + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= + +random-path@^0.1.0: + version "0.1.1" + resolved "https://registry.npm.taobao.org/random-path/download/random-path-0.1.1.tgz#f8f4d36f75a134ca15fd39c7d7505fbf163b634c" + integrity sha1-+PTTb3WhNMoV/TnH11BfvxY7Y0w= + dependencies: + base32-encode "^0.1.0" + murmur-32 "^0.1.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0= + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +rcedit@^2.0.0: + version "2.1.1" + resolved "https://registry.npm.taobao.org/rcedit/download/rcedit-2.1.1.tgz#483b8f42004895cb81abc5c64c7b91645fc6ed53" + integrity sha1-SDuPQgBIlcuBq8XGTHuRZF/G7VM= + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1575620513709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz?cache=0&sync_timestamp=1575620513709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@^2.0.6, readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.0" + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha1-M3u9o63AcGvT4CRCaihtS0sskZg= + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha1-jRnTHPYySCtYkEn4KB+T28uk0H8= + +repeat-string@^1.5.4: + version "1.6.1" + resolved "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request@^2.45.0, request@^2.88.0: + version "2.88.2" + resolved "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz?cache=0&sync_timestamp=1581439006948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM= + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs= + +resolve-dir@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/resolve-dir/download/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY= + +resolve-package@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/resolve-package/download/resolve-package-1.0.1.tgz#686f70b188bd7d675f5bbc4282ccda060abb9d27" + integrity sha1-aG9wsYi9fWdfW7xCgszaBgq7nSc= + dependencies: + get-installed-path "^2.0.3" + +resolve@^1.1.6, resolve@^1.10.0: + version "1.15.1" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha1-J73N7/6vLWJEuVuw+fS0ZTRR8+g= + dependencies: + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/responselike/download/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha1-OfZ8VLOnpYzqUjbZXPADQjljH34= + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +rimraf@2.6.3, rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha1-stEE/g2Psnz54KHNqCYt04M8bKs= + dependencies: + glob "^7.1.3" + +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho= + dependencies: + glob "^7.1.3" + +roarr@^2.15.2: + version "2.15.3" + resolved "https://registry.npm.taobao.org/roarr/download/roarr-2.15.3.tgz#65248a291a15af3ebfd767cbf7e44cb402d1d836" + integrity sha1-ZSSKKRoVrz6/12fL9+RMtALR2DY= + dependencies: + boolean "^3.0.0" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +run-async@^2.4.0: + version "2.4.0" + resolved "https://registry.npm.taobao.org/run-async/download/run-async-2.4.0.tgz?cache=0&sync_timestamp=1582711649944&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-async%2Fdownload%2Frun-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha1-5ZBUpbhods+uB/Qx0Yy63cWU8eg= + dependencies: + is-promise "^2.1.0" + +rxjs@^6.3.1, rxjs@^6.5.3: + version "6.5.5" + resolved "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" + integrity sha1-xciE4wlMjP7jG/J+uH5UzPyH+ew= + dependencies: + tslib "^1.9.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk= + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= + +sanitize-filename@^1.6.0, sanitize-filename@^1.6.2: + version "1.6.3" + resolved "https://registry.npm.taobao.org/sanitize-filename/download/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha1-dV69dSBFkxl34wsgJdNA18kJA3g= + dependencies: + truncate-utf8-bytes "^1.0.0" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/semver-compare/download/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha1-qVT5Ma66UI0we78Gnv8MAclhFvc= + +semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= + +semver@^7.1.2: + version "7.2.2" + resolved "https://registry.npm.taobao.org/semver/download/semver-7.2.2.tgz#d01432d74ed3010a20ffaf909d63a691520521cd" + integrity sha1-0BQy107TAQog/6+QnWOmkVIFIc0= + +serialize-error@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/serialize-error/download/serialize-error-5.0.0.tgz?cache=0&sync_timestamp=1583941355970&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-error%2Fdownload%2Fserialize-error-5.0.0.tgz#a7ebbcdb03a5d71a6ed8461ffe0fc1a1afed62ac" + integrity sha1-p+u82wOl1xpu2EYf/g/Boa/tYqw= + dependencies: + type-fest "^0.8.0" + +serialport@^8.0.7: + version "8.0.7" + resolved "https://registry.npm.taobao.org/serialport/download/serialport-8.0.7.tgz#9f28b1b7c47333a0962f5505a1c3feb1d90f89a9" + integrity sha1-nyixt8RzM6CWL1UFocP+sdkPiak= + dependencies: + "@serialport/binding-mock" "^8.0.6" + "@serialport/bindings" "^8.0.7" + "@serialport/parser-byte-length" "^8.0.6" + "@serialport/parser-cctalk" "^8.0.6" + "@serialport/parser-delimiter" "^8.0.6" + "@serialport/parser-readline" "^8.0.6" + "@serialport/parser-ready" "^8.0.6" + "@serialport/parser-regex" "^8.0.6" + "@serialport/stream" "^8.0.6" + debug "^4.1.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw= + +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/simple-concat/download/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= + +simple-get@^3.0.3: + version "3.1.0" + resolved "https://registry.npm.taobao.org/simple-get/download/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha1-tFvgYkNeUNFZVAtXYgLO7EC5xrM= + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +single-line-log@^1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/single-line-log/download/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" + integrity sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q= + dependencies: + string-width "^1.0.1" + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz?cache=0&sync_timestamp=1581900311144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY= + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +source-map-support@^0.5.13: + version "0.5.16" + resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz?cache=0&sync_timestamp=1586434842414&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha1-CuBp5/47p1OMZMmFFeNTOerFoEI= + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= + +spawn-rx@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/spawn-rx/download/spawn-rx-3.0.0.tgz#1d33511e13ec26337da51d78630e08beb57a6767" + integrity sha1-HTNRHhPsJjN9pR14Yw4IvrV6Z2c= + dependencies: + debug "^2.5.1" + lodash.assign "^4.2.0" + rxjs "^6.3.1" + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ= + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc= + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha1-meEZt6XaAOBUkcn6M4t5BII7QdA= + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ= + +speedometer@~0.1.2: + version "0.1.4" + resolved "https://registry.npm.taobao.org/speedometer/download/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" + integrity sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0= + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha1-2hdlJiv4wPVxdJ8q1sJjACB65nM= + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha1-+2YcC+8ps520B2nuOfpwCT1vaHc= + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stream-buffers@~2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/stream-buffers/download/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" + integrity sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ= + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha1-InZ74htirxCBV0MG9prFG2IgOWE= + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0: + version "4.2.0" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha1-lSGCxGzHssMT0VluYjmSvRY7crU= + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4= + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g= + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4= + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI= + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@^3.0.1: + version "3.1.0" + resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" + integrity sha1-djjTFCISns9EV0QACfugP5+awYA= + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +sudo-prompt@^9.1.1: + version "9.1.1" + resolved "https://registry.npm.taobao.org/sudo-prompt/download/sudo-prompt-9.1.1.tgz#73853d729770392caec029e2470db9c221754db0" + integrity sha1-c4U9cpdwOSyuwCniRw25wiF1TbA= + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/sumchecker/download/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha1-Y3fplnlauwttNI6bPh37JDRajkI= + dependencies: + debug "^4.1.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8= + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E= + dependencies: + has-flag "^4.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.npm.taobao.org/table/download/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha1-EpLRlQDOP4YFOwXw6Ofko7shB54= + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tar-fs@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/tar-fs/download/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" + integrity sha1-5ECGwcYNMaTwz4k7HE4VXav66eI= + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-stream@^2.0.0: + version "2.1.2" + resolved "https://registry.npm.taobao.org/tar-stream/download/tar-stream-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325" + integrity sha1-bV7xp+V4OpX/cLabl0VaWWjcEyU= + dependencies: + bl "^4.0.1" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^4.4.12: + version "4.4.13" + resolved "https://registry.npm.taobao.org/tar/download/tar-4.4.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU= + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +temp@^0.9.0: + version "0.9.1" + resolved "https://registry.npm.taobao.org/temp/download/temp-0.9.1.tgz#2d666114fafa26966cd4065996d7ceedd4dd4697" + integrity sha1-LWZhFPr6JpZs1AZZltfO7dTdRpc= + dependencies: + rimraf "~2.6.2" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throttleit@0.0.2: + version "0.0.2" + resolved "https://registry.npm.taobao.org/throttleit/download/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" + integrity sha1-z+34jmDADdlpe2H90qg0OptoDq8= + +through2@~0.2.3: + version "0.2.3" + resolved "https://registry.npm.taobao.org/through2/download/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" + integrity sha1-6zKE2k6jEbbMis42U3SKUqvyWj8= + dependencies: + readable-stream "~1.1.9" + xtend "~2.1.1" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tiny-each-async@2.0.3: + version "2.0.3" + resolved "https://registry.npm.taobao.org/tiny-each-async/download/tiny-each-async-2.0.3.tgz#8ebbbfd6d6295f1370003fbb37162afe5a0a51d1" + integrity sha1-jru/1tYpXxNwAD+7NxYq/loKUdE= + +tmp-promise@^1.0.5: + version "1.1.0" + resolved "https://registry.npm.taobao.org/tmp-promise/download/tmp-promise-1.1.0.tgz#bb924d239029157b9bc1d506a6aa341f8b13e64c" + integrity sha1-u5JNI5ApFXubwdUGpqo0H4sT5kw= + dependencies: + bluebird "^3.5.0" + tmp "0.1.0" + +tmp-promise@^2.0.1: + version "2.0.2" + resolved "https://registry.npm.taobao.org/tmp-promise/download/tmp-promise-2.0.2.tgz#ee605edb10f100954be5dd8b9dbe1bfd56194202" + integrity sha1-7mBe2xDxAJVL5d2Lnb4b/VYZQgI= + dependencies: + tmp "0.1.0" + +tmp@0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/tmp/download/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" + integrity sha1-7kNKTiJUMILilLpiAdzG6v76KHc= + dependencies: + rimraf "^2.6.3" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha1-bTQzWIl2jSGyvNoKonfO07G/rfk= + dependencies: + os-tmpdir "~1.0.2" + +tn1150@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/tn1150/download/tn1150-0.1.0.tgz#673503d24d56b87de8b8c77fee3fc0853d59a18d" + integrity sha1-ZzUD0k1WuH3ouMd/7j/AhT1ZoY0= + dependencies: + unorm "^1.4.1" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/to-readable-stream/download/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha1-zgqgwvPfat+FLvtASng+d8BHV3E= + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha1-zZ+yoKodWhK0c72fuW+j3P9lreI= + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/truncate-utf8-bytes/download/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= + dependencies: + utf8-byte-length "^1.0.1" + +tslib@^1.9.0: + version "1.11.1" + resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha1-6xXRKIJ/vuKEFUnhcfRe0zisfjU= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.npm.taobao.org/tunnel/download/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha1-cvExSzSlsZLbASMk3yzFh8pH+Sw= + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581365146868&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz?cache=0&sync_timestamp=1585882977555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.npm.taobao.org/type-fest/download/type-fest-0.11.0.tgz?cache=0&sync_timestamp=1586358303066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E= + +type-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.npm.taobao.org/type-fest/download/type-fest-0.7.1.tgz?cache=0&sync_timestamp=1586358303066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" + integrity sha1-jdpl/q8D7Xjwo/lnjxhpFH98XEg= + +type-fest@^0.8.0, type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1586358303066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha1-CeJJ696FHTseSNJ8EFREZn8XuD0= + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.npm.taobao.org/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha1-qX7nqf9CaRufeD/xvFES/j/KkIA= + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +universal-user-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.npm.taobao.org/universal-user-agent/download/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" + integrity sha1-/Y1st3OmeacJ6WfvgoijH8wD5Vc= + dependencies: + os-name "^3.1.0" + +universal-user-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/universal-user-agent/download/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" + integrity sha1-oxgqp1gGm/DnmVJXDKdX3jV5wdk= + dependencies: + os-name "^3.1.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583531006552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= + +unorm@^1.4.1: + version "1.6.0" + resolved "https://registry.npm.taobao.org/unorm/download/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af" + integrity sha1-ApsolmH7pxTxqa9DnrUdmxbCBa8= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha1-lMVA4f93KVbiKZUHwBCupsiDjrA= + dependencies: + punycode "^2.1.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +username@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/username/download/username-5.1.0.tgz#a7f9325adce2d0166448cdd55d4985b1360f2508" + integrity sha1-p/kyWtzi0BZkSM3VXUmFsTYPJQg= + dependencies: + execa "^1.0.0" + mem "^4.3.0" + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.npm.taobao.org/utf8-byte-length/download/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4= + +v8-compile-cache@^2.0.3: + version "2.1.0" + resolved "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha1-4U3jezGm0ZT1aQ1n78Tn9vxqsw4= + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha1-/JH2uce6FchX9MssXe/uw51PQQo= + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/which-pm-runs/download/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= + dependencies: + isexe "^2.0.0" + +which@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE= + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha1-rgdOa9wMFKQx6ATmJFScYzsABFc= + dependencies: + string-width "^1.0.2 || 2" + +windows-release@^3.1.0: + version "3.3.0" + resolved "https://registry.npm.taobao.org/windows-release/download/windows-release-3.3.0.tgz#dce167e9f8be733f21c849ebd4d03fe66b29b9f0" + integrity sha1-3OFn6fi+cz8hyEnr1NA/5mspufA= + dependencies: + execa "^1.0.0" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz?cache=0&sync_timestamp=1573488719878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha1-H9H2cjXVttD+54EFYAG/tpTAOwk= + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug= + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM= + dependencies: + mkdirp "^0.5.1" + +xmlbuilder@^9.0.7: + version "9.0.7" + resolved "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xmldom@0.1.x: + version "0.1.31" + resolved "https://registry.npm.taobao.org/xmldom/download/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff" + integrity sha1-t2yaG9nwqXN+WnLcNyMc84N14v8= + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= + +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.npm.taobao.org/xtend/download/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= + dependencies: + object-keys "~0.4.0" + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha1-le+U+F7MgdAHwmThkKEg8KPIVms= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha1-27fa+b/YusmrRev2ArjLrQ1dCP0= + +yargs-parser@^15.0.1: + version "15.0.1" + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-15.0.1.tgz?cache=0&sync_timestamp=1585243543699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha1-VHhq9AuCDcsvuAJbEbTWWddjI7M= + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^16.0.0: + version "16.1.0" + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-16.1.0.tgz?cache=0&sync_timestamp=1585243543699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" + integrity sha1-c3R9U64YfnuNvjM/lXFMduoA7PE= + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^14.0.0, yargs@^14.2.0: + version "14.2.3" + resolved "https://registry.npm.taobao.org/yargs/download/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha1-Ghw+3O0a+yov6jNgS8bR2NaIpBQ= + dependencies: + cliui "^5.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^15.0.1" + +yarn-or-npm@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/yarn-or-npm/download/yarn-or-npm-3.0.1.tgz#6336eea4dff7e23e226acc98c1a8ada17a1b8666" + integrity sha1-YzbupN/34j4iasyYwaitoXobhmY= + dependencies: + cross-spawn "^6.0.5" + pkg-dir "^4.2.0" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.npm.taobao.org/yauzl/download/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0"