From e8b30b72f5c68a0a31ea98302603968f85ab93bb Mon Sep 17 00:00:00 2001 From: Spades-S Date: Fri, 27 Mar 2020 16:41:22 +0800 Subject: [PATCH] :package: Chore: add coverage collector --- .github/workflows/ci.yml | 1 + coverage.json | 15 + package.json | 7 +- test/runner/index.ts | 22 + test/suite/extension.test.ts | 6 +- test/utils/constants-and-interfaces.ts | 167 ++++++ test/utils/coverage-collector.ts | 135 +++++ test/utils/index.ts | 185 +----- test/utils/upload-starter.ts | 40 ++ yarn.lock | 745 +++++++------------------ 10 files changed, 597 insertions(+), 726 deletions(-) create mode 100644 coverage.json create mode 100644 test/utils/constants-and-interfaces.ts create mode 100644 test/utils/coverage-collector.ts create mode 100644 test/utils/upload-starter.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef9f79a..1212e0a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,7 @@ jobs: - name: npm install, make test-coverage run: | npm install + npm run compile npm run test - name: Coveralls diff --git a/coverage.json b/coverage.json new file mode 100644 index 0000000..5978d39 --- /dev/null +++ b/coverage.json @@ -0,0 +1,15 @@ +{ + "enabled": true, + "sourceRoot": "./out/src", + "output": "./coverage", + "ignorePatterns": [ + "**/node_modules/**" + ], + "includePid": false, + "reports": [ + "html", + "lcov", + "text" + ], + "verbose": false +} diff --git a/package.json b/package.json index bada724..8d7bd46 100644 --- a/package.json +++ b/package.json @@ -305,6 +305,7 @@ "@picgo/bump-version": "^1.0.3", "@types/glob": "^7.1.1", "@types/inquirer": "^6.5.0", + "@types/istanbul": "^0.4.30", "@types/mocha": "^7.0.1", "@types/node": "^12.11.7", "@types/request-promise-native": "^1.0.17", @@ -313,14 +314,16 @@ "@typescript-eslint/parser": "^2.18.0", "cz-conventional-changelog": "^3.1.0", "cz-customizable": "6.2.0", + "decache": "^4.5.1", "eslint": "^6.8.0", "eslint-config-prettier": "^6.10.0", "eslint-plugin-prettier": "^3.1.2", "glob": "^7.1.6", "husky": "^4.2.3", + "istanbul": "^0.4.5", "mocha": "^7.0.1", - "nyc": "^15.0.0", - "prettier": "1.19.1", + "prettier": "^1.19.1", + "remap-istanbul": "^0.13.0", "typescript": "^3.7.5", "vscode-test": "^1.3.0" }, diff --git a/test/runner/index.ts b/test/runner/index.ts index 423c1f5..7ce1a70 100644 --- a/test/runner/index.ts +++ b/test/runner/index.ts @@ -1,7 +1,15 @@ +import * as fs from 'fs'; import * as glob from 'glob'; import * as path from 'path'; import * as Mocha from 'mocha'; +import { + COVERAGE_COLLECTOR_CONFIG_FILE_PATH, + DEFAULT_COVERAGE_CONFIGURATION, + ICoverageCollectorOptions, + CoverageCollector, +} from '../utils'; + export function run(): Promise { // Create the mocha test const mocha = new Mocha({ @@ -11,7 +19,20 @@ export function run(): Promise { const testsRoot = path.resolve(__dirname, '../suite'); + // collect coverage + + let coverageCollectorOptions: ICoverageCollectorOptions = DEFAULT_COVERAGE_CONFIGURATION; + if (fs.existsSync(COVERAGE_COLLECTOR_CONFIG_FILE_PATH)) { + coverageCollectorOptions = require(COVERAGE_COLLECTOR_CONFIG_FILE_PATH); + } + + const coverageCollector = new CoverageCollector( + path.dirname(COVERAGE_COLLECTOR_CONFIG_FILE_PATH), + coverageCollectorOptions, + ); + return new Promise((resolve, reject) => { + coverageCollector.setup(); glob('**/**test.js', { cwd: testsRoot }, (err, files) => { if (err) { return reject(err); @@ -24,6 +45,7 @@ export function run(): Promise { if (failures > 0) { reject(new Error(`${failures} tests failed.`)); } + coverageCollector.report(); resolve(); }); } catch (err) { diff --git a/test/suite/extension.test.ts b/test/suite/extension.test.ts index 13b8e6a..ab4fd23 100644 --- a/test/suite/extension.test.ts +++ b/test/suite/extension.test.ts @@ -52,7 +52,7 @@ describe('VSPicgo', async function() { }, vspicgo, }); - console.log('output' + res); + console.log('output: ' + res); assert.equal(REG4CUSTOM_OUTPUT_FORMAT.test(res), true); }); @@ -69,7 +69,7 @@ describe('VSPicgo', async function() { }, vspicgo, }); - console.log('uploadName' + res); + console.log('uploadName: ' + res); assert.equal(REG4CUSTOM_FILE_FORMAT.test(res), true); }); @@ -84,7 +84,7 @@ describe('VSPicgo', async function() { }, vspicgo, }); - console.log('selection' + res); + console.log('selection: ' + res); assert.equal(res.indexOf('TEST'), 2); }); }); diff --git a/test/utils/constants-and-interfaces.ts b/test/utils/constants-and-interfaces.ts new file mode 100644 index 0000000..fed945f --- /dev/null +++ b/test/utils/constants-and-interfaces.ts @@ -0,0 +1,167 @@ +import * as path from 'path'; +import { Selection } from 'vscode'; + +import VSPicgo from '../../src/vs-picgo'; + +export interface IVSPicgoConfiguration { + 'picgo.configPath': string | undefined; + 'picgo.dataPath': string | undefined; + 'picgo.customUploadName': string | undefined; + 'picgo.customOutputFormat': string | undefined; + 'picgo.picBed.current': string | undefined; + + // aliyun picBed + 'picgo.picBed.aliyun.accessKeyId': string | undefined; + 'picgo.picBed.aliyun.accessKeySecret': string | undefined; + 'picgo.picBed.aliyun.bucket': string | undefined; + 'picgo.picBed.aliyun.area': string | undefined; + 'picgo.picBed.aliyun.path': string | undefined; + 'picgo.picBed.aliyun.customUrl': string | undefined; + + // github picBed + 'picgo.picBed.github.repo': string | undefined; + 'picgo.picBed.github.token': string | undefined; + 'picgo.picBed.github.path': string | undefined; + 'picgo.picBed.github.customUrl': string | undefined; + 'picgo.picBed.github.branch': string | undefined; + + // imgur picBed + 'picgo.picBed.imgur.clientId': string | undefined; + 'picgo.picBed.imgur.proxy': string | undefined; + + // qiniu picBed + 'picgo.picBed.qiniu.accessKey': string | undefined; + 'picgo.picBed.qiniu.secretKey': string | undefined; + 'picgo.picBed.qiniu.bucket': string | undefined; + 'picgo.picBed.qiniu.url': string | undefined; + 'picgo.picBed.qiniu.area': string | undefined; + 'picgo.picBed.qiniu.options': string | undefined; + 'picgo.picBed.qiniu.path': string | undefined; + + // sm.ms picBed + 'picgo.picBed.smms.token': string | undefined; + + // tcyun picBed + 'picgo.picBed.tcyun.version': string | undefined; + 'picgo.picBed.tcyun.secretId': string | undefined; + 'picgo.picBed.tcyun.secretKey': string | undefined; + 'picgo.picBed.tcyun.bucket': string | undefined; + 'picgo.picBed.tcyun.appId': string | undefined; + 'picgo.picBed.tcyun.area': string | undefined; + 'picgo.picBed.tcyun.path': string | undefined; + 'picgo.picBed.tcyun.customUrl': string | undefined; + + // upyun picBed + 'picgo.picBed.upyun.bucket': string | undefined; + 'picgo.picBed.upyun.operator': string | undefined; + 'picgo.picBed.upyun.password': string | undefined; + 'picgo.picBed.upyun.options': string | undefined; + 'picgo.picBed.upyun.path': string | undefined; + 'picgo.picBed.upyun.url': string | undefined; + + // weibo picBed + 'picgo.picBed.weibo.chooseCookie': boolean | undefined; + 'picgo.picBed.weibo.username': string | undefined; + 'picgo.picBed.weibo.quality': string | undefined; + 'picgo.picBed.weibo.cookie': string | undefined; +} + +export type IVSPicgoConfigurationKeys = keyof IVSPicgoConfiguration; + +export interface IVSPicgoUploadStarterOptions { + vspicgo: VSPicgo; + args4uploader: string[]; // arguments sent to func, + configuration: Partial; + editor: { + content: string; + selection: Selection; + }; +} + +export interface ICoverageCollectorOptions { + enabled: boolean; + ignorePatterns: string[]; + sourceRoot: string; + includePid: boolean; + output: string; + reports: string[]; + verbose: boolean; +} + +export const TEST_MD_FILE_PATH = path.join(__dirname, '../../../assets/test.md'); +export const TEST_PICTURE_PATH = path.join(__dirname, '../../../assets/test.png'); + +export const COVERAGE_COLLECTOR_CONFIG_FILE_PATH = path.join(__dirname, '../../../coverage.json'); +export const DEFAULT_CONFIGS: IVSPicgoConfiguration = { + 'picgo.configPath': '', + 'picgo.dataPath': '', + 'picgo.customUploadName': '${fileName}${extName}', + 'picgo.customOutputFormat': '![${uploadedName}](${url})', + 'picgo.picBed.current': 'smms', + // 'picgo.picBed.current': 'github', + + // aliyun picBed + 'picgo.picBed.aliyun.accessKeyId': '', + 'picgo.picBed.aliyun.accessKeySecret': '', + 'picgo.picBed.aliyun.bucket': '', + 'picgo.picBed.aliyun.area': '', + 'picgo.picBed.aliyun.path': '', + 'picgo.picBed.aliyun.customUrl': '', + + // github picBed + 'picgo.picBed.github.repo': '', + 'picgo.picBed.github.token': '', + 'picgo.picBed.github.path': '', + 'picgo.picBed.github.customUrl': '', + 'picgo.picBed.github.branch': '', + + // imgur picBed + 'picgo.picBed.imgur.clientId': '', + 'picgo.picBed.imgur.proxy': '', + + // qiniu picBed + 'picgo.picBed.qiniu.accessKey': '', + 'picgo.picBed.qiniu.secretKey': '', + 'picgo.picBed.qiniu.bucket': '', + 'picgo.picBed.qiniu.url': '', + 'picgo.picBed.qiniu.area': 'z0', + 'picgo.picBed.qiniu.options': '', + 'picgo.picBed.qiniu.path': '', + + // sm.ms picBed + 'picgo.picBed.smms.token': 'JxUI4p3alQ8QviKAd4wmQByitBufRqJS', // only for test + + // tcyun picBed + 'picgo.picBed.tcyun.version': 'v5', + 'picgo.picBed.tcyun.secretId': '', + 'picgo.picBed.tcyun.secretKey': '', + 'picgo.picBed.tcyun.bucket': '', + 'picgo.picBed.tcyun.appId': '', + 'picgo.picBed.tcyun.area': '', + 'picgo.picBed.tcyun.path': '', + 'picgo.picBed.tcyun.customUrl': '', + + // upyun picBed + 'picgo.picBed.upyun.bucket': '', + 'picgo.picBed.upyun.operator': '', + 'picgo.picBed.upyun.password': '', + 'picgo.picBed.upyun.options': '', + 'picgo.picBed.upyun.path': '', + 'picgo.picBed.upyun.url': '', + + // weibo picBed + 'picgo.picBed.weibo.chooseCookie': true, + 'picgo.picBed.weibo.username': '', + 'picgo.picBed.weibo.quality': 'large', + 'picgo.picBed.weibo.cookie': '', +}; + +export const DEFAULT_COVERAGE_CONFIGURATION: ICoverageCollectorOptions = { + enabled: true, + sourceRoot: './out/src', + output: './coverage', + ignorePatterns: ['**/node_modules/**'], + includePid: false, + reports: ['html', 'lcov', 'text-summary'], + verbose: false, +}; diff --git a/test/utils/coverage-collector.ts b/test/utils/coverage-collector.ts new file mode 100644 index 0000000..6841e55 --- /dev/null +++ b/test/utils/coverage-collector.ts @@ -0,0 +1,135 @@ +import * as fs from 'fs'; +import * as glob from 'glob'; +import * as path from 'path'; +import * as istanbul from 'istanbul'; +import { ICoverageCollectorOptions } from './constants-and-interfaces'; + +const remapIstanbul = require('remap-istanbul'); + +declare var global: any; + +function ensureDirExists(dir: string): void { + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } +} + +export class CoverageCollector { + private coverageVar: string = '$$cov_' + new Date().getTime() + '$$'; + private transformer: any; + private matchFn: any; + private instrumenter: any; + + constructor(basePath: string, private options: ICoverageCollectorOptions) { + if (!this.options.sourceRoot) { + return; + } + this.options.sourceRoot = path.join(basePath, this.options.sourceRoot); + this.options.output = path.join(basePath, this.options.output); + } + + public setup(): void { + // Set up Code Coverage, hooking require so that instrumented code is returned + this.instrumenter = new istanbul.Instrumenter({ coverageVariable: this.coverageVar }); + + // Glob source files + const srcFiles = glob.sync('**/**.js', { + cwd: this.options.sourceRoot, + ignore: this.options.ignorePatterns, + }); + + // Create a match function - taken from the run-with-cover.js in istanbul. + const decache = require('decache'); + const fileMap: any = {}; + srcFiles.forEach(file => { + const fullPath = path.join(this.options.sourceRoot, file); + fileMap[fullPath] = true; + + // On Windows, extension is loaded pre-test hooks and this mean we lose + // our chance to hook the Require call. In order to instrument the code + // we have to decache the JS file so on next load it gets instrumented. + // This doesn't impact tests, but is a concern if we had some integration + // tests that relied on VSCode accessing our module since there could be + // some shared global state that we lose. + decache(fullPath); + }); + + this.matchFn = (file: string): boolean => fileMap[file]; + this.matchFn.files = Object.keys(fileMap); + + // Hook up to the Require function so that when this is called, if any of our source files + // are required, the instrumented version is pulled in instead. These instrumented versions + // write to a global coverage variable with hit counts whenever they are accessed + this.transformer = this.instrumenter.instrumentSync.bind(this.instrumenter); + const hookOpts = { verbose: false, extensions: ['.js'] }; + (istanbul.hook as any).hookRequire(this.matchFn, this.transformer, hookOpts); + + // initialize the global variable to stop mocha from complaining about leaks + global[this.coverageVar] = {}; + } + + /** + * Writes a coverage report. + * Note that as this is called in the process exit callback, all calls must be synchronous. + * + * @returns {void} + * + * @memberOf CoverageRunner + */ + public report(): void { + (istanbul.hook as any).unhookRequire(); + let cov: any; + if (typeof global[this.coverageVar] === 'undefined' || Object.keys(global[this.coverageVar]).length === 0) { + console.error('No coverage information was collected, exit without writing coverage information'); + return; + } else { + cov = global[this.coverageVar]; + } + + // TODO consider putting this under a conditional flag + // Files that are not touched by code ran by the test runner is manually instrumented, to + // illustrate the missing coverage. + this.matchFn.files.forEach((file: any) => { + if (cov[file]) { + return; + } + this.transformer(fs.readFileSync(file, 'utf-8'), file); + + // When instrumenting the code, istanbul will give each FunctionDeclaration a value of 1 in coverState.s, + // presumably to compensate for function hoisting. We need to reset this, as the function was not hoisted, + // as it was never loaded. + Object.keys(this.instrumenter.coverState.s).forEach(key => { + this.instrumenter.coverState.s[key] = 0; + }); + + cov[file] = this.instrumenter.coverState; + }); + + // TODO Allow config of reporting directory with + const includePid = this.options.includePid; + const pidExt = includePid ? '-' + process.pid : ''; + const coverageFile = path.resolve(this.options.output, 'coverage' + pidExt + '.json'); + + // yes, do this again since some test runners could clean the dir initially created + ensureDirExists(this.options.output); + + fs.writeFileSync(coverageFile, JSON.stringify(cov), 'utf8'); + + const remappedCollector = remapIstanbul.remap(cov, { + warn: (warning: any) => { + // We expect some warnings as any JS file without a typescript mapping will cause this. + // By default, we'll skip printing these to the console as it clutters it up + if (this.options.verbose) { + console.warn(warning); + } + }, + }); + + const reporter = new istanbul.Reporter(undefined, this.options.output); + const reportTypes = this.options.reports instanceof Array ? this.options.reports : ['lcov']; + reporter.addAll(reportTypes); + reporter.write(remappedCollector, true, () => { + console.log(`reports written to ${this.options.output}`); + }); + } +} diff --git a/test/utils/index.ts b/test/utils/index.ts index 0fdf0e3..a001484 100644 --- a/test/utils/index.ts +++ b/test/utils/index.ts @@ -1,182 +1,3 @@ -import * as path from 'path'; -import { window, workspace, Position, Range, Selection } from 'vscode'; - -import VSPicgo, { EVSPicgoHooks } from '../../src/vs-picgo'; - -export interface IVSPicgoConfiguration { - 'picgo.configPath': string | undefined; - 'picgo.dataPath': string | undefined; - 'picgo.customUploadName': string | undefined; - 'picgo.customOutputFormat': string | undefined; - 'picgo.picBed.current': string | undefined; - - // aliyun picBed - 'picgo.picBed.aliyun.accessKeyId': string | undefined; - 'picgo.picBed.aliyun.accessKeySecret': string | undefined; - 'picgo.picBed.aliyun.bucket': string | undefined; - 'picgo.picBed.aliyun.area': string | undefined; - 'picgo.picBed.aliyun.path': string | undefined; - 'picgo.picBed.aliyun.customUrl': string | undefined; - - // github picBed - 'picgo.picBed.github.repo': string | undefined; - 'picgo.picBed.github.token': string | undefined; - 'picgo.picBed.github.path': string | undefined; - 'picgo.picBed.github.customUrl': string | undefined; - 'picgo.picBed.github.branch': string | undefined; - - // imgur picBed - 'picgo.picBed.imgur.clientId': string | undefined; - 'picgo.picBed.imgur.proxy': string | undefined; - - // qiniu picBed - 'picgo.picBed.qiniu.accessKey': string | undefined; - 'picgo.picBed.qiniu.secretKey': string | undefined; - 'picgo.picBed.qiniu.bucket': string | undefined; - 'picgo.picBed.qiniu.url': string | undefined; - 'picgo.picBed.qiniu.area': string | undefined; - 'picgo.picBed.qiniu.options': string | undefined; - 'picgo.picBed.qiniu.path': string | undefined; - - // sm.ms picBed - 'picgo.picBed.smms.token': string | undefined; - - // tcyun picBed - 'picgo.picBed.tcyun.version': string | undefined; - 'picgo.picBed.tcyun.secretId': string | undefined; - 'picgo.picBed.tcyun.secretKey': string | undefined; - 'picgo.picBed.tcyun.bucket': string | undefined; - 'picgo.picBed.tcyun.appId': string | undefined; - 'picgo.picBed.tcyun.area': string | undefined; - 'picgo.picBed.tcyun.path': string | undefined; - 'picgo.picBed.tcyun.customUrl': string | undefined; - - // upyun picBed - 'picgo.picBed.upyun.bucket': string | undefined; - 'picgo.picBed.upyun.operator': string | undefined; - 'picgo.picBed.upyun.password': string | undefined; - 'picgo.picBed.upyun.options': string | undefined; - 'picgo.picBed.upyun.path': string | undefined; - 'picgo.picBed.upyun.url': string | undefined; - - // weibo picBed - 'picgo.picBed.weibo.chooseCookie': boolean | undefined; - 'picgo.picBed.weibo.username': string | undefined; - 'picgo.picBed.weibo.quality': string | undefined; - 'picgo.picBed.weibo.cookie': string | undefined; -} - -export type IVSPicgoConfigurationKeys = keyof IVSPicgoConfiguration; - -interface IVSPicgoUploaderStarterOptions { - vspicgo: VSPicgo; - args4uploader: string[]; // arguments sent to func, - configuration: Partial; - editor: { - content: string; - selection: Selection; - }; -} - -export const TEST_MD_FILE_PATH = path.join(__dirname, '../../../assets/test.md'); -export const TEST_PICTURE_PATH = path.join(__dirname, '../../../assets/test.png'); -export const DEFAULT_CONFIGS: IVSPicgoConfiguration = { - 'picgo.configPath': '', - 'picgo.dataPath': '', - 'picgo.customUploadName': '${fileName}${extName}', - 'picgo.customOutputFormat': '![${uploadedName}](${url})', - 'picgo.picBed.current': 'smms', - // 'picgo.picBed.current': 'github', - - // aliyun picBed - 'picgo.picBed.aliyun.accessKeyId': '', - 'picgo.picBed.aliyun.accessKeySecret': '', - 'picgo.picBed.aliyun.bucket': '', - 'picgo.picBed.aliyun.area': '', - 'picgo.picBed.aliyun.path': '', - 'picgo.picBed.aliyun.customUrl': '', - - // github picBed - 'picgo.picBed.github.repo': '', - 'picgo.picBed.github.token': '', - 'picgo.picBed.github.path': '', - 'picgo.picBed.github.customUrl': '', - 'picgo.picBed.github.branch': '', - - // imgur picBed - 'picgo.picBed.imgur.clientId': '', - 'picgo.picBed.imgur.proxy': '', - - // qiniu picBed - 'picgo.picBed.qiniu.accessKey': '', - 'picgo.picBed.qiniu.secretKey': '', - 'picgo.picBed.qiniu.bucket': '', - 'picgo.picBed.qiniu.url': '', - 'picgo.picBed.qiniu.area': 'z0', - 'picgo.picBed.qiniu.options': '', - 'picgo.picBed.qiniu.path': '', - - // sm.ms picBed - 'picgo.picBed.smms.token': 'JxUI4p3alQ8QviKAd4wmQByitBufRqJS', // only for test - - // tcyun picBed - 'picgo.picBed.tcyun.version': 'v5', - 'picgo.picBed.tcyun.secretId': '', - 'picgo.picBed.tcyun.secretKey': '', - 'picgo.picBed.tcyun.bucket': '', - 'picgo.picBed.tcyun.appId': '', - 'picgo.picBed.tcyun.area': '', - 'picgo.picBed.tcyun.path': '', - 'picgo.picBed.tcyun.customUrl': '', - - // upyun picBed - 'picgo.picBed.upyun.bucket': '', - 'picgo.picBed.upyun.operator': '', - 'picgo.picBed.upyun.password': '', - 'picgo.picBed.upyun.options': '', - 'picgo.picBed.upyun.path': '', - 'picgo.picBed.upyun.url': '', - - // weibo picBed - 'picgo.picBed.weibo.chooseCookie': true, - 'picgo.picBed.weibo.username': '', - 'picgo.picBed.weibo.quality': 'large', - 'picgo.picBed.weibo.cookie': '', -}; - -export async function VSPicgoUploadStarter(options: IVSPicgoUploaderStarterOptions): Promise { - // load custom configuration - const mergedConfig = Object.assign({}, DEFAULT_CONFIGS, options.configuration); - - // update configuration - for (const section of Object.keys(mergedConfig)) { - await workspace - .getConfiguration('', null) - .update(section, mergedConfig[section as IVSPicgoConfigurationKeys], true); - } - - const editor = window.activeTextEditor; - - if (!editor) { - throw new Error('No activeTextEditor.'); - } - - await editor.edit(editorBuilder => { - // clean up content in test.md, insert custom content - const fullRange = new Range(new Position(0, 0), editor.document.positionAt(editor.document.getText().length)); - editorBuilder.replace(fullRange, options.editor.content); - }); - - editor.selection = options.editor.selection; - - await options.vspicgo.upload(options.args4uploader); - - return new Promise((resolve, reject) => { - options.vspicgo.on(EVSPicgoHooks.updated, async (res: string) => { - console.log('updated' + res); - const { document } = editor; - await document.save(); - resolve(document.getText()); - }); - }); -} +export * from './constants-and-interfaces'; +export * from './coverage-collector'; +export * from './upload-starter'; \ No newline at end of file diff --git a/test/utils/upload-starter.ts b/test/utils/upload-starter.ts new file mode 100644 index 0000000..3324ebf --- /dev/null +++ b/test/utils/upload-starter.ts @@ -0,0 +1,40 @@ +import { Range, Position, window, workspace } from 'vscode'; +import { DEFAULT_CONFIGS, IVSPicgoUploadStarterOptions, IVSPicgoConfigurationKeys } from './constants-and-interfaces'; +import { EVSPicgoHooks } from '../../src/vs-picgo'; + +export async function VSPicgoUploadStarter(options: IVSPicgoUploadStarterOptions): Promise { + // load custom configuration + const mergedConfig = Object.assign({}, DEFAULT_CONFIGS, options.configuration); + + // update configuration + for (const section of Object.keys(mergedConfig)) { + await workspace + .getConfiguration('', null) + .update(section, mergedConfig[section as IVSPicgoConfigurationKeys], true); + } + + const editor = window.activeTextEditor; + + if (!editor) { + throw new Error('No activeTextEditor.'); + } + + await editor.edit(editorBuilder => { + // clean up content in test.md, insert custom content + const fullRange = new Range(new Position(0, 0), editor.document.positionAt(editor.document.getText().length)); + editorBuilder.replace(fullRange, options.editor.content); + }); + + editor.selection = options.editor.selection; + + await options.vspicgo.upload(options.args4uploader); + + return new Promise((resolve, reject) => { + options.vspicgo.on(EVSPicgoHooks.updated, async (res: string) => { + console.log('updated: ' + res); + const { document } = editor; + await document.save(); + resolve(document.getText()); + }); + }); +} diff --git a/yarn.lock b/yarn.lock index 4365722..cdf1278 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,120 +8,6 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/core@^7.7.5": - version "7.9.0" - resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.9.0.tgz?cache=0&sync_timestamp=1584718830004&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.9.0": - version "7.9.3" - resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.9.3.tgz#7c8b2956c6f68b3ab732bd16305916fbba521d94" - dependencies: - "@babel/types" "^7.9.0" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.8.6.tgz?cache=0&sync_timestamp=1582806192406&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-validator-identifier@^7.9.0": - version "7.9.0" - resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" - -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - "@babel/highlight@^7.0.0": version "7.0.0" resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" @@ -130,54 +16,12 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@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" - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.3" - resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.9.3.tgz?cache=0&sync_timestamp=1584874992857&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.9.3.tgz#043a5fc2ad8b7ea9facddc4e802a1f0f25da7255" - "@babel/runtime@^7.8.7": version "7.8.7" resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.8.7.tgz?cache=0&sync_timestamp=1583373757080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.8.7.tgz#8fefce9802db54881ba59f90bb28719b4996324d" dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.8.6.tgz?cache=0&sync_timestamp=1582806154512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.7.4", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.0" - resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.9.0.tgz?cache=0&sync_timestamp=1584720333049&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": - version "7.9.0" - resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.9.0.tgz?cache=0&sync_timestamp=1584746126419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - "@commitlint/cli@^8.3.5": version "8.3.5" resolved "https://registry.npm.taobao.org/@commitlint/cli/download/@commitlint/cli-8.3.5.tgz?cache=0&sync_timestamp=1579108288463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40commitlint%2Fcli%2Fdownload%2F%40commitlint%2Fcli-8.3.5.tgz#6d93a3a8b2437fa978999d3f6a336bcc70be3fd3" @@ -287,19 +131,6 @@ dependencies: find-up "^4.0.0" -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.0.0" - resolved "https://registry.npm.taobao.org/@istanbuljs/load-nyc-config/download/@istanbuljs/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.2" - resolved "https://registry.npm.taobao.org/@istanbuljs/schema/download/@istanbuljs/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" - "@marionebl/sander@^0.6.0": version "0.6.1" resolved "https://registry.npm.taobao.org/@marionebl/sander/download/@marionebl/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b" @@ -356,6 +187,10 @@ "@types/through" "*" rxjs "^6.4.0" +"@types/istanbul@^0.4.30": + version "0.4.30" + resolved "https://registry.npm.taobao.org/@types/istanbul/download/@types/istanbul-0.4.30.tgz#073159320ab3296b2cfeb481f756a1f8f4c9c8e4" + "@types/json-schema@^7.0.3": version "7.0.4" resolved "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" @@ -455,6 +290,14 @@ JSONStream@^1.0.4: jsonparse "^1.2.0" through ">=2.2.7 <3" +abbrev@1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +abbrev@1.0.x: + version "1.0.9" + resolved "https://registry.npm.taobao.org/abbrev/download/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + 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" @@ -487,13 +330,6 @@ agentkeepalive@^4.0.2: depd "^1.1.2" humanize-ms "^1.2.1" -aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - 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=1582379612319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" @@ -503,10 +339,20 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + ansi-colors@3.2.3: version "3.2.3" resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + dependencies: + ansi-wrap "^0.1.0" + ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz?cache=0&sync_timestamp=1583072804444&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-escapes%2Fdownload%2Fansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -535,13 +381,17 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.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" dependencies: "@types/color-name" "^1.1.1" color-convert "^2.0.1" +ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/ansi-wrap/download/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + any-promise@^1.0.0, any-promise@^1.3.0: version "1.3.0" resolved "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -553,16 +403,6 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -append-transform@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/append-transform/download/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" - dependencies: - default-require-extensions "^3.0.0" - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/archy/download/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - argparse@^1.0.7: version "1.0.10" resolved "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -629,6 +469,10 @@ 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" +async@1.x: + version "1.5.2" + resolved "https://registry.npm.taobao.org/async/download/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -783,15 +627,6 @@ cachedir@2.2.0: version "2.2.0" resolved "https://registry.npm.taobao.org/cachedir/download/cachedir-2.2.0.tgz#19afa4305e05d79e417566882e0c8f960f62ff0e" -caching-transform@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/caching-transform/download/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" - dependencies: - hasha "^5.0.0" - make-dir "^3.0.0" - package-hash "^4.0.0" - write-file-atomic "^3.0.0" - call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" @@ -808,6 +643,10 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" +callsite@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/callsite/download/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + callsites@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" @@ -828,7 +667,7 @@ camelcase@^4.1.0: version "4.1.0" resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.0.0: version "5.3.1" resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -899,10 +738,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - 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" @@ -931,14 +766,6 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - clone@^1.0.2: version "1.0.4" resolved "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -980,7 +807,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.17.0: +commander@^2.17.0, commander@~2.20.3: version "2.20.3" resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -1019,10 +846,6 @@ commitizen@^4.0.3: strip-bom "4.0.0" strip-json-comments "3.0.1" -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - compare-func@^1.3.1: version "1.3.2" resolved "https://registry.npm.taobao.org/compare-func/download/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" @@ -1080,12 +903,6 @@ conventional-commits-parser@^3.0.0: through2 "^3.0.0" trim-off-newlines "^1.0.0" -convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - dependencies: - safe-buffer "~5.1.1" - copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -1141,14 +958,6 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: - version "7.0.1" - resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.1.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - crypt@~0.0.1: version "0.0.2" resolved "https://registry.npm.taobao.org/crypt/download/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" @@ -1241,6 +1050,12 @@ debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" +decache@4.5.1: + version "4.5.1" + resolved "https://registry.npm.taobao.org/decache/download/decache-4.5.1.tgz#94a977a88a4188672c96550ec4889582ceecdf49" + dependencies: + callsite "^1.0.0" + decamelize-keys@^1.0.0: version "1.1.0" resolved "https://registry.npm.taobao.org/decamelize-keys/download/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" @@ -1316,12 +1131,6 @@ deepmerge@^4.0.0: version "4.2.2" resolved "https://registry.npm.taobao.org/deepmerge/download/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" -default-require-extensions@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-3.0.0.tgz#e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96" - dependencies: - strip-bom "^4.0.0" - default-user-agent@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/default-user-agent/download/default-user-agent-1.0.0.tgz#16c46efdcaba3edc45f24f2bd4868b01b7c2adc6" @@ -1507,10 +1316,6 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es6-error@^4.0.1: - version "4.1.1" - resolved "https://registry.npm.taobao.org/es6-error/download/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -1529,6 +1334,17 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 version "1.0.5" resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" +escodegen@1.8.x: + version "1.8.1" + resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.8.1.tgz?cache=0&sync_timestamp=1580955003609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + escodegen@1.x.x: version "1.14.1" resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" @@ -1619,6 +1435,10 @@ espree@^6.1.2: acorn-jsx "^5.2.0" eslint-visitor-keys "^1.1.0" +esprima@2.7.x, esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.npm.taobao.org/esprima/download/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + esprima@3.x.x: version "3.1.3" resolved "https://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -1639,6 +1459,10 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-1.9.3.tgz?cache=0&sync_timestamp=1584934994021&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" @@ -1805,14 +1629,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -find-cache-dir@^3.2.0: - version "3.3.1" - resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - find-config@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/find-config/download/find-config-1.0.0.tgz#eafa2b9bc07fa9c90e9a0c3ef9cecf1cc800f530" @@ -1842,7 +1658,7 @@ find-up@^2.0.0: dependencies: locate-path "^2.0.0" -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.0.0: version "4.1.0" resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" dependencies: @@ -1886,13 +1702,6 @@ for-in@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/foreground-child/download/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - 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" @@ -1927,10 +1736,6 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -fromentries@^1.2.0: - version "1.2.0" - resolved "https://registry.npm.taobao.org/fromentries/download/fromentries-1.2.0.tgz#e6aa06f240d6267f913cea422075ef88b63e7897" - 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" @@ -1974,10 +1779,6 @@ 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" -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - 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" @@ -2081,7 +1882,17 @@ glob@7.1.4, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.2, glob@^7.1.4, glob@^7.1.6: +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.npm.taobao.org/glob/download/glob-5.0.15.tgz?cache=0&sync_timestamp=1577792826619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.1.2, glob@^7.1.6: version "7.1.6" resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz?cache=0&sync_timestamp=1573078079496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" dependencies: @@ -2116,10 +1927,6 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - globals@^12.1.0: version "12.4.0" resolved "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" @@ -2154,7 +1961,7 @@ got@^6.3.0: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.10, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0: +graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.3" resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz?cache=0&sync_timestamp=1577794054220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" @@ -2166,6 +1973,16 @@ growl@1.10.5: version "1.10.5" resolved "https://registry.npm.taobao.org/growl/download/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" +handlebars@^4.0.1: + version "4.7.3" + resolved "https://registry.npm.taobao.org/handlebars/download/handlebars-4.7.3.tgz#8ece2797826886cf8082d1726ff21d2a022550ee" + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + 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" @@ -2177,6 +1994,10 @@ har-validator@~5.1.3: ajv "^6.5.5" har-schema "^2.0.0" +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + 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" @@ -2236,13 +2057,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hasha@^5.0.0: - version "5.2.0" - resolved "https://registry.npm.taobao.org/hasha/download/hasha-5.2.0.tgz#33094d1f69c40a4a6ac7be53d5fe3ff95a269e0c" - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" - he@1.2.0: version "1.2.0" resolved "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -2257,10 +2071,6 @@ 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&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" -html-escaper@^2.0.0: - version "2.0.1" - resolved "https://registry.npm.taobao.org/html-escaper/download/html-escaper-2.0.1.tgz?cache=0&sync_timestamp=1584794973194&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-escaper%2Fdownload%2Fhtml-escaper-2.0.1.tgz#beed86b5d2b921e92533aa11bce6d8e3b583dee7" - http-errors@1.7.3: version "1.7.3" resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" @@ -2368,10 +2178,6 @@ indent-string@^3.0.0: version "3.2.0" resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - inflight@^1.0.4: version "1.0.6" resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2611,10 +2417,6 @@ is-stream@^1.0.0, 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" -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - is-symbol@^1.0.2: version "1.0.3" resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296307739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" @@ -2627,7 +2429,7 @@ is-text-path@^1.0.1: dependencies: text-extensions "^1.0.0" -is-typedarray@^1.0.0, 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" @@ -2665,62 +2467,24 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1: - version "3.0.0" - resolved "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - -istanbul-lib-hook@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" - dependencies: - append-transform "^2.0.0" - -istanbul-lib-instrument@^4.0.0: - version "4.0.1" - resolved "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" - dependencies: - "@babel/core" "^7.7.5" - "@babel/parser" "^7.7.5" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-processinfo@^2.0.2: - version "2.0.2" - resolved "https://registry.npm.taobao.org/istanbul-lib-processinfo/download/istanbul-lib-processinfo-2.0.2.tgz#e1426514662244b2f25df728e8fd1ba35fe53b9c" - dependencies: - archy "^1.0.0" - cross-spawn "^7.0.0" - istanbul-lib-coverage "^3.0.0-alpha.1" - make-dir "^3.0.0" - p-map "^3.0.0" - rimraf "^3.0.0" - uuid "^3.3.3" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-3.0.0.tgz?cache=0&sync_timestamp=1577062542584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-report%2Fdownload%2Fistanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-3.0.0.tgz#d4d16d035db99581b6194e119bbf36c963c5eb70" - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" +istanbul@0.4.5, istanbul@^0.4.5: + version "0.4.5" + resolved "https://registry.npm.taobao.org/istanbul/download/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" isurl@^1.0.0-alpha5: version "1.0.0" @@ -2733,7 +2497,7 @@ 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" -js-yaml@3.13.1, js-yaml@^3.13.1: +js-yaml@3.13.1, js-yaml@3.x, 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" dependencies: @@ -2744,10 +2508,6 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -2768,12 +2528,6 @@ 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" -json5@^2.1.2: - version "2.1.2" - resolved "https://registry.npm.taobao.org/json5/download/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" - dependencies: - minimist "^1.2.5" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -2861,10 +2615,6 @@ 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" -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.npm.taobao.org/lodash.flattendeep/download/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - lodash.map@^4.5.1: version "4.6.0" resolved "https://registry.npm.taobao.org/lodash.map/download/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" @@ -2882,7 +2632,7 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash@4, lodash@4.17.15, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: +lodash@4, lodash@4.17.15, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15: version "4.17.15" resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" @@ -2935,12 +2685,6 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^3.0.0, make-dir@^3.0.2: - version "3.0.2" - resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.0.2.tgz?cache=0&sync_timestamp=1581539706132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - dependencies: - semver "^6.0.0" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -3033,7 +2777,7 @@ 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" -minimatch@3.0.4, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -3058,6 +2802,10 @@ minimist@^1.1.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -3071,6 +2819,12 @@ mkdirp@0.5.3: dependencies: minimist "^1.2.5" +mkdirp@0.5.x: + version "0.5.4" + resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + dependencies: + minimist "^1.2.5" + mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -3154,6 +2908,10 @@ 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" +neo-async@^2.6.0: + version "2.6.1" + resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + netmask@^1.0.6: version "1.0.6" resolved "https://registry.npm.taobao.org/netmask/download/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" @@ -3173,11 +2931,11 @@ node-environment-flags@1.0.6: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" -node-preload@^0.2.0: - version "0.2.1" - resolved "https://registry.npm.taobao.org/node-preload/download/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" +nopt@3.x: + version "3.0.6" + resolved "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: - process-on-spawn "^1.0.0" + abbrev "1" normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.5.0" @@ -3203,39 +2961,6 @@ 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" -nyc@15.0.0: - version "15.0.0" - resolved "https://registry.npm.taobao.org/nyc/download/nyc-15.0.0.tgz?cache=0&sync_timestamp=1577063597268&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnyc%2Fdownload%2Fnyc-15.0.0.tgz#eb32db2c0f29242c2414fe46357f230121cfc162" - dependencies: - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - caching-transform "^4.0.0" - convert-source-map "^1.7.0" - decamelize "^1.2.0" - find-cache-dir "^3.2.0" - find-up "^4.1.0" - foreground-child "^2.0.0" - glob "^7.1.6" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-hook "^3.0.0" - istanbul-lib-instrument "^4.0.0" - istanbul-lib-processinfo "^2.0.2" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.0" - js-yaml "^3.13.1" - make-dir "^3.0.0" - node-preload "^0.2.0" - p-map "^3.0.0" - process-on-spawn "^1.0.0" - resolve-from "^5.0.0" - rimraf "^3.0.0" - signal-exit "^3.0.2" - spawn-wrap "^2.0.0" - test-exclude "^6.0.0" - uuid "^3.3.3" - yargs "^15.0.2" - 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" @@ -3288,7 +3013,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@1.x, 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" dependencies: @@ -3310,6 +3035,13 @@ opencollective-postinstall@^2.0.2: version "2.0.2" resolved "https://registry.npm.taobao.org/opencollective-postinstall/download/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz?cache=0&sync_timestamp=1583321775305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptimist%2Fdownload%2Foptimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + optionator@^0.8.1, optionator@^0.8.3: version "0.8.3" resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -3389,12 +3121,6 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - dependencies: - aggregate-error "^3.0.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" @@ -3426,15 +3152,6 @@ pac-resolver@^3.0.0: netmask "^1.0.6" thunkify "^2.1.2" -package-hash@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/package-hash/download/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" - dependencies: - graceful-fs "^4.1.15" - hasha "^5.0.0" - lodash.flattendeep "^4.4.0" - release-zalgo "^1.0.0" - 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" @@ -3485,10 +3202,6 @@ 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" -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1574441376633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - 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" @@ -3564,7 +3277,7 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +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" dependencies: @@ -3576,6 +3289,15 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" +plugin-error@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/plugin-error/download/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" + dependencies: + ansi-colors "^1.0.1" + arr-diff "^4.0.0" + arr-union "^3.1.0" + extend-shallow "^3.0.2" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -3594,9 +3316,9 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@1.19.1: +prettier@^1.19.1: version "1.19.1" - resolved "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + resolved "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" probe-image-size@^4.0.0: version "4.1.1" @@ -3613,12 +3335,6 @@ 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" -process-on-spawn@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/process-on-spawn/download/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" - dependencies: - fromentries "^1.2.0" - progress@^2.0.0: version "2.0.3" resolved "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -3788,11 +3504,15 @@ regexpp@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/regexpp/download/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" -release-zalgo@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/release-zalgo/download/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" +remap-istanbul@^0.13.0: + version "0.13.0" + resolved "https://registry.npm.taobao.org/remap-istanbul/download/remap-istanbul-0.13.0.tgz#a529dfd080bb760f5274e3671c9c065f29923ed1" dependencies: - es6-error "^4.0.1" + istanbul "0.4.5" + minimatch "^3.0.4" + plugin-error "^1.0.1" + source-map "0.6.1" + through2 "3.0.0" repeat-element@^1.1.2: version "1.1.3" @@ -3878,7 +3598,11 @@ resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.8.1: +resolve@1.1.x: + version "1.1.7" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.8.1: version "1.15.1" resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" dependencies: @@ -3918,12 +3642,6 @@ rimraf@^2.5.2, rimraf@^2.6.1: 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" - dependencies: - glob "^7.1.3" - run-async@^2.2.0, 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=1582711719088&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-async%2Fdownload%2Frun-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" @@ -3968,11 +3686,11 @@ semver-regex@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/semver-regex/download/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" -"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.4.1, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.7.0: version "5.7.1" resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1581458146669&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" -semver@6.3.0, semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: +semver@6.3.0, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1581458146669&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -4003,20 +3721,10 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - dependencies: - shebang-regex "^3.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" -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - shelljs@0.7.6: version "0.7.6" resolved "https://registry.npm.taobao.org/shelljs/download/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" @@ -4104,24 +3812,19 @@ source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.6.1, source-map@~0.6.1: +source-map@0.6.1, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" -spawn-wrap@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/spawn-wrap/download/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" dependencies: - foreground-child "^2.0.0" - is-windows "^1.0.2" - make-dir "^3.0.0" - rimraf "^3.0.0" - signal-exit "^3.0.2" - which "^2.0.1" + amdefine ">=0.0.4" spdx-correct@^3.0.0: version "3.1.0" @@ -4217,7 +3920,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.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" dependencies: @@ -4273,7 +3976,7 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-bom@4.0.0, strip-bom@^4.0.0: +strip-bom@4.0.0: version "4.0.0" resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-4.0.0.tgz?cache=0&sync_timestamp=1578146771009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" @@ -4311,6 +4014,12 @@ supports-color@6.0.0: dependencies: has-flag "^3.0.0" +supports-color@^3.1.0: + version "3.2.3" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.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#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4350,14 +4059,6 @@ temp@^0.9.0: dependencies: rimraf "~2.6.2" -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.npm.taobao.org/test-exclude/download/test-exclude-6.0.0.tgz?cache=0&sync_timestamp=1576874719359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftest-exclude%2Fdownload%2Ftest-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.npm.taobao.org/text-extensions/download/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" @@ -4378,6 +4079,13 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" +through2@3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/through2/download/through2-3.0.0.tgz?cache=0&sync_timestamp=1577793957163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-3.0.0.tgz#468b461df9cd9fcc170f22ebf6852e467e578ff2" + dependencies: + readable-stream "2 || 3" + xtend "~4.0.1" + through2@^2.0.2: version "2.0.5" resolved "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz?cache=0&sync_timestamp=1577793957163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -4413,10 +4121,6 @@ to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.npm.taobao.org/to-buffer/download/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -4500,20 +4204,21 @@ type-fest@^0.11.0: version "0.11.0" resolved "https://registry.npm.taobao.org/type-fest/download/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" -type-fest@^0.8.0, type-fest@^0.8.1: +type-fest@^0.8.1: version "0.8.1" resolved "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" -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" - dependencies: - is-typedarray "^1.0.0" - typescript@^3.7.5: version "3.8.3" resolved "https://registry.npm.taobao.org/typescript/download/typescript-3.8.3.tgz?cache=0&sync_timestamp=1584602109080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftypescript%2Fdownload%2Ftypescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" +uglify-js@^3.1.4: + version "3.8.0" + resolved "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.8.0.tgz#f3541ae97b2f048d7e7e3aa4f39fd8a1f5d7a805" + dependencies: + commander "~2.20.3" + source-map "~0.6.1" + unbzip2-stream@^1.0.9: version "1.3.3" resolved "https://registry.npm.taobao.org/unbzip2-stream/download/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a" @@ -4625,7 +4330,7 @@ utility@^1.16.1: mz "^2.7.0" unescape "^1.0.1" -uuid@^3.3.2, uuid@^3.3.3: +uuid@^3.3.2: version "3.4.0" resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -4670,18 +4375,12 @@ 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" -which@1.3.1, which@^1.2.14, which@^1.2.9: +which@1.3.1, which@^1.1.1, which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" dependencies: isexe "^2.0.0" -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - dependencies: - isexe "^2.0.0" - wide-align@1.1.3: version "1.1.3" resolved "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -4698,6 +4397,14 @@ word-wrap@^1.0.3, 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" +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + 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" @@ -4706,27 +4413,10 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1573488719878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -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?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite-file-atomic%2Fdownload%2Fwrite-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - 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" @@ -4768,13 +4458,6 @@ yargs-parser@^10.0.0: dependencies: camelcase "^4.1.0" -yargs-parser@^18.1.1: - version "18.1.1" - resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.1.tgz#bf7407b915427fc760fcbbccc6c82b4f0ffcbd37" - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-unparser@1.6.0: version "1.6.0" resolved "https://registry.npm.taobao.org/yargs-unparser/download/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" @@ -4798,22 +4481,6 @@ yargs@13.3.2, yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^15.0.2: - version "15.3.1" - resolved "https://registry.npm.taobao.org/yargs/download/yargs-15.3.1.tgz?cache=0&sync_timestamp=1584344151789&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.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 "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.1" - yauzl@^2.4.2: version "2.10.0" resolved "https://registry.npm.taobao.org/yauzl/download/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"