commit bdaac9d33f811e263901c7d903164d0249e5c317 Author: 1549469775 <1549469775@qq.com> Date: Thu Nov 11 17:34:32 2021 +0800 初始化提交 diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f1b5c5b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +# http://editorconfig.org +root = true # 应在文件顶部指定的特殊属性,true表示停止搜索当前文件 + +[*] +charset = utf-8 # 统一字符格式 +indent_style = space # 缩进方式为空格 +indent_size = 2 # 缩进为两个空格 +end_of_line = lf # 换行符统一用lf +insert_final_newline = true # 保证文件结尾留一个空行 +trim_trailing_whitespace = true # 移除新一行前的空白字符 + +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..02960a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +.idea +.vscode diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..d03b260 --- /dev/null +++ b/README.MD @@ -0,0 +1 @@ +# @noderun/pp diff --git a/asda/dev b/asda/dev new file mode 100644 index 0000000..9001211 --- /dev/null +++ b/asda/dev @@ -0,0 +1 @@ +dev \ No newline at end of file diff --git a/asda/fuck b/asda/fuck new file mode 100644 index 0000000..56000ef --- /dev/null +++ b/asda/fuck @@ -0,0 +1 @@ +fuck \ No newline at end of file diff --git a/asda/master b/asda/master new file mode 100644 index 0000000..8b25206 --- /dev/null +++ b/asda/master @@ -0,0 +1 @@ +master \ No newline at end of file diff --git a/dist/pp.cjs.js b/dist/pp.cjs.js new file mode 100644 index 0000000..f2049b2 --- /dev/null +++ b/dist/pp.cjs.js @@ -0,0 +1,196 @@ +#!/usr/bin/env node +'use strict'; + +var commander = require('commander'); +var tslib = require('tslib'); +var fs = require('fs-extra'); +var chalk = require('chalk'); +var uuid = require('uuid'); +var path = require('path'); +var os = require('os'); +var download = require('download-git-repo'); +var ejs = require('ejs'); +var ini = require('ini'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); +var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk); +var uuid__default = /*#__PURE__*/_interopDefaultLegacy(uuid); +var path__default = /*#__PURE__*/_interopDefaultLegacy(path); +var os__default = /*#__PURE__*/_interopDefaultLegacy(os); +var download__default = /*#__PURE__*/_interopDefaultLegacy(download); +var ejs__default = /*#__PURE__*/_interopDefaultLegacy(ejs); +var ini__default = /*#__PURE__*/_interopDefaultLegacy(ini); + +var config = { + dir: path__default["default"].join(os__default["default"].homedir(), '.pp'), + configPath: path__default["default"].join(os__default["default"].homedir(), '.pp', '.pprc') +}; + +function walkDir(dir, cb) { + function _walk(_dir) { + if (_dir === void 0) { _dir = '.'; } + var statInfo = fs__default["default"].statSync(dir + path__default["default"].sep + _dir); + if (statInfo.isDirectory()) { + var paths = fs__default["default"].readdirSync(path__default["default"].resolve(dir + path__default["default"].sep + _dir)); + for (var i = 0; i < paths.length; i++) { + _walk(_dir + path__default["default"].sep + paths[i]); + } + } + else if (statInfo.isFile()) { + cb && cb(_dir); + } + return true; + } + return _walk(); +} +function isExist(file) { + var result = false; + try { + fs__default["default"].accessSync(file, fs__default["default"].constants.F_OK | fs__default["default"].constants.R_OK | fs__default["default"].constants.W_OK); + result = true; + } + catch (err) { + result = false; + } + return result; +} +function writefile(fromDir, toDir, opts, force) { + if (opts === void 0) { opts = {}; } + if (force === void 0) { force = false; } + if (!fromDir) { + console.log(chalk__default["default"].red("缺少模板目录")); + return; + } + if (!toDir) { + console.log(chalk__default["default"].red("缺少目标目录")); + return; + } + if (isExist(toDir) && !force) { + console.log(chalk__default["default"].red("安全起见,不覆写已存在的目录")); + return; + } + walkDir(fromDir, function (file) { + var fromRes = path__default["default"].resolve(fromDir, file); + var toRes = path__default["default"].resolve(toDir, file); + fs__default["default"].ensureFileSync(toRes); + var originRoot = fs__default["default"].readFileSync(fromRes, { + encoding: "utf8", + }); + var html = ejs__default["default"].render(originRoot, opts); + fs__default["default"].writeFileSync(toRes, html); + }); +} + +function readFile(path, encoding) { + if (encoding === void 0) { encoding = "utf-8"; } + return fs__default["default"].readFileSync(path, encoding); +} +function readIniFile(path, encoding) { + if (encoding === void 0) { encoding = "utf-8"; } + return ini__default["default"].parse(fs__default["default"].readFileSync(path, encoding)); +} +function writeIniFile(path, data) { + fs__default["default"].writeFileSync(path, ini__default["default"].stringify(data)); +} + +try { + fs__default["default"].ensureDirSync(config.dir); + fs__default["default"].ensureFileSync(config.configPath); +} +catch (e) { + throw e; +} +var Opts = readIniFile(config.configPath); +function onList(opt) { + if (!Opts.list || !Object.keys(Opts.list).length) { + console.log("暂无模板列表,请自行体添加"); + return; + } + Object.keys(Opts.list).forEach(function (key) { + var value = Opts.list[key]; + if (opt === null || opt === void 0 ? void 0 : opt.all) { + console.log(value.name + (value.desc ? "(" + value.desc + ")" : "") + (": " + value.url)); + } + else { + console.log(value.name + (value.desc ? "(" + value.desc + ")" : "")); + } + }); +} +function onClone(name, opts) { + if (!Opts.list || !Opts.list[name]) { + console.log("请先添加项目"); + return; + } + var data = Opts.list[name]; + var tempPath = path__default["default"].join(os__default["default"].tmpdir(), "pp-" + uuid__default["default"].v4()); + var to = opts.dir; + var git_url = "direct:" + data.url; + if (isExist(to)) { + console.log(chalk__default["default"].red("安全起见,不覆写已存在的目录,请先删除相同目录文件夹")); + return; + } + download__default["default"](git_url, tempPath, { clone: true }, function (err) { + if (err) + throw err; + writefile(tempPath, to, { name: "哈哈" }); + fs__default["default"].removeSync(tempPath); + console.log(chalk__default["default"].green("克隆成功")); + console.log("\ncd " + to + "\n"); + }); +} +function onRemove(name) { + var result = Object.assign({}, Opts); + if (result.list && result.list[name]) { + delete result.list[name]; + writeIniFile(config.configPath, result); + console.log(chalk__default["default"].green("删除成功")); + } + else { + console.error(chalk__default["default"].red("不存在该模板")); + } +} +function onAdd(url, opt) { + var result = Object.assign({}, Opts); + var http = /^(http|https)\:\/\//g; + var git = /(git|root)\@/g; + if (!git.test(url) && !http.test(url)) { + console.error(chalk__default["default"].red("请添加正确的Git仓库地址")); + return; + } + if (!result.list) + result.list = {}; + if (result.list[opt.name]) { + console.error(chalk__default["default"].red("名字重复,当前存在:")); + onList(); + return; + } + result.list[opt.name] = tslib.__assign(tslib.__assign({}, opt), { url: url }); + writeIniFile(config.configPath, result); + console.log(chalk__default["default"].green("添加成功")); +} +function onCheck() { + console.log(readFile(config.configPath)); +} + +var program = new commander.Command(); +program.version("0.0.1", "-v, --version").description("查看当前版本号"); +program.helpOption("-h --help", "显示帮助信息"); +program.showHelpAfterError("( pp -h 查看帮助信息)"); +program.command("list").option('-a --all').description("查看所有模板列表").action(onList); +program.command("check").description("查看配置文件").action(onCheck); +program + .command("add ") + .requiredOption("-n --name ", "模板名字") + .option("-d --desc ", "模板具体描述") + .option("-t --tag ", "模板标签") + .description("添加一个模板仓库") + .action(onAdd); +program + .command("rm ") + .description("删除一个模板仓库") + .action(onRemove); +program.command("clone ").requiredOption("-d --dir ", "目标路径").description("克隆模板仓库").action(onClone); +program.parse(process.argv); +//# sourceMappingURL=pp.cjs.js.map diff --git a/dist/pp.cjs.js.map b/dist/pp.cjs.js.map new file mode 100644 index 0000000..cbcdc86 --- /dev/null +++ b/dist/pp.cjs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pp.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/example/index.html b/example/index.html new file mode 100644 index 0000000..a88a63c --- /dev/null +++ b/example/index.html @@ -0,0 +1,14 @@ + + + + + + pp + + + + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2188629 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,920 @@ +{ + "name": "@noderun/pp", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@rollup/plugin-alias": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.1.tgz", + "integrity": "sha512-hNcQY4bpBUIvxekd26DBPgF7BT4mKVNDF5tBG4Zi+3IgwLxGYRY0itHs9D0oLVwXM5pvJDWJlBQro+au8WaUWw==", + "dev": true, + "requires": { + "slash": "^3.0.0" + } + }, + "@rollup/plugin-commonjs": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-15.0.0.tgz", + "integrity": "sha512-8uAdikHqVyrT32w1zB9VhW6uGwGjhKgnDNP4pQJsjdnyF4FgCj6/bmv24c7v2CuKhq32CcyCwRzMPEElaKkn0w==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "dependencies": { + "estree-walker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz", + "integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==", + "dev": true + } + } + }, + "@rollup/plugin-node-resolve": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.6.tgz", + "integrity": "sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "dependencies": { + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "@rollup/plugin-replace": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.3.3.tgz", + "integrity": "sha512-XPmVXZ7IlaoWaJLkSCDaa0Y6uVo5XQYHhiMFzOd5qSv5rE+t/UJToPIOE56flKIxBFQI27ONsxb7dqHnwSsjKQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "magic-string": "^0.25.5" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "@types/detect-indent": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/detect-indent/-/detect-indent-0.1.30.tgz", + "integrity": "sha1-3GgrtBK05lugmOcO2tc7SDP7kQ0=", + "dev": true + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "5.0.30", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.30.tgz", + "integrity": "sha1-ECZAnFYlqGiQdGAoCNCCsoZ7ilE=", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/ini": { + "version": "1.3.31", + "resolved": "https://registry.npmjs.org/@types/ini/-/ini-1.3.31.tgz", + "integrity": "sha512-8ecxxaG4AlVEM1k9+BsziMw8UsX0qy3jYI1ad/71RrDZ+rdL6aZB0wLfAuflQiDhkD5o4yJ0uPK3OSUic3fG0w==" + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/mkdirp": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.3.29.tgz", + "integrity": "sha1-fyrX7FX5FEgvybHsS7GuYCjUYGY=", + "dev": true + }, + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-15.14.9.tgz?cache=0&sync_timestamp=1636407492316&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-15.14.9.tgz", + "integrity": "sha1-vEPJkMPJvnKBhou8e4/dbitXrfo=", + "dev": true + }, + "@types/rc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/rc/-/rc-1.2.0.tgz", + "integrity": "sha512-eEQ6Hq0K0VShe00iDzG1DKxA5liTsk7jgcR5eDZ5d5cnivLjPqqcDgqurS5NlQJNfgTNg51dp7zFGWHomr5NJQ==", + "dev": true + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/commander/download/commander-8.3.0.tgz?cache=0&sync_timestamp=1634886357672&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcommander%2Fdownload%2Fcommander-8.3.0.tgz", + "integrity": "sha1-SDfqGy2me5xhamevuw+v7lZ7ymY=" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.nlark.com/cross-env/download/cross-env-7.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcross-env%2Fdownload%2Fcross-env-7.0.3.tgz", + "integrity": "sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "detect-indent": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-0.2.0.tgz", + "integrity": "sha1-BCkUSYl5rC2fPHPk/z5od9O8krY=", + "dev": true, + "requires": { + "get-stdin": "^0.1.0", + "minimist": "^0.1.0" + } + }, + "dts-bundle": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/dts-bundle/-/dts-bundle-0.7.3.tgz", + "integrity": "sha1-Nyt7tpyCB4LmOC9ABzmmnc7T1Zo=", + "dev": true, + "requires": { + "@types/detect-indent": "0.1.30", + "@types/glob": "5.0.30", + "@types/mkdirp": "0.3.29", + "@types/node": "8.0.0", + "commander": "^2.9.0", + "detect-indent": "^0.2.0", + "glob": "^6.0.4", + "mkdirp": "^0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-8.0.0.tgz?cache=0&sync_timestamp=1636407492316&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-8.0.0.tgz", + "integrity": "sha1-rKqJJHr93Hln6ZAv0Rdh2t6hpVU=", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1634886357672&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "dev": true + }, + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-stdin": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz", + "integrity": "sha1-WZivJKr8gC0VyCxoVlfuuLENSpE=", + "dev": true + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "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" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + } + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "rollup": { + "version": "2.26.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.3.tgz", + "integrity": "sha512-Mlt39/kL2rA9egcbQbaZV1SNVplGqYYhDDMcGgHPPE0tvM3R4GrB+IEdYy2QtTrdzMQx57ZcqDFf/KWWm8F+uw==", + "dev": true, + "requires": { + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } + } + }, + "rollup-plugin-sourcemaps": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.2.tgz", + "integrity": "sha512-9AwTKg3yRykwzemfLt71ySe0LvrAci+bpsOL1LaTYFk5BX4HF6X7DQfpHa74ANfSja3hyjiQkXCR8goSOnW//Q==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.9", + "source-map-resolve": "^0.6.0" + } + }, + "rollup-plugin-typescript2": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.2.tgz", + "integrity": "sha512-zarMH2F8oT/NO6p20gl/jkts+WxyzOlhOIUwUU/EDx5e6ewdDPS/flwLj5XFuijUCr64bZwqKuRVwCPdXXYefQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "8.1.0", + "resolve": "1.17.0", + "tslib": "2.0.1" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true + }, + "typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2314c7e --- /dev/null +++ b/package.json @@ -0,0 +1,55 @@ +{ + "name": "@noderun/pp", + "version": "0.0.1", + "description": "命令行管理模板项目", + "main": "dist/pp.umd.js", + "module": "dist/pp.esm.js", + "typings": "dist/index.d.ts", + "buildOptions": { + "filename": "pp", + "var": "pp", + "formats": [ + "cjs" + ] + }, + "bin": { + "pp": "./dist/pp.cjs.js" + }, + "scripts": { + "test": "node src/main.js", + "build": "cross-env NODE_ENV=production node scripts/build.js", + "dev": "cross-env NODE_ENV=development node scripts/dev.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@rollup/plugin-alias": "^3.1.1", + "@rollup/plugin-commonjs": "^15.0.0", + "@rollup/plugin-node-resolve": "^13.0.6", + "@rollup/plugin-replace": "^2.3.3", + "@types/ejs": "^3.1.0", + "@types/fs-extra": "^9.0.13", + "@types/ini": "^1.3.31", + "@types/node": "^15.12.5", + "chalk": "^4.1.2", + "cross-env": "^7.0.3", + "dts-bundle": "^0.7.3", + "execa": "^4.0.3", + "fs-extra": "^9.0.1", + "lodash": "^4.17.20", + "rollup": "^2.26.3", + "rollup-plugin-sourcemaps": "^0.6.2", + "rollup-plugin-typescript2": "^0.27.2", + "tslib": "^2.0.1", + "typescript": "^4.4.4" + }, + "dependencies": { + "@types/uuid": "^8.3.1", + "commander": "^8.3.0", + "download-git-repo": "^3.0.2", + "ejs": "^3.1.6", + "ini": "^2.0.0", + "uuid": "^8.3.2" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..9161156 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1749 @@ +lockfileVersion: 5.3 + +specifiers: + '@rollup/plugin-alias': ^3.1.1 + '@rollup/plugin-commonjs': ^15.0.0 + '@rollup/plugin-node-resolve': ^13.0.6 + '@rollup/plugin-replace': ^2.3.3 + '@types/ejs': ^3.1.0 + '@types/fs-extra': ^9.0.13 + '@types/ini': ^1.3.31 + '@types/node': ^15.12.5 + '@types/uuid': ^8.3.1 + chalk: ^4.1.2 + commander: ^8.3.0 + cross-env: ^7.0.3 + download-git-repo: ^3.0.2 + dts-bundle: ^0.7.3 + ejs: ^3.1.6 + execa: ^4.0.3 + fs-extra: ^9.0.1 + ini: ^2.0.0 + lodash: ^4.17.20 + rollup: ^2.26.3 + rollup-plugin-sourcemaps: ^0.6.2 + rollup-plugin-typescript2: ^0.27.2 + tslib: ^2.0.1 + typescript: ^4.4.4 + uuid: ^8.3.2 + +dependencies: + '@types/uuid': 8.3.1 + commander: registry.npmmirror.com/commander/8.3.0 + download-git-repo: 3.0.2 + ejs: 3.1.6 + ini: 2.0.0 + uuid: 8.3.2 + +devDependencies: + '@rollup/plugin-alias': registry.npmmirror.com/@rollup/plugin-alias/3.1.8_rollup@2.59.0 + '@rollup/plugin-commonjs': registry.npmmirror.com/@rollup/plugin-commonjs/15.1.0_rollup@2.59.0 + '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve/13.0.6_rollup@2.59.0 + '@rollup/plugin-replace': registry.nlark.com/@rollup/plugin-replace/2.4.2_rollup@2.59.0 + '@types/ejs': 3.1.0 + '@types/fs-extra': registry.npmmirror.com/@types/fs-extra/9.0.13 + '@types/ini': 1.3.31 + '@types/node': registry.npmmirror.com/@types/node/15.14.9 + chalk: registry.nlark.com/chalk/4.1.2 + cross-env: registry.nlark.com/cross-env/7.0.3 + dts-bundle: registry.npmmirror.com/dts-bundle/0.7.3 + execa: registry.nlark.com/execa/4.1.0 + fs-extra: registry.nlark.com/fs-extra/9.1.0 + lodash: registry.nlark.com/lodash/4.17.21 + rollup: registry.npmmirror.com/rollup/2.59.0 + rollup-plugin-sourcemaps: registry.npmmirror.com/rollup-plugin-sourcemaps/0.6.3_0f119b75fee2067b54923714521665fe + rollup-plugin-typescript2: registry.nlark.com/rollup-plugin-typescript2/0.27.3_rollup@2.59.0+typescript@4.4.4 + tslib: registry.nlark.com/tslib/2.3.1 + typescript: registry.npmmirror.com/typescript/4.4.4 + +packages: + + /@sindresorhus/is/0.7.0: + resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==} + engines: {node: '>=4'} + dev: false + + /@types/ejs/3.1.0: + resolution: {integrity: sha512-DCg+Ka+uDQ31lJ/UtEXVlaeV3d6t81gifaVWKJy4MYVVgvJttyX/viREy+If7fz+tK/gVxTGMtyrFPnm4gjrVA==} + dev: true + + /@types/ini/1.3.31: + resolution: {integrity: sha512-8ecxxaG4AlVEM1k9+BsziMw8UsX0qy3jYI1ad/71RrDZ+rdL6aZB0wLfAuflQiDhkD5o4yJ0uPK3OSUic3fG0w==} + dev: true + + /@types/uuid/8.3.1: + resolution: {integrity: sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg==} + dev: false + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: false + + /archive-type/4.0.0: + resolution: {integrity: sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=} + engines: {node: '>=4'} + dependencies: + file-type: 4.4.0 + dev: false + + /async/0.9.2: + resolution: {integrity: sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=} + dev: false + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false + + /bl/1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} + dependencies: + readable-stream: 2.3.7 + safe-buffer: 5.2.1 + dev: false + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /buffer-alloc-unsafe/1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + dev: false + + /buffer-alloc/1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + dev: false + + /buffer-crc32/0.2.13: + resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} + dev: false + + /buffer-fill/1.0.0: + resolution: {integrity: sha1-+PeLdniYiO858gXNY39o5wISKyw=} + dev: false + + /buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /cacheable-request/2.1.4: + resolution: {integrity: sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=} + dependencies: + clone-response: 1.0.2 + get-stream: 3.0.0 + http-cache-semantics: 3.8.1 + keyv: 3.0.0 + lowercase-keys: 1.0.0 + normalize-url: 2.0.1 + responselike: 1.0.2 + dev: false + + /caw/2.0.1: + resolution: {integrity: sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==} + engines: {node: '>=4'} + dependencies: + get-proxy: 2.1.0 + isurl: 1.0.0 + tunnel-agent: 0.6.0 + url-to-options: 1.0.1 + dev: false + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: false + + /clone-response/1.0.2: + resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} + dependencies: + mimic-response: 1.0.1 + dev: false + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: false + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + dev: false + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: false + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + + /config-chain/1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + dev: false + + /content-disposition/0.5.3: + resolution: {integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.1.2 + dev: false + + /core-util-is/1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: false + + /decode-uri-component/0.2.0: + resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=} + engines: {node: '>=0.10'} + dev: false + + /decompress-response/3.3.0: + resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=} + engines: {node: '>=4'} + dependencies: + mimic-response: 1.0.1 + dev: false + + /decompress-tar/4.1.1: + resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} + engines: {node: '>=4'} + dependencies: + file-type: 5.2.0 + is-stream: 1.1.0 + tar-stream: 1.6.2 + dev: false + + /decompress-tarbz2/4.1.1: + resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + file-type: 6.2.0 + is-stream: 1.1.0 + seek-bzip: 1.0.6 + unbzip2-stream: 1.4.3 + dev: false + + /decompress-targz/4.1.1: + resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + file-type: 5.2.0 + is-stream: 1.1.0 + dev: false + + /decompress-unzip/4.0.1: + resolution: {integrity: sha1-3qrM39FK6vhVePczroIQ+bSEj2k=} + engines: {node: '>=4'} + dependencies: + file-type: 3.9.0 + get-stream: 2.3.1 + pify: 2.3.0 + yauzl: 2.10.0 + dev: false + + /decompress/4.2.1: + resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + decompress-tarbz2: 4.1.1 + decompress-targz: 4.1.1 + decompress-unzip: 4.0.1 + graceful-fs: 4.2.8 + make-dir: 1.3.0 + pify: 2.3.0 + strip-dirs: 2.1.0 + dev: false + + /download-git-repo/3.0.2: + resolution: {integrity: sha512-N8hWXD4hXqmEcNoR8TBYFntaOcYvEQ7Bz90mgm3bZRTuteGQqwT32VDMnTyD0KTEvb8BWrMc1tVmzuV9u/WrAg==} + dependencies: + download: 7.1.0 + git-clone: 0.1.0 + rimraf: 3.0.2 + dev: false + + /download/7.1.0: + resolution: {integrity: sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==} + engines: {node: '>=6'} + dependencies: + archive-type: 4.0.0 + caw: 2.0.1 + content-disposition: 0.5.3 + decompress: 4.2.1 + ext-name: 5.0.0 + file-type: 8.1.0 + filenamify: 2.1.0 + get-stream: 3.0.0 + got: 8.3.2 + make-dir: 1.3.0 + p-event: 2.3.1 + pify: 3.0.0 + dev: false + + /duplexer3/0.1.4: + resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} + dev: false + + /ejs/3.1.6: + resolution: {integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.2 + dev: false + + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: false + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + dev: false + + /ext-list/2.2.2: + resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} + engines: {node: '>=0.10.0'} + dependencies: + mime-db: 1.51.0 + dev: false + + /ext-name/5.0.0: + resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==} + engines: {node: '>=4'} + dependencies: + ext-list: 2.2.2 + sort-keys-length: 1.0.1 + dev: false + + /fd-slicer/1.1.0: + resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=} + dependencies: + pend: 1.2.0 + dev: false + + /file-type/3.9.0: + resolution: {integrity: sha1-JXoHg4TR24CHvESdEH1SpSZyuek=} + engines: {node: '>=0.10.0'} + dev: false + + /file-type/4.4.0: + resolution: {integrity: sha1-G2AOX8ofvcboDApwxxyNul95BsU=} + engines: {node: '>=4'} + dev: false + + /file-type/5.2.0: + resolution: {integrity: sha1-LdvqfHP/42No365J3DOMBYwritY=} + engines: {node: '>=4'} + dev: false + + /file-type/6.2.0: + resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} + engines: {node: '>=4'} + dev: false + + /file-type/8.1.0: + resolution: {integrity: sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==} + engines: {node: '>=6'} + dev: false + + /filelist/1.0.2: + resolution: {integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==} + dependencies: + minimatch: 3.0.4 + dev: false + + /filename-reserved-regex/2.0.0: + resolution: {integrity: sha1-q/c9+rc10EVECr/qLZHzieu/oik=} + engines: {node: '>=4'} + dev: false + + /filenamify/2.1.0: + resolution: {integrity: sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==} + engines: {node: '>=4'} + dependencies: + filename-reserved-regex: 2.0.0 + strip-outer: 1.0.1 + trim-repeated: 1.0.0 + dev: false + + /from2/2.3.0: + resolution: {integrity: sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.7 + dev: false + + /fs-constants/1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: false + + /fs.realpath/1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + dev: false + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /get-proxy/2.1.0: + resolution: {integrity: sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==} + engines: {node: '>=4'} + dependencies: + npm-conf: 1.1.3 + dev: false + + /get-stream/2.3.1: + resolution: {integrity: sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + pinkie-promise: 2.0.1 + dev: false + + /get-stream/3.0.0: + resolution: {integrity: sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=} + engines: {node: '>=4'} + dev: false + + /git-clone/0.1.0: + resolution: {integrity: sha1-DXYWN3gJOu9/HDAjjyqe8/B6Lrk=} + dev: false + + /glob/7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /got/8.3.2: + resolution: {integrity: sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==} + engines: {node: '>=4'} + dependencies: + '@sindresorhus/is': 0.7.0 + cacheable-request: 2.1.4 + decompress-response: 3.3.0 + duplexer3: 0.1.4 + get-stream: 3.0.0 + into-stream: 3.1.0 + is-retry-allowed: 1.2.0 + isurl: 1.0.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 0.4.1 + p-timeout: 2.0.1 + pify: 3.0.0 + safe-buffer: 5.2.1 + timed-out: 4.0.1 + url-parse-lax: 3.0.0 + url-to-options: 1.0.1 + dev: false + + /graceful-fs/4.2.8: + resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} + + /has-flag/3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + dev: false + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-symbol-support-x/1.4.2: + resolution: {integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==} + dev: false + + /has-to-string-tag-x/1.4.1: + resolution: {integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==} + dependencies: + has-symbol-support-x: 1.4.2 + dev: false + + /http-cache-semantics/3.8.1: + resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==} + dev: false + + /ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: false + + /inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: false + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: false + + /ini/2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + dev: false + + /into-stream/3.1.0: + resolution: {integrity: sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=} + engines: {node: '>=4'} + dependencies: + from2: 2.3.0 + p-is-promise: 1.1.0 + dev: false + + /is-natural-number/4.0.1: + resolution: {integrity: sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=} + dev: false + + /is-object/1.0.2: + resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} + dev: false + + /is-plain-obj/1.1.0: + resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=} + engines: {node: '>=0.10.0'} + dev: false + + /is-retry-allowed/1.2.0: + resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} + engines: {node: '>=0.10.0'} + dev: false + + /is-stream/1.1.0: + resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=} + engines: {node: '>=0.10.0'} + dev: false + + /isarray/1.0.0: + resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} + dev: false + + /isurl/1.0.0: + resolution: {integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==} + engines: {node: '>= 4'} + dependencies: + has-to-string-tag-x: 1.4.1 + is-object: 1.0.2 + dev: false + + /jake/10.8.2: + resolution: {integrity: sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==} + hasBin: true + dependencies: + async: 0.9.2 + chalk: 2.4.2 + filelist: 1.0.2 + minimatch: 3.0.4 + dev: false + + /json-buffer/3.0.0: + resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} + dev: false + + /keyv/3.0.0: + resolution: {integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==} + dependencies: + json-buffer: 3.0.0 + dev: false + + /lowercase-keys/1.0.0: + resolution: {integrity: sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=} + engines: {node: '>=0.10.0'} + dev: false + + /lowercase-keys/1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + dev: false + + /make-dir/1.3.0: + resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: false + + /mime-db/1.51.0: + resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} + engines: {node: '>= 0.6'} + dev: false + + /mimic-response/1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: false + + /minimatch/3.0.4: + resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + dependencies: + brace-expansion: 1.1.11 + + /normalize-url/2.0.1: + resolution: {integrity: sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + query-string: 5.1.1 + sort-keys: 2.0.0 + dev: false + + /npm-conf/1.1.3: + resolution: {integrity: sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==} + engines: {node: '>=4'} + dependencies: + config-chain: 1.1.13 + pify: 3.0.0 + dev: false + + /object-assign/4.1.1: + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} + engines: {node: '>=0.10.0'} + dev: false + + /once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + dependencies: + wrappy: 1.0.2 + + /p-cancelable/0.4.1: + resolution: {integrity: sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==} + engines: {node: '>=4'} + dev: false + + /p-event/2.3.1: + resolution: {integrity: sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==} + engines: {node: '>=6'} + dependencies: + p-timeout: 2.0.1 + dev: false + + /p-finally/1.0.0: + resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} + engines: {node: '>=4'} + dev: false + + /p-is-promise/1.1.0: + resolution: {integrity: sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=} + engines: {node: '>=4'} + dev: false + + /p-timeout/2.0.1: + resolution: {integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==} + engines: {node: '>=4'} + dependencies: + p-finally: 1.0.0 + dev: false + + /path-is-absolute/1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + dev: false + + /pend/1.2.0: + resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} + dev: false + + /pify/2.3.0: + resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} + engines: {node: '>=0.10.0'} + dev: false + + /pify/3.0.0: + resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} + engines: {node: '>=4'} + dev: false + + /pinkie-promise/2.0.1: + resolution: {integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o=} + engines: {node: '>=0.10.0'} + dependencies: + pinkie: 2.0.4 + dev: false + + /pinkie/2.0.4: + resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=} + engines: {node: '>=0.10.0'} + dev: false + + /prepend-http/2.0.0: + resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} + engines: {node: '>=4'} + dev: false + + /process-nextick-args/2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: false + + /proto-list/1.2.4: + resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} + dev: false + + /query-string/5.1.1: + resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} + engines: {node: '>=0.10.0'} + dependencies: + decode-uri-component: 0.2.0 + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: false + + /readable-stream/2.3.7: + resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: false + + /responselike/1.0.2: + resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} + dependencies: + lowercase-keys: 1.0.1 + dev: false + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.0 + dev: false + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: false + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: false + + /seek-bzip/1.0.6: + resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} + hasBin: true + dependencies: + commander: 2.20.3 + dev: false + + /sort-keys-length/1.0.1: + resolution: {integrity: sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=} + engines: {node: '>=0.10.0'} + dependencies: + sort-keys: 1.1.2 + dev: false + + /sort-keys/1.1.2: + resolution: {integrity: sha1-RBttTTRnmPG05J6JIK37oOVD+a0=} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-obj: 1.1.0 + dev: false + + /sort-keys/2.0.0: + resolution: {integrity: sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: false + + /strict-uri-encode/1.1.0: + resolution: {integrity: sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=} + engines: {node: '>=0.10.0'} + dev: false + + /string_decoder/1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: false + + /strip-dirs/2.1.0: + resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} + dependencies: + is-natural-number: 4.0.1 + dev: false + + /strip-outer/1.0.1: + resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + dev: false + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: false + + /tar-stream/1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} + engines: {node: '>= 0.8.0'} + dependencies: + bl: 1.2.3 + buffer-alloc: 1.2.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + readable-stream: 2.3.7 + to-buffer: 1.1.1 + xtend: 4.0.2 + dev: false + + /through/2.3.8: + resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} + dev: false + + /timed-out/4.0.1: + resolution: {integrity: sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=} + engines: {node: '>=0.10.0'} + dev: false + + /to-buffer/1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} + dev: false + + /trim-repeated/1.0.0: + resolution: {integrity: sha1-42RqLqTokTEr9+rObPsFOAvAHCE=} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + dev: false + + /tunnel-agent/0.6.0: + resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /unbzip2-stream/1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + dependencies: + buffer: 5.7.1 + through: 2.3.8 + dev: false + + /url-parse-lax/3.0.0: + resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + dev: false + + /url-to-options/1.0.1: + resolution: {integrity: sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=} + engines: {node: '>= 4'} + dev: false + + /util-deprecate/1.0.2: + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + dev: false + + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + + /wrappy/1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + + /xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: false + + /yauzl/2.10.0: + resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + dev: false + + registry.nlark.com/@rollup/plugin-replace/2.4.2_rollup@2.59.0: + resolution: {integrity: sha1-otU5MU+8d8JEhY+qUjASglBoUQo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@rollup/plugin-replace/download/@rollup/plugin-replace-2.4.2.tgz} + id: registry.nlark.com/@rollup/plugin-replace/2.4.2 + name: '@rollup/plugin-replace' + version: 2.4.2 + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/3.1.0_rollup@2.59.0 + magic-string: registry.nlark.com/magic-string/0.25.7 + rollup: registry.npmmirror.com/rollup/2.59.0 + dev: true + + registry.nlark.com/@rollup/pluginutils/3.1.0_rollup@2.59.0: + resolution: {integrity: sha1-cGtFJO5tyLEDs8mVUz5a1oDAK5s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@rollup/pluginutils/download/@rollup/pluginutils-3.1.0.tgz} + id: registry.nlark.com/@rollup/pluginutils/3.1.0 + name: '@rollup/pluginutils' + version: 3.1.0 + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': registry.nlark.com/@types/estree/0.0.39 + estree-walker: registry.nlark.com/estree-walker/1.0.1 + picomatch: registry.nlark.com/picomatch/2.3.0 + rollup: registry.npmmirror.com/rollup/2.59.0 + dev: true + + registry.nlark.com/@types/estree/0.0.39: + resolution: {integrity: sha1-4Xfmme4bjCLSMXTKqnQiZEOJUJ8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/estree/download/@types/estree-0.0.39.tgz} + name: '@types/estree' + version: 0.0.39 + dev: true + + registry.nlark.com/@types/estree/0.0.50: + resolution: {integrity: sha1-Hgyqk2TT/M0pMcPtlv2+ql1MyoM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/estree/download/@types/estree-0.0.50.tgz} + name: '@types/estree' + version: 0.0.50 + dev: true + + registry.nlark.com/@types/minimatch/3.0.5: + resolution: {integrity: sha1-EAHMXmo3BLg8I2An538vWOoBD0A=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/minimatch/download/@types/minimatch-3.0.5.tgz} + name: '@types/minimatch' + version: 3.0.5 + dev: true + + registry.nlark.com/@types/resolve/1.17.1: + resolution: {integrity: sha1-Ov1q2JZ8d+Q3bFmKgt3Vj0bsRdY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/resolve/download/@types/resolve-1.17.1.tgz} + name: '@types/resolve' + version: 1.17.1 + dependencies: + '@types/node': registry.npmmirror.com/@types/node/15.14.9 + dev: true + + registry.nlark.com/ansi-styles/4.3.0: + resolution: {integrity: sha1-7dgDYornHATIWuegkG7a00tkiTc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + registry.nlark.com/at-least-node/1.0.0: + resolution: {integrity: sha1-YCzUtG6EStTv/JKoARo8RuAjjcI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/at-least-node/download/at-least-node-1.0.0.tgz} + name: at-least-node + version: 1.0.0 + engines: {node: '>= 4.0.0'} + dev: true + + registry.nlark.com/atob/2.1.2: + resolution: {integrity: sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/atob/download/atob-2.1.2.tgz} + name: atob + version: 2.1.2 + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + registry.nlark.com/builtin-modules/3.2.0: + resolution: {integrity: sha1-RdXbmefuXmvE82LgCL+RerUEmIc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/builtin-modules/download/builtin-modules-3.2.0.tgz} + name: builtin-modules + version: 3.2.0 + engines: {node: '>=6'} + dev: true + + registry.nlark.com/chalk/4.1.2: + resolution: {integrity: sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1631501913020&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.nlark.com/ansi-styles/4.3.0 + supports-color: registry.nlark.com/supports-color/7.2.0 + dev: true + + registry.nlark.com/commondir/1.0.1: + resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/commondir/download/commondir-1.0.1.tgz} + name: commondir + version: 1.0.1 + dev: true + + registry.nlark.com/cross-env/7.0.3: + resolution: {integrity: sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cross-env/download/cross-env-7.0.3.tgz} + name: cross-env + version: 7.0.3 + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: registry.nlark.com/cross-spawn/7.0.3 + dev: true + + registry.nlark.com/cross-spawn/7.0.3: + resolution: {integrity: sha1-9zqFudXUHQRVUcF34ogtSshXKKY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz} + name: cross-spawn + version: 7.0.3 + engines: {node: '>= 8'} + dependencies: + path-key: registry.nlark.com/path-key/3.1.1 + shebang-command: registry.nlark.com/shebang-command/2.0.0 + which: registry.nlark.com/which/2.0.2 + dev: true + + registry.nlark.com/decode-uri-component/0.2.0: + resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/decode-uri-component/download/decode-uri-component-0.2.0.tgz} + name: decode-uri-component + version: 0.2.0 + engines: {node: '>=0.10'} + dev: true + + registry.nlark.com/deepmerge/4.2.2: + resolution: {integrity: sha1-RNLqNnm49NT/ujPwPYZfwee/SVU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/deepmerge/download/deepmerge-4.2.2.tgz} + name: deepmerge + version: 4.2.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.nlark.com/detect-indent/0.2.0: + resolution: {integrity: sha1-BCkUSYl5rC2fPHPk/z5od9O8krY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/detect-indent/download/detect-indent-0.2.0.tgz} + name: detect-indent + version: 0.2.0 + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + get-stdin: registry.nlark.com/get-stdin/0.1.0 + minimist: registry.nlark.com/minimist/0.1.0 + dev: true + + registry.nlark.com/end-of-stream/1.4.4: + resolution: {integrity: sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/end-of-stream/download/end-of-stream-1.4.4.tgz} + name: end-of-stream + version: 1.4.4 + dependencies: + once: 1.4.0 + dev: true + + registry.nlark.com/estree-walker/1.0.1: + resolution: {integrity: sha1-MbxdYSyWtwQQa0d+bdXYqhOMtwA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/estree-walker/download/estree-walker-1.0.1.tgz} + name: estree-walker + version: 1.0.1 + dev: true + + registry.nlark.com/estree-walker/2.0.2: + resolution: {integrity: sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/estree-walker/download/estree-walker-2.0.2.tgz} + name: estree-walker + version: 2.0.2 + dev: true + + registry.nlark.com/execa/4.1.0: + resolution: {integrity: sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/execa/download/execa-4.1.0.tgz} + name: execa + version: 4.1.0 + engines: {node: '>=10'} + dependencies: + cross-spawn: registry.nlark.com/cross-spawn/7.0.3 + get-stream: registry.nlark.com/get-stream/5.2.0 + human-signals: registry.nlark.com/human-signals/1.1.1 + is-stream: registry.nlark.com/is-stream/2.0.1 + merge-stream: registry.nlark.com/merge-stream/2.0.0 + npm-run-path: registry.npmmirror.com/npm-run-path/4.0.1 + onetime: registry.nlark.com/onetime/5.1.2 + signal-exit: registry.npmmirror.com/signal-exit/3.0.5 + strip-final-newline: registry.nlark.com/strip-final-newline/2.0.0 + dev: true + + registry.nlark.com/find-cache-dir/3.3.2: + resolution: {integrity: sha1-swxbbv8HMHMa6pu9nb7L2AJW1ks=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/find-cache-dir/download/find-cache-dir-3.3.2.tgz} + name: find-cache-dir + version: 3.3.2 + engines: {node: '>=8'} + dependencies: + commondir: registry.nlark.com/commondir/1.0.1 + make-dir: registry.nlark.com/make-dir/3.1.0 + pkg-dir: registry.npmmirror.com/pkg-dir/4.2.0 + dev: true + + registry.nlark.com/fs-extra/8.1.0: + resolution: {integrity: sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs-extra/download/fs-extra-8.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz} + name: fs-extra + version: 8.1.0 + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 + jsonfile: registry.nlark.com/jsonfile/4.0.0 + universalify: registry.nlark.com/universalify/0.1.2 + dev: true + + registry.nlark.com/fs-extra/9.1.0: + resolution: {integrity: sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs-extra/download/fs-extra-9.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffs-extra%2Fdownload%2Ffs-extra-9.1.0.tgz} + name: fs-extra + version: 9.1.0 + engines: {node: '>=10'} + dependencies: + at-least-node: registry.nlark.com/at-least-node/1.0.0 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 + jsonfile: registry.nlark.com/jsonfile/6.1.0 + universalify: registry.nlark.com/universalify/2.0.0 + dev: true + + registry.nlark.com/fs.realpath/1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs.realpath/download/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: true + + registry.nlark.com/function-bind/1.1.1: + resolution: {integrity: sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/function-bind/download/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + dev: true + + registry.nlark.com/get-stdin/0.1.0: + resolution: {integrity: sha1-WZivJKr8gC0VyCxoVlfuuLENSpE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/get-stdin/download/get-stdin-0.1.0.tgz} + name: get-stdin + version: 0.1.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.nlark.com/get-stream/5.2.0: + resolution: {integrity: sha1-SWaheV7lrOZecGxLe+txJX1uItM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/get-stream/download/get-stream-5.2.0.tgz} + name: get-stream + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + pump: registry.nlark.com/pump/3.0.0 + dev: true + + registry.nlark.com/has/1.0.3: + resolution: {integrity: sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has/download/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.nlark.com/function-bind/1.1.1 + dev: true + + registry.nlark.com/human-signals/1.1.1: + resolution: {integrity: sha1-xbHNFPUK6uCatsWf5jujOV/k36M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/human-signals/download/human-signals-1.1.1.tgz} + name: human-signals + version: 1.1.1 + engines: {node: '>=8.12.0'} + dev: true + + registry.nlark.com/inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/inflight/download/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + registry.nlark.com/inherits/2.0.4: + resolution: {integrity: sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + dev: true + + registry.nlark.com/is-module/1.0.0: + resolution: {integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-module/download/is-module-1.0.0.tgz} + name: is-module + version: 1.0.0 + dev: true + + registry.nlark.com/is-reference/1.2.1: + resolution: {integrity: sha1-iy2sCzcfS8mU/eq6nrVC0DAC0Lc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-reference/download/is-reference-1.2.1.tgz} + name: is-reference + version: 1.2.1 + dependencies: + '@types/estree': registry.nlark.com/@types/estree/0.0.50 + dev: true + + registry.nlark.com/is-stream/2.0.1: + resolution: {integrity: sha1-+sHj1TuXrVqdCunO8jifWBClwHc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-stream/download/is-stream-2.0.1.tgz} + name: is-stream + version: 2.0.1 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/isexe/2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/isexe/download/isexe-2.0.0.tgz} + name: isexe + version: 2.0.0 + dev: true + + registry.nlark.com/jsonfile/4.0.0: + resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jsonfile/download/jsonfile-4.0.0.tgz} + name: jsonfile + version: 4.0.0 + optionalDependencies: + graceful-fs: 4.2.8 + dev: true + + registry.nlark.com/jsonfile/6.1.0: + resolution: {integrity: sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jsonfile/download/jsonfile-6.1.0.tgz} + name: jsonfile + version: 6.1.0 + dependencies: + universalify: registry.nlark.com/universalify/2.0.0 + optionalDependencies: + graceful-fs: 4.2.8 + dev: true + + registry.nlark.com/locate-path/5.0.0: + resolution: {integrity: sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/locate-path/download/locate-path-5.0.0.tgz} + name: locate-path + version: 5.0.0 + engines: {node: '>=8'} + dependencies: + p-locate: registry.nlark.com/p-locate/4.1.0 + dev: true + + registry.nlark.com/lodash/4.17.21: + resolution: {integrity: sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz} + name: lodash + version: 4.17.21 + dev: true + + registry.nlark.com/magic-string/0.25.7: + resolution: {integrity: sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/magic-string/download/magic-string-0.25.7.tgz} + name: magic-string + version: 0.25.7 + dependencies: + sourcemap-codec: registry.nlark.com/sourcemap-codec/1.4.8 + dev: true + + registry.nlark.com/make-dir/3.1.0: + resolution: {integrity: sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/make-dir/download/make-dir-3.1.0.tgz} + name: make-dir + version: 3.1.0 + engines: {node: '>=8'} + dependencies: + semver: registry.nlark.com/semver/6.3.0 + dev: true + + registry.nlark.com/merge-stream/2.0.0: + resolution: {integrity: sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/merge-stream/download/merge-stream-2.0.0.tgz} + name: merge-stream + version: 2.0.0 + dev: true + + registry.nlark.com/mimic-fn/2.1.0: + resolution: {integrity: sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mimic-fn/download/mimic-fn-2.1.0.tgz} + name: mimic-fn + version: 2.1.0 + engines: {node: '>=6'} + dev: true + + registry.nlark.com/minimist/0.1.0: + resolution: {integrity: sha1-md9lelJXTCHJBXSX33QnkLK0wN4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/minimist/download/minimist-0.1.0.tgz} + name: minimist + version: 0.1.0 + dev: true + + registry.nlark.com/minimist/1.2.5: + resolution: {integrity: sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/minimist/download/minimist-1.2.5.tgz} + name: minimist + version: 1.2.5 + dev: true + + registry.nlark.com/once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/once/download/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: 1.0.2 + dev: true + + registry.nlark.com/onetime/5.1.2: + resolution: {integrity: sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/onetime/download/onetime-5.1.2.tgz} + name: onetime + version: 5.1.2 + engines: {node: '>=6'} + dependencies: + mimic-fn: registry.nlark.com/mimic-fn/2.1.0 + dev: true + + registry.nlark.com/p-limit/2.3.0: + resolution: {integrity: sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1631501917013&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz} + name: p-limit + version: 2.3.0 + engines: {node: '>=6'} + dependencies: + p-try: registry.npmmirror.com/p-try/2.2.0 + dev: true + + registry.nlark.com/p-locate/4.1.0: + resolution: {integrity: sha1-o0KLtwiLOmApL2aRkni3wpetTwc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-locate/download/p-locate-4.1.0.tgz} + name: p-locate + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + p-limit: registry.nlark.com/p-limit/2.3.0 + dev: true + + registry.nlark.com/path-exists/4.0.0: + resolution: {integrity: sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-exists/download/path-exists-4.0.0.tgz} + name: path-exists + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/path-is-absolute/1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.nlark.com/path-key/3.1.1: + resolution: {integrity: sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz} + name: path-key + version: 3.1.1 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/path-parse/1.0.7: + resolution: {integrity: sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: true + + registry.nlark.com/picomatch/2.3.0: + resolution: {integrity: sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz} + name: picomatch + version: 2.3.0 + engines: {node: '>=8.6'} + dev: true + + registry.nlark.com/pump/3.0.0: + resolution: {integrity: sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/pump/download/pump-3.0.0.tgz} + name: pump + version: 3.0.0 + dependencies: + end-of-stream: registry.nlark.com/end-of-stream/1.4.4 + once: 1.4.0 + dev: true + + registry.nlark.com/resolve/1.17.0: + resolution: {integrity: sha1-sllBtUloIxzC0bt2p5y38sC/hEQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/resolve/download/resolve-1.17.0.tgz?cache=0&sync_timestamp=1631501917799&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fresolve%2Fdownload%2Fresolve-1.17.0.tgz} + name: resolve + version: 1.17.0 + dependencies: + path-parse: registry.nlark.com/path-parse/1.0.7 + dev: true + + registry.nlark.com/resolve/1.20.0: + resolution: {integrity: sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/resolve/download/resolve-1.20.0.tgz?cache=0&sync_timestamp=1631501917799&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fresolve%2Fdownload%2Fresolve-1.20.0.tgz} + name: resolve + version: 1.20.0 + dependencies: + is-core-module: registry.npmmirror.com/is-core-module/2.8.0 + path-parse: registry.nlark.com/path-parse/1.0.7 + dev: true + + registry.nlark.com/rollup-plugin-typescript2/0.27.3_rollup@2.59.0+typescript@4.4.4: + resolution: {integrity: sha1-zZRVrAJtMlsgxXKNLMVKCKdxtos=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/rollup-plugin-typescript2/download/rollup-plugin-typescript2-0.27.3.tgz} + id: registry.nlark.com/rollup-plugin-typescript2/0.27.3 + name: rollup-plugin-typescript2 + version: 0.27.3 + peerDependencies: + rollup: '>=1.26.3' + typescript: '>=2.4.0' + dependencies: + '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/3.1.0_rollup@2.59.0 + find-cache-dir: registry.nlark.com/find-cache-dir/3.3.2 + fs-extra: registry.nlark.com/fs-extra/8.1.0 + resolve: registry.nlark.com/resolve/1.17.0 + rollup: registry.npmmirror.com/rollup/2.59.0 + tslib: registry.nlark.com/tslib/2.0.1 + typescript: registry.npmmirror.com/typescript/4.4.4 + dev: true + + registry.nlark.com/semver/6.3.0: + resolution: {integrity: sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1631501920740&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz} + name: semver + version: 6.3.0 + hasBin: true + dev: true + + registry.nlark.com/shebang-command/2.0.0: + resolution: {integrity: sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/shebang-command/download/shebang-command-2.0.0.tgz} + name: shebang-command + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + shebang-regex: registry.nlark.com/shebang-regex/3.0.0 + dev: true + + registry.nlark.com/shebang-regex/3.0.0: + resolution: {integrity: sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz} + name: shebang-regex + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/slash/3.0.0: + resolution: {integrity: sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/slash/download/slash-3.0.0.tgz} + name: slash + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.nlark.com/source-map-resolve/0.6.0: + resolution: {integrity: sha1-PZ34fiNrU/FtAeWBUPx3EROOXtI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/source-map-resolve/download/source-map-resolve-0.6.0.tgz} + name: source-map-resolve + version: 0.6.0 + dependencies: + atob: registry.nlark.com/atob/2.1.2 + decode-uri-component: registry.nlark.com/decode-uri-component/0.2.0 + dev: true + + registry.nlark.com/sourcemap-codec/1.4.8: + resolution: {integrity: sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz} + name: sourcemap-codec + version: 1.4.8 + dev: true + + registry.nlark.com/strip-final-newline/2.0.0: + resolution: {integrity: sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz} + name: strip-final-newline + version: 2.0.0 + engines: {node: '>=6'} + dev: true + + registry.nlark.com/supports-color/7.2.0: + resolution: {integrity: sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + registry.nlark.com/tslib/2.0.1: + resolution: {integrity: sha1-QQ6w0RPltjVkkO7HSWA3JbAhtD4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-2.0.1.tgz} + name: tslib + version: 2.0.1 + dev: true + + registry.nlark.com/tslib/2.3.1: + resolution: {integrity: sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-2.3.1.tgz} + name: tslib + version: 2.3.1 + dev: true + + registry.nlark.com/universalify/0.1.2: + resolution: {integrity: sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/universalify/download/universalify-0.1.2.tgz} + name: universalify + version: 0.1.2 + engines: {node: '>= 4.0.0'} + dev: true + + registry.nlark.com/universalify/2.0.0: + resolution: {integrity: sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/universalify/download/universalify-2.0.0.tgz} + name: universalify + version: 2.0.0 + engines: {node: '>= 10.0.0'} + dev: true + + registry.nlark.com/which/2.0.2: + resolution: {integrity: sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/which/download/which-2.0.2.tgz} + name: which + version: 2.0.2 + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: registry.nlark.com/isexe/2.0.0 + dev: true + + registry.npmmirror.com/@rollup/plugin-alias/3.1.8_rollup@2.59.0: + resolution: {integrity: sha1-ZF/YRlngjT0bBZQI/N9pwd1DWms=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-alias/download/@rollup/plugin-alias-3.1.8.tgz} + id: registry.npmmirror.com/@rollup/plugin-alias/3.1.8 + name: '@rollup/plugin-alias' + version: 3.1.8 + engines: {node: '>=8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + rollup: registry.npmmirror.com/rollup/2.59.0 + slash: registry.nlark.com/slash/3.0.0 + dev: true + + registry.npmmirror.com/@rollup/plugin-commonjs/15.1.0_rollup@2.59.0: + resolution: {integrity: sha1-Hn0HbE8bKr9+ZSSFcOVV3vw3wjg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-commonjs/download/@rollup/plugin-commonjs-15.1.0.tgz} + id: registry.npmmirror.com/@rollup/plugin-commonjs/15.1.0 + name: '@rollup/plugin-commonjs' + version: 15.1.0 + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^2.22.0 + dependencies: + '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/3.1.0_rollup@2.59.0 + commondir: registry.nlark.com/commondir/1.0.1 + estree-walker: registry.nlark.com/estree-walker/2.0.2 + glob: registry.npmmirror.com/glob/7.2.0 + is-reference: registry.nlark.com/is-reference/1.2.1 + magic-string: registry.nlark.com/magic-string/0.25.7 + resolve: registry.nlark.com/resolve/1.20.0 + rollup: registry.npmmirror.com/rollup/2.59.0 + dev: true + + registry.npmmirror.com/@rollup/plugin-node-resolve/13.0.6_rollup@2.59.0: + resolution: {integrity: sha1-KWKQcLt2dWe+gVf1dc+o8rjp73c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/download/@rollup/plugin-node-resolve-13.0.6.tgz?cache=0&sync_timestamp=1634651334784&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-13.0.6.tgz} + id: registry.npmmirror.com/@rollup/plugin-node-resolve/13.0.6 + name: '@rollup/plugin-node-resolve' + version: 13.0.6 + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^2.42.0 + dependencies: + '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/3.1.0_rollup@2.59.0 + '@types/resolve': registry.nlark.com/@types/resolve/1.17.1 + builtin-modules: registry.nlark.com/builtin-modules/3.2.0 + deepmerge: registry.nlark.com/deepmerge/4.2.2 + is-module: registry.nlark.com/is-module/1.0.0 + resolve: registry.nlark.com/resolve/1.20.0 + rollup: registry.npmmirror.com/rollup/2.59.0 + dev: true + + registry.npmmirror.com/@types/detect-indent/0.1.30: + resolution: {integrity: sha1-3GgrtBK05lugmOcO2tc7SDP7kQ0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/detect-indent/download/@types/detect-indent-0.1.30.tgz} + name: '@types/detect-indent' + version: 0.1.30 + dev: true + + registry.npmmirror.com/@types/fs-extra/9.0.13: + resolution: {integrity: sha1-dZT7rgT+fxkYzos9IT90/0SsH0U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/fs-extra/download/@types/fs-extra-9.0.13.tgz} + name: '@types/fs-extra' + version: 9.0.13 + dependencies: + '@types/node': registry.npmmirror.com/@types/node/15.14.9 + dev: true + + registry.npmmirror.com/@types/glob/5.0.30: + resolution: {integrity: sha1-ECZAnFYlqGiQdGAoCNCCsoZ7ilE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/glob/download/@types/glob-5.0.30.tgz} + name: '@types/glob' + version: 5.0.30 + dependencies: + '@types/minimatch': registry.nlark.com/@types/minimatch/3.0.5 + '@types/node': registry.npmmirror.com/@types/node/15.14.9 + dev: true + + registry.npmmirror.com/@types/mkdirp/0.3.29: + resolution: {integrity: sha1-fyrX7FX5FEgvybHsS7GuYCjUYGY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mkdirp/download/@types/mkdirp-0.3.29.tgz} + name: '@types/mkdirp' + version: 0.3.29 + dev: true + + registry.npmmirror.com/@types/node/15.14.9: + resolution: {integrity: sha1-vEPJkMPJvnKBhou8e4/dbitXrfo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/download/@types/node-15.14.9.tgz} + name: '@types/node' + version: 15.14.9 + dev: true + + registry.npmmirror.com/@types/node/8.0.0: + resolution: {integrity: sha1-rKqJJHr93Hln6ZAv0Rdh2t6hpVU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/download/@types/node-8.0.0.tgz} + name: '@types/node' + version: 8.0.0 + dev: true + + registry.npmmirror.com/commander/2.20.3: + resolution: {integrity: sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1634887824095&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz} + name: commander + version: 2.20.3 + dev: true + + registry.npmmirror.com/commander/8.3.0: + resolution: {integrity: sha1-SDfqGy2me5xhamevuw+v7lZ7ymY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/download/commander-8.3.0.tgz?cache=0&sync_timestamp=1634887824095&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcommander%2Fdownload%2Fcommander-8.3.0.tgz} + name: commander + version: 8.3.0 + engines: {node: '>= 12'} + dev: false + + registry.npmmirror.com/dts-bundle/0.7.3: + resolution: {integrity: sha1-Nyt7tpyCB4LmOC9ABzmmnc7T1Zo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dts-bundle/download/dts-bundle-0.7.3.tgz} + name: dts-bundle + version: 0.7.3 + engines: {node: '>= 0.10.0'} + hasBin: true + dependencies: + '@types/detect-indent': registry.npmmirror.com/@types/detect-indent/0.1.30 + '@types/glob': registry.npmmirror.com/@types/glob/5.0.30 + '@types/mkdirp': registry.npmmirror.com/@types/mkdirp/0.3.29 + '@types/node': registry.npmmirror.com/@types/node/8.0.0 + commander: registry.npmmirror.com/commander/2.20.3 + detect-indent: registry.nlark.com/detect-indent/0.2.0 + glob: registry.npmmirror.com/glob/6.0.4 + mkdirp: registry.npmmirror.com/mkdirp/0.5.5 + dev: true + + registry.npmmirror.com/find-up/4.1.0: + resolution: {integrity: sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/download/find-up-4.1.0.tgz} + name: find-up + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + locate-path: registry.nlark.com/locate-path/5.0.0 + path-exists: registry.nlark.com/path-exists/4.0.0 + dev: true + + registry.npmmirror.com/glob/6.0.4: + resolution: {integrity: sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/download/glob-6.0.4.tgz} + name: glob + version: 6.0.4 + dependencies: + inflight: registry.nlark.com/inflight/1.0.6 + inherits: registry.nlark.com/inherits/2.0.4 + minimatch: 3.0.4 + once: registry.nlark.com/once/1.4.0 + path-is-absolute: registry.nlark.com/path-is-absolute/1.0.1 + dev: true + + registry.npmmirror.com/glob/7.2.0: + resolution: {integrity: sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz} + name: glob + version: 7.2.0 + dependencies: + fs.realpath: registry.nlark.com/fs.realpath/1.0.0 + inflight: registry.nlark.com/inflight/1.0.6 + inherits: registry.nlark.com/inherits/2.0.4 + minimatch: 3.0.4 + once: registry.nlark.com/once/1.4.0 + path-is-absolute: registry.nlark.com/path-is-absolute/1.0.1 + dev: true + + registry.npmmirror.com/graceful-fs/4.2.8: + resolution: {integrity: sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz} + name: graceful-fs + version: 4.2.8 + dev: true + + registry.npmmirror.com/is-core-module/2.8.0: + resolution: {integrity: sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/download/is-core-module-2.8.0.tgz} + name: is-core-module + version: 2.8.0 + dependencies: + has: registry.nlark.com/has/1.0.3 + dev: true + + registry.npmmirror.com/mkdirp/0.5.5: + resolution: {integrity: sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mkdirp/download/mkdirp-0.5.5.tgz} + name: mkdirp + version: 0.5.5 + hasBin: true + dependencies: + minimist: registry.nlark.com/minimist/1.2.5 + dev: true + + registry.npmmirror.com/npm-run-path/4.0.1: + resolution: {integrity: sha1-t+zR5e1T2o43pV4cImnguX7XSOo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/download/npm-run-path-4.0.1.tgz?cache=0&sync_timestamp=1633420537317&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-4.0.1.tgz} + name: npm-run-path + version: 4.0.1 + engines: {node: '>=8'} + dependencies: + path-key: registry.nlark.com/path-key/3.1.1 + dev: true + + registry.npmmirror.com/p-try/2.2.0: + resolution: {integrity: sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-try/download/p-try-2.2.0.tgz} + name: p-try + version: 2.2.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/pkg-dir/4.2.0: + resolution: {integrity: sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pkg-dir/download/pkg-dir-4.2.0.tgz} + name: pkg-dir + version: 4.2.0 + engines: {node: '>=8'} + dependencies: + find-up: registry.npmmirror.com/find-up/4.1.0 + dev: true + + registry.npmmirror.com/rollup-plugin-sourcemaps/0.6.3_0f119b75fee2067b54923714521665fe: + resolution: {integrity: sha1-v5ORP/4FbkFEGWB/HQJ4DX7OhO0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-sourcemaps/download/rollup-plugin-sourcemaps-0.6.3.tgz} + id: registry.npmmirror.com/rollup-plugin-sourcemaps/0.6.3 + name: rollup-plugin-sourcemaps + version: 0.6.3 + engines: {node: '>=10.0.0'} + peerDependencies: + '@types/node': '>=10.0.0' + rollup: '>=0.31.2' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/3.1.0_rollup@2.59.0 + '@types/node': registry.npmmirror.com/@types/node/15.14.9 + rollup: registry.npmmirror.com/rollup/2.59.0 + source-map-resolve: registry.nlark.com/source-map-resolve/0.6.0 + dev: true + + registry.npmmirror.com/rollup/2.59.0: + resolution: {integrity: sha1-EIxhsPoKN+vI0fFk8oFiIFbw21k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/download/rollup-2.59.0.tgz?cache=0&sync_timestamp=1635762026063&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frollup%2Fdownload%2Frollup-2.59.0.tgz} + name: rollup + version: 2.59.0 + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + registry.npmmirror.com/signal-exit/3.0.5: + resolution: {integrity: sha1-nj6MwMdamUcrRDIQM6dwLnc4JS8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/signal-exit/download/signal-exit-3.0.5.tgz} + name: signal-exit + version: 3.0.5 + dev: true + + registry.npmmirror.com/typescript/4.4.4: + resolution: {integrity: sha1-LNAaGh8WBwTTEB/VpY/w+fy4Aww=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typescript/download/typescript-4.4.4.tgz} + name: typescript + version: 4.4.4 + engines: {node: '>=4.2.0'} + hasBin: true + dev: true diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..355473d --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,113 @@ +import commonjs from "@rollup/plugin-commonjs"; +import typescript from "rollup-plugin-typescript2"; +import alias from "@rollup/plugin-alias"; +import replace from "@rollup/plugin-replace"; +import sourcemaps from "rollup-plugin-sourcemaps"; +import { nodeResolve } from '@rollup/plugin-node-resolve'; +const pkg = require("./package.json"); +const path = require("path"); + +let isProd = process.env.NODE_ENV === "production"; + +const input = "src/index.ts"; +const openSourceMap = true; +const buildOptions = pkg.buildOptions; +buildOptions.formats = process.env.TARGET + ? [process.env.TARGET] + : buildOptions.formats; +export default createConfig(); + +function createConfig() { + return { + input, + external: [...Object.keys(pkg.dependencies), ...Object.keys(pkg.devDependencies)], + output: createOutput(buildOptions), + plugins: createPlugin(), + }; +} + +function createPlugin() { + let plugin = []; + const aliasPlugin = alias({ + resolve: [".ts"], + "@": path.resolve(__dirname, "src"), + }); + const tsPlugin = typescript({ + check: isProd, + tsconfig: path.resolve(__dirname, "tsconfig.json"), + cacheRoot: path.resolve(__dirname, "node_modules/.rts2_cache"), + tsconfigOverride: { + compilerOptions: { + declaration: isProd, + }, + }, + }); + const replacePlugin = replace({ + preventAssignment: true, + __DEV__: !isProd, + }); + plugin = [sourcemaps(),nodeResolve(), commonjs(), tsPlugin, aliasPlugin, replacePlugin]; + return plugin; +} + +function createOutput(options) { + const output = []; + const filterType = { + //可用script标签导入,会输出一个全局变量 + iife: { + sourcemap: openSourceMap, + file: `dist/${options.filename}.iife.js`, + format: "iife", + name: options.var, + }, + // amd规范,可用require.js加载 + amd: { + sourcemap: openSourceMap, + file: `dist/${options.filename}.amd.js`, + format: "amd", + }, + // 兼容 IIFE, AMD, CJS 三种模块规范 + umd: { + sourcemap: openSourceMap, + file: `dist/${options.filename}.umd.js`, + format: "umd", + name: options.var, + }, + // CommonJS规范 + cjs: { + sourcemap: openSourceMap, + file: `dist/${options.filename}.cjs.js`, + format: "cjs", + exports: "auto", + banner: "#!/usr/bin/env node" // 提供命令行的可执行权限 + }, + // ES2015 Module 规范, 可用 `Webpack`, `Rollup` 加载 + esm: { + sourcemap: openSourceMap, + file: `dist/${options.filename}.esm.js`, + format: "es", + }, + "esm-browser": { + sourcemap: openSourceMap, + file: `dist/${options.filename}.esm-browser.js`, + format: "es", + }, + }; + if (options.formats) { + options.formats.forEach((format) => { + if (filterType[format]) { + output.push(filterType[format]); + } else { + console.error("无效类型:" + format); + } + }); + } else { + for (const key in filterType) { + if (filterType.hasOwnProperty(key)) { + const element = filterType[key]; + output.push(element); + } + } + } + return output; +} diff --git a/scripts/build.js b/scripts/build.js new file mode 100644 index 0000000..53a2520 --- /dev/null +++ b/scripts/build.js @@ -0,0 +1,24 @@ +const execa = require("execa"); +const fs = require("fs-extra"); +const chalk = require('chalk'); +const dts = require("dts-bundle"); +const pkg = require("../package.json"); + +(async function () { + console.log(chalk.red("正在清理dist文件夹")); + await fs.remove(`dist`); + console.log(chalk.red("清理完成,开始构建")); + await execa("rollup", ["-c", "--environment", `NODE_ENV:production`], { + stdio: "inherit", + }); + console.log(chalk.red("构建完成,开始生成d.ts")); + const dtsOptions = { + name: pkg.name, + main: `dist/src/index.d.ts`, + out: `../index.d.ts`, + }; + dts.bundle(dtsOptions); + console.log(chalk.red("生成完毕,开始清理残余")); + await fs.remove(`dist/src`); + console.log('所有文件清理完成'); +})(); diff --git a/scripts/dev.js b/scripts/dev.js new file mode 100644 index 0000000..17617f4 --- /dev/null +++ b/scripts/dev.js @@ -0,0 +1,7 @@ +const execa = require("execa"); +const chalk = require('chalk'); + +console.log(chalk.red("开始监听,格式:umd")); +execa("rollup", ["-wc", "--environment", `NODE_ENV:development,TARGET:cjs`], { + stdio: "inherit", +}); diff --git a/src/config.ts b/src/config.ts new file mode 100644 index 0000000..a7c721f --- /dev/null +++ b/src/config.ts @@ -0,0 +1,8 @@ +import path from "path"; +import os from "os"; + +export default { + //数据目录 + dir: path.join(os.homedir(), '.pp'), + configPath: path.join(os.homedir(), '.pp','.pprc') +} diff --git a/src/func.ts b/src/func.ts new file mode 100644 index 0000000..4f0649a --- /dev/null +++ b/src/func.ts @@ -0,0 +1,102 @@ +import fs from "fs-extra"; +import chalk from "chalk"; +import uuid from "uuid"; +import path from "path"; +import os from "os"; +import config from "@/config"; +import download from "download-git-repo"; +import writefile, { isExist } from "./writefile"; +import { readFile, readIniFile, writeIniFile } from "./util"; + +/** + * 确保配置文件存在 + */ +try { + fs.ensureDirSync(config.dir); + fs.ensureFileSync(config.configPath); +} catch (e) { + throw e; +} +/** + * 读取配置 + */ +const Opts = readIniFile(config.configPath); + +/** + * 显示保存的列表 + * @param opt 参数: all:是否显示Git地址 + */ +export function onList(opt?: { all?: boolean }) { + if (!Opts.list || !Object.keys(Opts.list).length) { + console.log("暂无模板列表,请自行体添加"); + return; + } + Object.keys(Opts.list).forEach((key) => { + let value = Opts.list[key]; + if (opt?.all) { + console.log( + value.name + (value.desc ? `(${value.desc})` : "") + `: ${value.url}` + ); + } else { + console.log(value.name + (value.desc ? `(${value.desc})` : "")); + } + }); +} + +export function onClone(name: string, opts: { dir: string }) { + if (!Opts.list || !Opts.list[name]) { + console.log("请先添加项目"); + return; + } + let data = Opts.list[name]; + let tempPath = path.join(os.tmpdir(), "pp-" + uuid.v4()); + let to = opts.dir; + let git_url = "direct:" + data.url; + if (isExist(to)) { + console.log( + chalk.red("安全起见,不覆写已存在的目录,请先删除相同目录文件夹") + ); + return; + } + download(git_url, tempPath, { clone: true }, function (err: Error) { + if (err) throw err; + writefile(tempPath, to, { name: "哈哈" }); + fs.removeSync(tempPath); + console.log(chalk.green("克隆成功")); + console.log(`\ncd ${to}\n`); + }); +} + +export function onRemove(name: string) { + let result = Object.assign({}, Opts); + if (result.list && result.list[name]) { + delete result.list[name]; + writeIniFile(config.configPath, result); + console.log(chalk.green("删除成功")); + } else { + console.error(chalk.red("不存在该模板")); + } +} + +export function onAdd(url: string, opt: { name: string; desc?: string }) { + const result = Object.assign({}, Opts); + const http = /^(http|https)\:\/\//g; + const git = /(git|root)\@/g; + if (!git.test(url) && !http.test(url)) { + console.error(chalk.red("请添加正确的Git仓库地址")); + return; + } + if (!result.list) result.list = {}; + if (result.list[opt.name]) { + console.error(chalk.red("名字重复,当前存在:")); + onList(); + return; + } + result.list[opt.name] = { ...opt, url }; + writeIniFile(config.configPath, result); + console.log(chalk.green("添加成功")); +} + +export function onCheck() { + console.log(readFile(config.configPath)); +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..abb6032 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,31 @@ +import { Command } from "commander"; +import * as func from "./func"; +// import os from "os" + +// console.log(os.tmpdir()); + +const program = new Command(); +program.version("0.0.1", "-v, --version").description("查看当前版本号"); +program.helpOption("-h --help", "显示帮助信息"); +program.showHelpAfterError("( pp -h 查看帮助信息)"); + +program.command("list").option('-a --all').description("查看所有模板列表").action(func.onList); + +program.command("check").description("查看配置文件").action(func.onCheck); + +program + .command("add ") + .requiredOption("-n --name ", "模板名字") + .option("-d --desc ", "模板具体描述") + .option("-t --tag ", "模板标签") + .description("添加一个模板仓库") + .action(func.onAdd); + +program + .command("rm ") + .description("删除一个模板仓库") + .action(func.onRemove); + +program.command("clone ").requiredOption("-d --dir ", "目标路径").description("克隆模板仓库").action(func.onClone); + +program.parse(process.argv); diff --git a/src/util.ts b/src/util.ts new file mode 100644 index 0000000..7a1cf13 --- /dev/null +++ b/src/util.ts @@ -0,0 +1,13 @@ +import ini, {EncodeOptions } from "ini" +import fs from "fs-extra" + +export function readFile(path:string, encoding: BufferEncoding="utf-8") { + return fs.readFileSync(path, encoding) +} +export function readIniFile(path:string, encoding: BufferEncoding="utf-8") { + return ini.parse(fs.readFileSync(path, encoding)) +} + +export function writeIniFile(path:string, data: Object) { + fs.writeFileSync(path, ini.stringify(data)) +} \ No newline at end of file diff --git a/src/writefile.ts b/src/writefile.ts new file mode 100644 index 0000000..45f2d8d --- /dev/null +++ b/src/writefile.ts @@ -0,0 +1,57 @@ +import fs from "fs-extra"; +import ejs from "ejs"; +import chalk from "chalk"; +import path from "path"; +import execa from "execa"; + +function walkDir (dir: string, cb?: (file: string)=>void) { + function _walk (_dir = '.') { + const statInfo = fs.statSync(dir + path.sep + _dir) + if (statInfo.isDirectory()) { + const paths = fs.readdirSync(path.resolve(dir + path.sep + _dir)) + for (let i = 0; i < paths.length; i++) { + _walk(_dir + path.sep + paths[i]) + } + } else if (statInfo.isFile()) { + cb && cb(_dir) + } + return true + } + return _walk() +} + +export function isExist (file: string) { + let result = false + try { + fs.accessSync(file, fs.constants.F_OK | fs.constants.R_OK | fs.constants.W_OK); + result = true // 文件可读写 + } catch (err) { + result = false + } + return result +} + +export default function writefile (fromDir: string, toDir: string, opts = {}, force = false) { + if (!fromDir) { + console.log(chalk.red("缺少模板目录")) + return + } + if (!toDir) { + console.log(chalk.red("缺少目标目录")) + return + } + if (isExist(toDir) && !force) { + console.log(chalk.red("安全起见,不覆写已存在的目录")) + return + } + walkDir(fromDir, function (file) { + let fromRes = path.resolve(fromDir, file) + let toRes = path.resolve(toDir, file) + fs.ensureFileSync(toRes) + const originRoot = fs.readFileSync(fromRes, { + encoding: "utf8", + }); + const html = ejs.render(originRoot, opts); + fs.writeFileSync(toRes, html); + }) +} diff --git a/templates/a.txt b/templates/a.txt new file mode 100644 index 0000000..e2d2667 --- /dev/null +++ b/templates/a.txt @@ -0,0 +1 @@ +asdad <%= name %> \ No newline at end of file diff --git a/templates/啊倒萨/aaa.d b/templates/啊倒萨/aaa.d new file mode 100644 index 0000000..e2d2667 --- /dev/null +++ b/templates/啊倒萨/aaa.d @@ -0,0 +1 @@ +asdad <%= name %> \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..11cb9ef --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,35 @@ +{ + "compilerOptions": { + "strict": true, + "target": "ES5", + "esModuleInterop": true, // 使得导入的方式类似于es6的模式 + "module":"ESNext", // 编译后输出的模块类型,UMD不支持rollup打包 + "lib": [ + "esnext" + ], + "removeComments": true, + "noImplicitAny": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "strictBindCallApply": true, + "strictPropertyInitialization": true, + // 不报告执行不到的代码错误。 + "allowUnreachableCode": true, + "noImplicitThis": true, + "alwaysStrict": true, + "noUnusedLocals": false, // 用于检查是否有定义了但是没有使用变量 + "noUnusedParameters": false, // 用于检测是否在函数中没有使用的参数 + "noImplicitReturns": true, // 用于检查函数是否有返回值 + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, + "noFallthroughCasesInSwitch": true, // 用于检查switch中是否有case没有使用break跳出switch + "moduleResolution": "node", + "baseUrl": ".", // 用于设置解析非相对模块名称的基本目录 + "rootDir": ".", // 来指定编译文件的根目录,编译器会在根目录查找入口文件 + "paths": { // 用于设置模块名到基于baseUrl的路径映射 + "@/*": ["src/*"] + } + }, + "include": ["src/**.ts", "types/global.d.ts"], + "exclude": ["node_modules"] +} diff --git a/types/global.d.ts b/types/global.d.ts new file mode 100644 index 0000000..693b9c0 --- /dev/null +++ b/types/global.d.ts @@ -0,0 +1,21 @@ +// 全局替换 +declare var __DEV__: boolean; + +interface IItem{ + name: string; // 模板名称 + desc: string; // 具体干什么用的 + url: string; //Git仓库地址 +} + +type IOpts = { + list?: [ + IItem + ] +} + + +declare module "download-git-repo"{ + type download = (url: string, path: string, config: {clone: boolean}, cb: (err:Error)=>void)=>void + const func: download; + export default func; +} \ No newline at end of file