From 3aaba68e2fe5805808b4b8257bf057378ed17de5 Mon Sep 17 00:00:00 2001 From: fisher Date: Fri, 1 Apr 2022 16:47:53 +0800 Subject: [PATCH] update --- package.json | 10 +- packages/apps/vueapp/babel.config.js | 17 + packages/apps/vueapp/package.json | 21 +- packages/apps/vueapp/src/App.vue | 44 +- .../apps/vueapp/src/components/HelloWorld.vue | 40 - packages/apps/vueapp/src/components/china.vue | 24 + packages/apps/vueapp/src/languages/cn.js | 7 +- packages/apps/vueapp/src/languages/en.js | 7 +- packages/apps/vueapp/src/languages/idMap.js | 7 +- packages/apps/vueapp/src/languages/index.js | 6 +- .../src/languages/translates/default.json | 30 + packages/apps/vueapp/src/main.js | 9 +- packages/apps/vueapp/vite.config.js | 18 +- packages/autopublish/addGitTag.js | 59 + packages/autopublish/index.js | 113 + packages/autopublish/package.json | 19 + packages/autopublish/publish.js | 119 + packages/autopublish/publishall.js | 43 + packages/autopublish/readme.md | 5 + packages/autopublish/utils.js | 24 + packages/babel/index.js | 60 +- packages/babel/package.json | 9 +- packages/babel/readme.md | 5 +- packages/babel/utils.js | 18 - packages/cli/compile.command.js | 17 +- packages/cli/extract.plugin.js | 5 +- packages/cli/i18nProxy.js | 21 + packages/cli/index.js | 33 +- packages/cli/init.command.js | 27 +- packages/cli/package.json | 5 +- packages/cli/readme.md | 60 +- packages/cli/templates/entry.js | 8 +- packages/cli/utils.js | 186 - packages/formatters/package.json | 3 +- packages/runtime/dist/index.cjs | 2 +- packages/runtime/dist/index.cjs.map | 2 +- packages/runtime/dist/index.esm.js | 2 +- packages/runtime/dist/index.esm.js.map | 2 +- packages/runtime/dist/runtime.cjs | 92 +- packages/runtime/dist/runtime.mjs | 88 +- packages/runtime/index.js | 85 +- packages/runtime/package.json | 7 +- packages/runtime/readme.md | 6 +- packages/runtime/scope.js | 2 +- packages/utils/index.js | 376 ++ packages/utils/package.json | 17 + packages/vite/index.js | 166 + packages/vite/package.json | 15 + packages/vite/readme.md | 6 + packages/vite/utils.js | 117 + packages/vue/index.js | 55 +- packages/vue/package.json | 40 +- packages/vue/readme.md | 3 +- pnpm-lock.yaml | 3418 ++++++++++++++--- readme.md | 870 +++-- test/babel.test.js | 5 +- 56 files changed, 5010 insertions(+), 1445 deletions(-) create mode 100644 packages/apps/vueapp/babel.config.js delete mode 100644 packages/apps/vueapp/src/components/HelloWorld.vue create mode 100644 packages/apps/vueapp/src/components/china.vue create mode 100644 packages/autopublish/addGitTag.js create mode 100644 packages/autopublish/index.js create mode 100644 packages/autopublish/package.json create mode 100644 packages/autopublish/publish.js create mode 100644 packages/autopublish/publishall.js create mode 100644 packages/autopublish/readme.md create mode 100644 packages/autopublish/utils.js delete mode 100644 packages/babel/utils.js create mode 100644 packages/cli/i18nProxy.js delete mode 100644 packages/cli/utils.js create mode 100644 packages/utils/index.js create mode 100644 packages/utils/package.json create mode 100644 packages/vite/index.js create mode 100644 packages/vite/package.json create mode 100644 packages/vite/readme.md create mode 100644 packages/vite/utils.js diff --git a/package.json b/package.json index 8babf63..b56dd4c 100644 --- a/package.json +++ b/package.json @@ -15,19 +15,23 @@ "author": "", "license": "ISC", "devDependencies": { - "@babel/core": "^7.17.5", + "@babel/core": "^7.17.8", "@babel/plugin-transform-runtime": "^7.17.0", "@babel/preset-env": "^7.16.11", "@rollup/plugin-babel": "^5.3.1", "@rollup/plugin-commonjs": "^21.0.2", - "dayjs": "^1.10.8", + "dayjs": "^1.11.0", "deepmerge": "^4.2.2", "fs-extra": "^10.0.1", "gulp": "^4.0.2", "jest": "^27.5.1", - "rollup": "^2.69.0", + "logsets": "^1.0.8", + "rollup": "^2.70.1", "rollup-plugin-clear": "^2.0.7", "shelljs": "^0.8.5", "vinyl": "^2.2.1" + }, + "dependencies": { + "inquirer": "^8.2.2" } } diff --git a/packages/apps/vueapp/babel.config.js b/packages/apps/vueapp/babel.config.js new file mode 100644 index 0000000..14a29bb --- /dev/null +++ b/packages/apps/vueapp/babel.config.js @@ -0,0 +1,17 @@ +const i18nPlugin =require("@voerkai18n/babel") +module.exports = { + presets: [ + "@babel/preset-env" + ], + plugins: [ + [ + i18nPlugin, + { + // 可选,指定语言文件存放的目录,即保存编译后的语言文件的文件夹 + // 可以指定相对路径,也可以指定绝对路径 + // location:"", + autoImport:"/src/languages/index.js" + } + ] + ] +} \ No newline at end of file diff --git a/packages/apps/vueapp/package.json b/packages/apps/vueapp/package.json index cd60f4c..57ef7b6 100644 --- a/packages/apps/vueapp/package.json +++ b/packages/apps/vueapp/package.json @@ -8,11 +8,24 @@ "preview": "vite preview" }, "dependencies": { - "@voerkai18n/cli": "workspace:^1.0.6", - "vue": "^3.2.25" + "@voerkai18n/cli": "workspace:^1.0.11", + "@voerkai18n/vue": "workspace:^1.0.0", + "vue": "^3.2.31" }, "devDependencies": { - "@vitejs/plugin-vue": "^2.2.0", - "vite": "^2.8.0" + "@babel/cli": "^7.17.6", + "@babel/core": "^7.17.8", + "@babel/plugin-transform-runtime": "^7.17.0", + "@babel/runtime": "^7.17.8", + "@babel/runtime-corejs3": "^7.17.8", + "@rollup/plugin-babel": "^5.3.1", + "@vitejs/plugin-legacy": "^1.7.1", + "@vitejs/plugin-vue": "^2.2.4", + "@voerkai18n/babel": "workspace:^1.0.0", + "babel-preset-env": "^1.7.0", + "core-js": "^3.21.1", + "vite": "^2.8.6", + "vite-plugin-babel": "^1.0.0", + "vite-plugin-inspect": "^0.4.3" } } diff --git a/packages/apps/vueapp/src/App.vue b/packages/apps/vueapp/src/App.vue index 9cfbc00..5398fc3 100644 --- a/packages/apps/vueapp/src/App.vue +++ b/packages/apps/vueapp/src/App.vue @@ -1,17 +1,51 @@ +console.log("App=",messages.name) +setTimeout(() => { + messages.name = 'Vue App 2' +}, 5000) +// console.log(t("Hello world!")) + + diff --git a/packages/apps/vueapp/src/components/china.vue b/packages/apps/vueapp/src/components/china.vue new file mode 100644 index 0000000..244be3a --- /dev/null +++ b/packages/apps/vueapp/src/components/china.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/packages/apps/vueapp/src/languages/cn.js b/packages/apps/vueapp/src/languages/cn.js index 8127db6..83e7e27 100644 --- a/packages/apps/vueapp/src/languages/cn.js +++ b/packages/apps/vueapp/src/languages/cn.js @@ -1,3 +1,8 @@ export default { - "1": "Hello world!" + "1": "Hello world!", + "2": "中华人民共和国", + "3": "迎接中华民族的伟大复兴", + "4": "成立于{}年", + "5": "首都:北京", + "6": "VoerkaI18n多语言解决方案 " } \ No newline at end of file diff --git a/packages/apps/vueapp/src/languages/en.js b/packages/apps/vueapp/src/languages/en.js index 8127db6..69048cc 100644 --- a/packages/apps/vueapp/src/languages/en.js +++ b/packages/apps/vueapp/src/languages/en.js @@ -1,3 +1,8 @@ export default { - "1": "Hello world!" + "1": "Hello world!", + "2": "The People's Republic of China", + "3": "Welcome the great rejuvenation of the Chinese nation", + "4": "Founded in {}", + "5": "Capital: Beijing", + "6": "VoerkaI18n多语言解决方案 " } \ No newline at end of file diff --git a/packages/apps/vueapp/src/languages/idMap.js b/packages/apps/vueapp/src/languages/idMap.js index 9b1c0c1..ad23985 100644 --- a/packages/apps/vueapp/src/languages/idMap.js +++ b/packages/apps/vueapp/src/languages/idMap.js @@ -1,3 +1,8 @@ export default { - "Hello world!": 1 + "Hello world!": 1, + "中华人民共和国": 2, + "迎接中华民族的伟大复兴": 3, + "成立于{}年": 4, + "首都:北京": 5, + "VoerkaI18n多语言解决方案 ": 6 } \ No newline at end of file diff --git a/packages/apps/vueapp/src/languages/index.js b/packages/apps/vueapp/src/languages/index.js index 03127fa..8faac04 100644 --- a/packages/apps/vueapp/src/languages/index.js +++ b/packages/apps/vueapp/src/languages/index.js @@ -38,10 +38,10 @@ const scope = new i18nScope({ } }) // 翻译函数 -const t = translate.bind(scope) +const scopedTtranslate = translate.bind(scope) export { - t, - i18nScope as scope + scopedTtranslate as t, + scope as i18nScope } diff --git a/packages/apps/vueapp/src/languages/translates/default.json b/packages/apps/vueapp/src/languages/translates/default.json index e005283..9588cb0 100644 --- a/packages/apps/vueapp/src/languages/translates/default.json +++ b/packages/apps/vueapp/src/languages/translates/default.json @@ -4,5 +4,35 @@ "$file": [ "App.vue" ] + }, + "中华人民共和国": { + "en": "The People's Republic of China", + "$file": [ + "App.vue" + ] + }, + "迎接中华民族的伟大复兴": { + "en": "Welcome the great rejuvenation of the Chinese nation", + "$file": [ + "App.vue" + ] + }, + "成立于{}年": { + "en": "Founded in {}", + "$file": [ + "components\\china.vue" + ] + }, + "首都:北京": { + "en": "Capital: Beijing", + "$file": [ + "components\\china.vue" + ] + }, + "VoerkaI18n多语言解决方案 ": { + "en": "VoerkaI18n多语言解决方案 ", + "$file": [ + "App.vue" + ] } } \ No newline at end of file diff --git a/packages/apps/vueapp/src/main.js b/packages/apps/vueapp/src/main.js index 03550a6..83e8755 100644 --- a/packages/apps/vueapp/src/main.js +++ b/packages/apps/vueapp/src/main.js @@ -1,7 +1,8 @@ import { createApp } from 'vue' import App from './App.vue' - -createApp(App).mount('#app') - - +import i18nPlugin from '@voerkai18n/vue' +import { t,i18nScope } from './languages' +const app = createApp(App) +app.use(i18nPlugin,{ t,i18nScope }) +app.mount('#app') diff --git a/packages/apps/vueapp/vite.config.js b/packages/apps/vueapp/vite.config.js index 315212d..03fcba9 100644 --- a/packages/apps/vueapp/vite.config.js +++ b/packages/apps/vueapp/vite.config.js @@ -1,7 +1,23 @@ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' +import legacy from '@vitejs/plugin-legacy' +import { babel } from '@rollup/plugin-babel'; +import Inspect from 'vite-plugin-inspect' +import Voerkai18nPlugin from "../../vite" + // https://vitejs.dev/config/ export default defineConfig({ - plugins: [vue()] + plugins: [ + //legacy(), + //babel(), + Inspect(), // localhost:3000/__inspect/ + Voerkai18nPlugin({debug:true}), + vue() + ], + resolve:{ + alias:{ + //"voerkai18n":"./languages/index.js" + } + } }) diff --git a/packages/autopublish/addGitTag.js b/packages/autopublish/addGitTag.js new file mode 100644 index 0000000..89fe5c6 --- /dev/null +++ b/packages/autopublish/addGitTag.js @@ -0,0 +1,59 @@ + +/** + * + * 读取当前项目的.version,然后运行git tag [Version]在当前工程中添加版本tag + * + * 添加会判断是否已经存在该版本标签,如果存在则不添加 + * 本脚本用在发布后自动添加版本标签 + * + * addGitTag + * + * { + * scripts:{ + * "publish":"node version patch", + * // 在发布后在当前工程中添加版本标签 + * "postpublish":"node addGitTag + * " + * } + * + * } + */ + +const fs = require("fs-extra"); +const path = require("path"); +const dayjs = require("dayjs"); +const shelljs = require("shelljs"); + +// 可选的,指定工程目录 +const args = process.argv.slice(2); +const projectFolder = args.length > 0 ? (path.isAbsolute(args[0]) ? args[0] : path.join(process.cwd(),args[0])) : process.cwd(); + +// 读取当前项目的package.json + +const pkgFile = path.join(projectFolder, "package.json") +const pkg = fs.readJSONSync(pkgFile); + +// 切换到当前目录 +shelljs.cd(projectFolder); + +// 读取当前版本 +const tagInfo = shelljs.exec(`git describe --tags --match=V${pkg.version}`, {silent: true}).stdout.trim(); +if(tagInfo.length===0){ + console.log(`未发现版本标签:V${pkg.version}`); + if(shelljs.exec(`git tag V${pkg.version}`, {silent: false}).code>0){ + console.log(`添加版本标签失败`) + }else{ + console.log(`已添加版本标签:V${pkg.version}`) + } +}else { + console.log(`已发现版本标签:${tagInfo}`); +} +// 更新 + + + + + + + + diff --git a/packages/autopublish/index.js b/packages/autopublish/index.js new file mode 100644 index 0000000..cb79575 --- /dev/null +++ b/packages/autopublish/index.js @@ -0,0 +1,113 @@ +/** + * + * 自动发布工具 + * + * 自动读取当前项目的版本标签,如果不致则进行 + * + * + * + * 支持两种发布方式: + * + * 1. 自动发布 + * + * 当选择自动发布时,会读取当前项目下的所有文件,然后 + * + * 根据每个包的最后提交时间和最近一次发布来决定是否自动发布 + * 每个包发布时均需要修改package.json.lastPublish值 + * + * 2. 手动发布 + * 手动选择要发布的包 + * + * pnpm add @voerkai18n/autopublish + * + * // 自动发布 + * autopublish + * + */ + +const inquirer = require("inquirer"); +const fs = require("fs-extra"); +const shelljs = require("shelljs"); +const path = require("path"); +const createLogger = require("logsets"); +const commander = require("commander"); + +const dayjs = require("dayjs"); +const relativeTime = require("dayjs/plugin/relativeTime"); +dayjs.extend(relativeTime); + +const logger = createLogger(); + + +const program = commander() + + +program + .version("1.0.0") + .option("-a, --auto", "自动发布") + .option("-a, --auto", "启用自动发布") + .option("-m, --monorepo", "是否是monorepo工程") + .option("-i, --independent", "每个包独立发布") + .option("-e, --excludePackages", "多包场景时忽略的包") + .action((options) => { + + + + + })) + + + + +// 读取packages所有包 + +let excludePackages = ["apps"]; + +let packages = []; + +fs.readdirSync(path.join(__dirname, "packages")).forEach(function(packageName){ + if (excludePackages.includes(packageName)) return; + const packageFolder = path.join(__dirname, "packages", packageName); + // 读取指定包 + const { version: packageVersion,lastPublishTime } = require(path.join(packageFolder,"package.json")); + // 最后一次提交的时间 + const packageLastCommitTime = shelljs.exec(`git log -1 --format=%cd --date=iso ${packageFolder}`, {silent: true}).stdout.trim(); + // 最后发布的时间 + packages.push({ + name: `@voerkai18n/${packageName.padEnd(20)}\t\t( Version:${packageVersion}, LastCommit: ${dayjs(packageLastCommitTime).fromNow()})`, + value: { + packageFolder, + lastCommitTime: packageLastCommitTime, + version: packageVersion, + }, + }); +}); + +inquirer + .prompt([ + { + type: "confirm", + name: "autoPublish", + message: "是否自动发布?", + default: true, + }, + { + type: "checkbox", + name: "selectPackages", + message: "请选择要发布的库:", + choices: packages, + when: function (answer) { + return !answer.autoPublish; + }, + }, + ]) + .then((answers) => { + console.log(answers); + }) + .catch((error) => { + if (error.isTtyError) { + // Prompt couldn't be rendered in the current environment + } else { + // Something else went wrong + } + }); diff --git a/packages/autopublish/package.json b/packages/autopublish/package.json new file mode 100644 index 0000000..77b57d1 --- /dev/null +++ b/packages/autopublish/package.json @@ -0,0 +1,19 @@ +{ + "name": "@voerkai18n/publish", + "version": "1.0.0", + "description": "发布项目工具", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "release": "npm version patch && pnpm publish --no-git-checks --access public", + "postpublish": "git push --follow-tags && npm run build && npm publish" + }, + "author": "", + "license": "ISC", + "bin": { + "publish": "./index.js" + }, + "dependencies": { + "commander": "^9.0.0" + } +} diff --git a/packages/autopublish/publish.js b/packages/autopublish/publish.js new file mode 100644 index 0000000..ddc7c16 --- /dev/null +++ b/packages/autopublish/publish.js @@ -0,0 +1,119 @@ +/** + * 用于多包环境下的自动发布 + * + * autopublish + * + * 1.在package.json中添加scripts + * { + * scripts:{ + * "publish":"autopublish [options]", + * } + * } + * 2. 参数 + * -q: 默认情况下会比对最后一次发布的时间,来决定是否自动发布 + * 当-q参数被指定时,会询问用户 + * + * + * + * + */ + +const fs = require("fs-extra"); +const path = require("path"); +const shelljs = require("shelljs"); +const createLogger = require("logsets"); +const { Command } = require('commander'); +const dayjs = require("dayjs"); +const relativeTime = require("dayjs/plugin/relativeTime"); +dayjs.extend(relativeTime); + +const logger = createLogger(); + + +const program =new Command() + + + + +const packages = [ + "git log --format=%cd --date=iso -1 -- packages/babel/package.json", + "git log --format=%cd --date=iso -1 -- packages/cli/package.json", + "git log --format=%cd --date=iso -1 -- packages/runtime/package.json", + "git log --format=%cd --date=iso -1 -- packages/formatters/package.json", + "git log --format=%cd --date=iso -1 -- packages/vue/package.json", + "git log --format=%cd --date=iso -1 -- packages/vite/package.json", + "git log --format=%cd --date=iso -1 -- packages/autopublish/package.json", + "git log --format=%cd --date=iso -1 -- packages/utils/package.json" +] + +function getPackages(){ + let workspaceRoot = process.cwd() + if(!fs.existsSync(path.join(workspaceRoot,"pnpm-workspace.yaml"))){ + console.log("命令只能在工作区根目录下执行") + return + } + // 获取包最后一次提交的时间 + const getLastCommitScript = "git log --format=%cd --date=iso -1 -- {packagePath}" + return fs.readdirSync(path.join(workspaceRoot,"packages")).map(packageName=>{ + const pkgFile = path.join(workspaceRoot,"packages",packageName,"package.json") + if(fs.existsSync(pkgFile)){ + const { name, version }= fs.readJSONSync(pkgFile) + const lastCommit = shelljs.exec(getLastCommitScript.replace("{packagePath}",`packages/${packageName}/package.json`), { silent: true }).stdout.trim() + return { + name, + version, + lastCommit + } + } + }).filter(pkgInfo=>pkgInfo) +} + +function assertInWorkspaceRoot(){ + const workspaceRoot = process.cwd() + if(!fs.existsSync(path.join(workspaceRoot,"pnpm-workspace.yaml"))){ + throw new Error("命令只能在工作区根目录下执行") + } +} + + +program + .command("publish") + .description("发布当前工作区下的包") + .option("-f, --force", "强制发布") + .option("-q, --query", "询问是否发布,否则会自动发布") + .option("-i, --version-increment-step [value]", "版本增长方式,取值major,minor,patch",'patch') + .action(options => { + const {versionIncrementStep} = options + const packageFolder = process.cwd() + const pkgFile = path.join(packageFolder,"package.json") + + // 由于每次发布均会更新npm version patch,并且需要提交代码 + const lastCommit = shelljs.exec(`git log --format=%cd --date=iso -1 -- ${pkgFile}`, { silent: true }).stdout.trim() + + // 增加版本号 + shelljs.exec(`npm version ${versionIncrementStep}`, { silent: true }).stdout.trim() + + // + shelljs.exec(`pnpm publish --access publish`, { silent: true }).stdout.trim() + + }) + +program + .command("list") + .description("列出各个包的最后一次提交时间和版本信息") + .action(options => { + assertInWorkspaceRoot() + + getPackages().forEach(package => { + //console.log(`${package.name}`) + if(package.lastCommit){ + console.log(`${package.name.padEnd(16)}\tVersion: ${package.version.padEnd(12)} lastCommit: ${dayjs(package.lastCommit).format("YYYY/MM/DD ")}(${dayjs(package.lastCommit).fromNow()}) `) + }else{ + console.log(`${package.name.padEnd(16)}\tVersion: ${package.version.padEnd(12)} lastCommit: None `) + } + }) + }) + + + +program.parse(process.argv); diff --git a/packages/autopublish/publishall.js b/packages/autopublish/publishall.js new file mode 100644 index 0000000..b59c492 --- /dev/null +++ b/packages/autopublish/publishall.js @@ -0,0 +1,43 @@ +/** + * 用于多包环境下的自动发布 + * + * + * { + * scripts:{ + * "publish":"autopublish [options]", + * } + * } + */ + + const fs = require("fs-extra"); + const path = require("path"); + const dayjs = require("dayjs"); + const shelljs = require("shelljs"); +const shelljs = require("shelljs"); +const createLogger = require("logsets"); +const commander = require("commander"); + +const dayjs = require("dayjs"); +const relativeTime = require("dayjs/plugin/relativeTime"); +dayjs.extend(relativeTime); + +const logger = createLogger(); + + +const program = commander() + + +program + .version("1.0.0") + .option("-v, --auto", "自动发布") + .option("-a, --auto", "启用自动发布") + .option("-p, --push []", "发布前执行git push") + .option("-m, --commit [message]", "发布前执行git commit") + .option("-v, --version", "默认版本升级,取值major,minor,patch") + .action((options) => { + + + + + })) + diff --git a/packages/autopublish/readme.md b/packages/autopublish/readme.md new file mode 100644 index 0000000..775db72 --- /dev/null +++ b/packages/autopublish/readme.md @@ -0,0 +1,5 @@ +[![fisher/voerka-i18n](https://gitee.com/zhangfisher/voerka-i18n/widgets/widget_card.svg?colors=4183c4,ffffff,ffffff,e3e9ed,666666,9b9b9b)](https://gitee.com/zhangfisher/voerka-i18n) + +`@voerkai18n/autopublish`辅助进行自动发布 + +源码与文档:[https://gitee.com/zhangfisher/voerka-i18n](https://gitee.com/zhangfisher/voerka-i18n) \ No newline at end of file diff --git a/packages/autopublish/utils.js b/packages/autopublish/utils.js new file mode 100644 index 0000000..95ffe49 --- /dev/null +++ b/packages/autopublish/utils.js @@ -0,0 +1,24 @@ +const shelljs = require("shelljs"); +const path = require("path") + + + +/** + * 检测当前工程是否是git工程 + */ +function isGitRepo(){ + return shelljs.exec("git status", {silent: true}).code === 0; +} + + +function getProjectName(){ + const pkgFile = path.join(process.cwd(), "package.json") + const pkg = fs.readJSONSync(pkgFile); + return pkg.name; +} + + +module.exports ={ + isMonorepo, + isGitRepo +} \ No newline at end of file diff --git a/packages/babel/index.js b/packages/babel/index.js index 995fff5..07faa7d 100644 --- a/packages/babel/index.js +++ b/packages/babel/index.js @@ -21,15 +21,15 @@ */ const fs = require("fs"); -const path = require("path"); -const { isPlainObject } = require("./utils"); - +const pathobj = require("path"); +const { getProjectRootFolder } = require("@voerkai18n/utils") + + const DefaultI18nPluginOptions = { translateFunctionName:"t", // 默认的翻译函数名称 // 翻译文件存放的目录,即编译后的语言文件的文件夹 - // 默认从当前目录下的languages文件夹中导入 - // 如果不存在则会 - location:"./languages", + // 默认从当前目录下的languages文件夹中导入 + location:"./", // 自动创建import {t} from "#/languages" 或 const { t } = require("#/languages") // 如果此值是空,则不会自动创建import语句 autoImport:"#/languages", @@ -42,6 +42,7 @@ const DefaultI18nPluginOptions = { idMap:{} } + /** * 判断当前是否是一个esmodule,判断依据是 * - 包含import语句 @@ -56,7 +57,6 @@ function isEsModule(path){ } } } - /** * 判断是否导入了翻译函数 * import { t } from "./i18n" @@ -67,7 +67,7 @@ function isEsModule(path){ function hasImportTranslateFunction(path){ for(let ele of path.node.body){ if(ele.type==="ImportDeclaration"){ - if(ele.specifiers.findIndex(s => s.type === "ImportSpecifier" && s.imported.name ==TRANSLATE_FUNCTION_NAME && s.local.name===TRANSLATE_FUNCTION_NAME)>-1){ + if(Array.isArray(ele.specifiers) && ele.specifiers.findIndex(s => (s.type === "ImportSpecifier") && (s.imported.name ==this.translateFunctionName) && (s.local.name===this.translateFunctionName))>-1){ return true } } @@ -76,24 +76,39 @@ function hasImportTranslateFunction(path){ function hasRequireTranslateFunction(path){ for(let ele of path.node.body){ if(ele.type==="VariableDeclaration"){ - if(ele.specifiers.findIndex(s => s.type === "ImportSpecifier" && s.imported.name ==TRANSLATE_FUNCTION_NAME && s.local.name===TRANSLATE_FUNCTION_NAME)>-1){ + if(Array.isArray(ele.specifiers) && ele.specifiers.findIndex(s => s.type === "ImportSpecifier" && s.imported.name ==this.translateFunctionName && s.local.name===this.translateFunctionName)>-1){ return true } } } } -function getIdMap(options){ - const { idMap,location } = options - if(isPlainObject(idMap) && Object.keys(idMap).length>0){ + +/** + * 读取idMap.js文件 + * @param {*} options + * @returns + */ +function readIdMapFile(options){ + let { idMap,location } = options + if(typeof(idMap)==="object" && Object.keys(idMap).length>0){ return idMap }else{ - let idMapFiles = [ - path.join((path.isAbsolute(location) ? location : path.join(process.cwd(),location)),"idMap.js"), - path.join((path.isAbsolute(location) ? path.join(location,"languages") : path.join(process.cwd(),location,"languages")),'idMap.js') - ] + let searchIdMapFiles = [] + if(!pathobj.isAbsolute(location)){ + location = pathobj.join(process.cwd(),location) + } + searchIdMapFiles.push(pathobj.join(location,"src","languages/idMap.js")) + searchIdMapFiles.push(pathobj.join(location,"languages/idMap.js")) + searchIdMapFiles.push(pathobj.join(location,"idMap.js")) + + let projectRoot = getProjectRootFolder(location) + searchIdMapFiles.push(pathobj.join(projectRoot,"src","languages/idMap.js")) + searchIdMapFiles.push(pathobj.join(projectRoot,"languages/idMap.js")) + searchIdMapFiles.push(pathobj.join(projectRoot,"idMap.js")) + let idMapFile - for( idMapFile of idMapFiles){ + for( idMapFile of searchIdMapFiles){ // 如果不存在idMap文件,则尝试从location/languages/中导入 if(fs.existsSync(idMapFile)){ try{ @@ -101,8 +116,7 @@ function getIdMap(options){ // 当require(idMap.js)失败时,对esm模块尝试采用直接读取的方式 return require(idMapFile) }catch(e){ - // 出错原因可能是因为无效require esm模块, - // 由于idMap.js文件格式相对简单,因此尝试直接读取解析 + // 出错原因可能是因为无效require esm模块,由于idMap.js文件格式相对简单,因此尝试直接读取解析 try{ let idMapContent = fs.readFileSync(idMapFile).toString() idMapContent = idMapContent.trim().replace(/^\s*export\s*default\s/g,"") @@ -126,20 +140,22 @@ module.exports = function voerkai18nPlugin(babel) { // 转码插件参数可以覆盖默认参数 Object.assign(pluginOptions,state.opts || {}); const { location ,autoImport, translateFunctionName,moduleType } = pluginOptions - idMap = getIdMap(pluginOptions) + if(Object.keys(idMap).length===0){ + idMap = readIdMapFile(pluginOptions) + } // 是否自动导入t函数 if(autoImport){ let module = moduleType === 'auto' ? isEsModule(path) ? 'esm' : 'cjs' : moduleType if(!["esm","es","cjs","commonjs"].includes(module)) module = 'esm' if(module === 'esm'){ // 如果没有定义t函数,则自动导入 - if(!hasImportTranslateFunction(path)){ + if(!hasImportTranslateFunction.call(pluginOptions, path)){ path.node.body.unshift(t.importDeclaration([ t.ImportSpecifier(t.identifier(translateFunctionName),t.identifier(translateFunctionName) )],t.stringLiteral(autoImport))) } }else{ - if(!hasRequireTranslateFunction(path)){ + if(!hasRequireTranslateFunction.call(pluginOptions, path)){ path.node.body.unshift(t.variableDeclaration("const",[ t.variableDeclarator( t.ObjectPattern([t.ObjectProperty(t.Identifier(translateFunctionName),t.Identifier(translateFunctionName),false,true)]), diff --git a/packages/babel/package.json b/packages/babel/package.json index f5b6ad9..fddd27d 100644 --- a/packages/babel/package.json +++ b/packages/babel/package.json @@ -1,6 +1,6 @@ { "name": "@voerkai18n/babel", - "version": "1.0.0", + "version": "1.0.3", "description": "VoerkaI18n babel plugin", "main": "index.js", "homepage": "https://gitee.com/zhangfisher/voerka-i18n", @@ -10,8 +10,11 @@ }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "publish": "npm publish -access public" + "release": "npm version patch && pnpm publish --no-git-checks --access public" }, "author": "", - "license": "ISC" + "license": "ISC", + "dependencies": { + "@voerkai18n/utils": "workspace:^1.0.0" + } } diff --git a/packages/babel/readme.md b/packages/babel/readme.md index 4a418c1..e942fdc 100644 --- a/packages/babel/readme.md +++ b/packages/babel/readme.md @@ -1,4 +1,7 @@ [![fisher/voerka-i18n](https://gitee.com/zhangfisher/voerka-i18n/widgets/widget_card.svg?colors=4183c4,ffffff,ffffff,e3e9ed,666666,9b9b9b)](https://gitee.com/zhangfisher/voerka-i18n) -# @voerkai18n/babel + `Babel`转码插件,用来对翻译文本进行自动转码 + + +源码与文档:[https://gitee.com/zhangfisher/voerka-i18n](https://gitee.com/zhangfisher/voerka-i18n) \ No newline at end of file diff --git a/packages/babel/utils.js b/packages/babel/utils.js deleted file mode 100644 index ca7718b..0000000 --- a/packages/babel/utils.js +++ /dev/null @@ -1,18 +0,0 @@ - -function isPlainObject(obj){ - if (typeof obj !== 'object' || obj === null) return false; - var proto = Object.getPrototypeOf(obj); - if (proto === null) return true; - var baseProto = proto; - - while (Object.getPrototypeOf(baseProto) !== null) { - baseProto = Object.getPrototypeOf(baseProto); - } - return proto === baseProto; -} - - - -module.exports = { - isPlainObject -} \ No newline at end of file diff --git a/packages/cli/compile.command.js b/packages/cli/compile.command.js index a2997a1..ab6d5bd 100644 --- a/packages/cli/compile.command.js +++ b/packages/cli/compile.command.js @@ -25,7 +25,8 @@ const glob = require("glob") const createLogger = require("logsets") const path = require("path") -const { t,findModuleType,getCurrentPackageJson} = require("./utils") +const { findModuleType,getCurrentPackageJson,installVoerkai18nRuntime,isInstallDependent} = require("@voerkai18n/utils") +const { t } = require("./i18nProxy") const fs = require("fs-extra") const logger = createLogger() const artTemplate = require("art-template") @@ -52,9 +53,7 @@ module.exports =async function compile(langFolder,opts={}){ // 加载多语言配置文件 const settingsFile = path.join(langFolder,"settings.json") - - try{ - + try{ // 读取多语言配置文件 const langSettings = fs.readJSONSync(settingsFile) @@ -125,8 +124,14 @@ module.exports =async function compile(langFolder,opts={}){ path.join(langFolder,"runtime.js") ) logger.log(t(" - 运行时: {}"),"runtime.js") - } - + }else{//如果不嵌入则需要安装运行时依赖 + if(!isInstallDependent("@voerkai18n/runtime")){ + installVoerkai18nRuntime(langFolder,moduleType) + logger.log(t(" - 安装运行时: {}"),"@voerkai18n/runtime") + }else{ + logger.log(t(" - 运行时{}已安装"),"@voerkai18n/runtime") + } + } const templateContext = { scopeId:projectPackageJson.name, inlineRuntime, diff --git a/packages/cli/extract.plugin.js b/packages/cli/extract.plugin.js index 3b75cc5..7f6e92a 100644 --- a/packages/cli/extract.plugin.js +++ b/packages/cli/extract.plugin.js @@ -10,7 +10,10 @@ const deepmerge = require("deepmerge") const path = require('path') const fs = require('fs-extra') const createLogger = require("logsets") -const { findModuleType,createPackageJsonFile,t } = require("./utils") +const { t } = require("./i18nProxy") +const { findModuleType } = require("@voerkai18n/utils") + + const logger = createLogger() diff --git a/packages/cli/i18nProxy.js b/packages/cli/i18nProxy.js new file mode 100644 index 0000000..dee0a2c --- /dev/null +++ b/packages/cli/i18nProxy.js @@ -0,0 +1,21 @@ + +let i18nScope,t +try{ + // @voerkai18n/cli工程本身使用了voerkai18n,即@voerkai18n/cli的extract和compile依赖于其自己生成的languages运行时 + // 而@voerkai18n/cli又用来编译多语言包,这样产生了鸡生蛋问题 + // extract与compile调试阶段如果t函数无法使用(即编译的languages无法正常使用),则需要提供t函数 + const language = require('./languages'); + t = language.t + i18nScope = language.i18nScope +}catch{ + t=v=>v + i18nScope={change:()=>{} } +} + + +module.exports = { + i18nScope, + t +} + + diff --git a/packages/cli/index.js b/packages/cli/index.js index 351a0a9..3ddb5ee 100644 --- a/packages/cli/index.js +++ b/packages/cli/index.js @@ -2,42 +2,13 @@ const { Command } = require('commander'); const createLogger = require("logsets") const path = require("path") const fs = require("fs-extra") -const deepmerge = require('deepmerge'); const logger = createLogger() -const { getCurrentProjectRootFolder,i18nScope ,t } = require("./utils") - +const { i18nScope ,t } = require("./i18nScope") +const { getProjectRootFolder, getProjectSourceFolder } = require("@voerkai18n/utils") const program = new Command(); -/** - * 根据当前输入的文件夹位置自动确定源码文件夹位置 - * - * - 如果没有指定,则取当前文件夹 - * - 如果指定是非绝对路径,则以当前文件夹作为base - * - 查找pack - * - 如果该文件夹中存在src,则取src下的文件夹 - * - - * - * @param {*} location - * @returns - */ -function getProjectSourceFolder(location){ - if(!location) { - location = process.cwd() - }else{ - if(!path.isAbsolute(location)){ - location = path.join(process.cwd(),location) - } - } - let projectRoot = getCurrentProjectRootFolder(location) - // 如果当前工程存在src文件夹,则自动使用该文件夹作为源文件夹 - if(fs.existsSync(path.join(projectRoot,"src"))){ - projectRoot = path.join(projectRoot,"src") - } - return projectRoot -} - program .command('init') .argument('[location]', t('工程项目所在目录')) diff --git a/packages/cli/init.command.js b/packages/cli/init.command.js index afbbf53..0fa5b27 100644 --- a/packages/cli/init.command.js +++ b/packages/cli/init.command.js @@ -4,30 +4,14 @@ */ -const { findModuleType,createPackageJsonFile,t,getCurrentProjectRootFolder } = require("./utils") const path = require("path") const fs = require("fs") const shelljs = require("shelljs") +const { t } = require("./i18nProxy") +const { findModuleType } = require("@voerkai18n/utils") const createLogger = require("logsets") const logger = createLogger() -/** - * 在当前工程自动安装@voerkai18n/runtime - * @param {*} langFolder - * @param {*} opts - */ - function installVoerkai18nRuntim(srcPath){ - const projectFolder = getCurrentProjectRootFolder(srcPath || process.cwd()) - if(fs.existsSync("pnpm-lock.yaml")){ - shelljs.exec("pnpm add @voerkai18n/runtime") - }else if(fs.existsSync("yarn.lock")){ - shelljs.exec("yarn add @voerkai18n/runtime") - }else{ - shelljs.exec("npm install @voerkai18n/runtime") - } -} - - module.exports = function(srcPath,{debug = true,languages=["cn","en"],defaultLanguage="cn",activeLanguage="cn",reset=false,installRuntime=true}={}){ // 语言文件夹名称 const langPath = "languages" @@ -38,7 +22,6 @@ module.exports = function(srcPath,{debug = true,languages=["cn","en"],defaultLan if(debug) logger.log(t("创建语言包文件夹: {}"),lngPath) } - // 创建settings.json文件 const settingsFile = path.join(lngPath,"settings.json") if(fs.existsSync(settingsFile) && !reset){ @@ -54,12 +37,6 @@ module.exports = function(srcPath,{debug = true,languages=["cn","en"],defaultLan // 写入配置文件 fs.writeFileSync(settingsFile,JSON.stringify(settings,null,4)) - - // 自动安装运行时@voerkai18n/runtime - // if(installRuntime){ - // logger.log(t("正在安装多语言运行时:{}"),"@voerkai18n/runtime") - // installVoerkai18nRuntim(srcPath) - // } if(debug) { logger.log(t("生成语言配置文件:{}"),"./languages/settings.json") diff --git a/packages/cli/package.json b/packages/cli/package.json index 4f48a64..9f7d339 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@voerkai18n/cli", - "version": "1.0.10", + "version": "1.0.11", "description": "VoerkaI18n command line interactive tools", "main": "index.js", "homepage": "https://gitee.com/zhangfisher/voerka-i18n", @@ -29,7 +29,8 @@ "dependencies": { "@babel/cli": "^7.17.6", "@babel/core": "^7.17.5", - "@voerkai18n/runtime": "workspace:^1.0.0", + "@voerkai18n/runtime": "workspace:^1.0.8", + "@voerkai18n/utils": "workspace:^1.0.0", "art-template": "^4.13.2", "commander": "^9.0.0", "cross-env": "^7.0.3", diff --git a/packages/cli/readme.md b/packages/cli/readme.md index 8ab058a..e31f8c0 100644 --- a/packages/cli/readme.md +++ b/packages/cli/readme.md @@ -1,64 +1,6 @@ [![fisher/voerka-i18n](https://gitee.com/zhangfisher/voerka-i18n/widgets/widget_card.svg?colors=4183c4,ffffff,ffffff,e3e9ed,666666,9b9b9b)](https://gitee.com/zhangfisher/voerka-i18n) -# VoerkaI18n命令行工具 `@VoerkaI18n/cli`实现初始化、文本提取和编译等命令 -## 初始化项目 - init - -```shell -初始化项目国际化配置 -Arguments: - location 工程项目所在目录 -Options: - -D, --debug 输出调试信息 - -r, --reset 重新生成当前项目的语言配置 - -lngs, --languages 支持的语言列表 (default: ["cn","en"]) - -d, --defaultLanguage 默认语言 - -a, --activeLanguage 激活语言 - -h, --help display help for command - - -``` - - -## 提取文本 - extract - -```shell - -扫描并提取所有待翻译的字符串到文件夹中 - -Arguments: - location 工程项目所在目录 (default: "./") - -Options: - -D, --debug 输出调试信息 - -lngs, --languages 支持的语言 - -d, --defaultLanguage 默认语言 - -a, --activeLanguage 激活语言 - -ns, --namespaces 翻译名称空间 - -e, --exclude 排除要扫描的文件夹,多个用逗号分隔 - -u, --updateMode 本次提取内容与已存在内容的数据合并策略,默认取值sync=同步,overwrite=覆盖,merge=合并 - -f, --filetypes 要扫描的文件类型 - -h, --help display help for command - -``` - -## 编译文本 - compile - -```shell - - Usage: voerkai18n compile [options] [location] - -编译指定项目的语言包 - -Arguments: - location 工程项目所在目录 (default: "./") - -Options: - -d, --debug 输出调试信息 - -m, --moduleType [types] 输出模块类型,取值auto,esm,cjs (default: "esm") - -h, --help display help for command - -``` - +源码与文档:[https://gitee.com/zhangfisher/voerka-i18n](https://gitee.com/zhangfisher/voerka-i18n) \ No newline at end of file diff --git a/packages/cli/templates/entry.js b/packages/cli/templates/entry.js index 34170f4..f059c3c 100644 --- a/packages/cli/templates/entry.js +++ b/packages/cli/templates/entry.js @@ -32,13 +32,13 @@ const scope = new i18nScope({ } }) // 翻译函数 -const t = translate.bind(scope) +const scopedTtranslate = translate.bind(scope) {{if moduleType === "esm"}} export { - t, - i18nScope as scope + scopedTtranslate as t, + scope as i18nScope } {{else}} -module.exports.t = t +module.exports.t = scopedTtranslate module.exports.i18nScope = scope {{/if}} diff --git a/packages/cli/utils.js b/packages/cli/utils.js deleted file mode 100644 index aa8cddc..0000000 --- a/packages/cli/utils.js +++ /dev/null @@ -1,186 +0,0 @@ -const path = require("path") -const fs = require("fs-extra") - -/** - * 返回当前项目根文件夹 - * 从指定文件夹folder向上查找package.json - * @param {*} folder - */ - function getCurrentProjectRootFolder(folder,exclueCurrent=false){ - try{ - const pkgFile =exclueCurrent ? - path.join(folder, "..", "package.json") - : path.join(folder, "package.json") - if(fs.existsSync(pkgFile)){ - return path.dirname(pkgFile) - } - const parent = path.dirname(folder) - if(parent===folder) return null - return getCurrentProjectRootFolder(parent,false) - }catch(e){ - return null - } -} - - -/** - * 读取指定文件夹的package.json文件,如果当前文件夹没有package.json文件,则向上查找 - * @param {*} folder - * @param {*} exclueCurrent = true 排除folder,从folder的父级开始查找 - * @returns - */ -function getCurrentPackageJson(folder,exclueCurrent=true){ - let projectFolder = getCurrentProjectRootFolder(folder,exclueCurrent) - if(projectFolder){ - return fs.readJSONSync(path.join(projectFolder,"package.json")) - } -} - -/** - * - * 返回当前项目的模块类型 - * - * 从当前文件夹开始向上查找package.json文件,并解析出语言包的类型 - * - * @param {*} folder - */ - function findModuleType(folder){ - let packageJson = getCurrentPackageJson(folder) - try{ - return packageJson.type || "commonjs" - }catch(e){ - return "esm" - } -} - - - - -function createPackageJsonFile(targetPath,moduleType="auto"){ - if(moduleType==="auto"){ - moduleType = findModuleType(targetPath) - } - const packageJsonFile = path.join(targetPath, "package.json") - if(["esm","es","module"].includes(moduleType)){ - fs.writeFileSync(packageJsonFile,JSON.stringify({type:"module",license:"MIT"},null,4)) - if(moduleType==="module"){ - moduleType = "esm" - } - }else{ - fs.writeFileSync(packageJsonFile,JSON.stringify({license:"MIT"},null,4)) - } - return moduleType -} - - -function isPlainObject(obj){ - if (typeof obj !== 'object' || obj === null) return false; - var proto = Object.getPrototypeOf(obj); - if (proto === null) return true; - var baseProto = proto; - - while (Object.getPrototypeOf(baseProto) !== null) { - baseProto = Object.getPrototypeOf(baseProto); - } - return proto === baseProto; -} -/** - * - * getExportContent({a:1}) == export let a = 1 - * - * @param {*} values - * @param {*} moduleType - * @returns - */ -function generateExportContents(values,{moduleType="esm",varExportDeclare="let"}={}){ - if(!isPlainObject(values)) throw new TypeError("export value must be a function or plain object") - let results = [] - let varExports = [] - let varExportSyntax = moduleType === "esm" ? `export ${varExportDeclare} ` : "module.exports." - let funcExportSyntax = moduleType === "esm" ? `export ` : "module.exports." - - Object.entries(values).forEach(([name,value])=>{ - if(Array.isArray(value) || isPlainObject(value)){ - results.push(`${varExportDeclare} ${name} = ${JSON.stringify(value,null,4)}`) - }else if(typeof(value)==="function"){ - if(value.prototype){ - results.push(value.toString()) - }else{// 箭头函数 - results.push(`const ${name} = ${value.toString()}`) - } - }else{ - results.push(`${varExportDeclare} ${name} = ${JSON.stringify(value)}`) - } - }) - - if(moduleType === "esm"){ - results.push(`export {\n\t${Object.keys(values).join(",\n\t")}\n}`) - }else{ fu - results.push(`module.exports = {\n\t${Object.keys(values).join(",\n\t")}\n}`) - } - - return results.join("\n") -} - -/** - * 创建js文件 - * @param {*} filename - * @param {*} defaultExports - * @param {*} namedExports {name:value} - * - * @param {*} moduleType - */ -function createJsModuleFile(filename,defaultExports={},namedExports={},moduleType="esm"){ - let jsContents = [] - if(moduleType === "esm"){ - Object.entries(namedExports).forEach(([name,value])=>{ - - }) - jsContents.push - }else{ - - } -} - -function escape(str){ - return str - .replaceAll("\\t","\t") - .replaceAll("\\n","\n") - .replaceAll("\\b","\b") - .replaceAll("\\r","\r") - .replaceAll("\\f","\f") - .replaceAll("\\'","\'") - .replaceAll('\\"','\"') - .replaceAll('\\v','\v') - .replaceAll("\\\\",'\\') -} - - -let i18nScope,t -try{ - // @voerkai18n/cli工程本身使用了voerkai18n,即@voerkai18n/cli的extract和compile依赖于其自己生成的languages运行时 - // 而@voerkai18n/cli又用来编译多语言包,这样产生了鸡生蛋问题 - // extract与compile调试阶段如果t函数无法使用(即编译的languages无法正常使用),则需要提供t函数 - const language = require('./languages'); - t = language.t - i18nScope = language.i18nScope -}catch{ - t=v=>v - i18nScope={change:()=>{} } -} - - - - -module.exports = { - findModuleType, - createPackageJsonFile, - isPlainObject, - getCurrentPackageJson, - getCurrentProjectRootFolder, - escape, - i18nScope, - t -} - - diff --git a/packages/formatters/package.json b/packages/formatters/package.json index 6af2f9d..ba1f6c8 100644 --- a/packages/formatters/package.json +++ b/packages/formatters/package.json @@ -4,7 +4,8 @@ "description": "", "main": "currency.formatters.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "echo \"Error: no test specified\" && exit 1", + "release": "npm version patch && pnpm publish --no-git-checks --access public" }, "exports":{ diff --git a/packages/runtime/dist/index.cjs b/packages/runtime/dist/index.cjs index 0023309..a9c7655 100644 --- a/packages/runtime/dist/index.cjs +++ b/packages/runtime/dist/index.cjs @@ -1,2 +1,2 @@ -"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};zE({global:!0},{globalThis:n});var r=n,e=function(t){return t&&t.Math==Math&&t},n=e("object"==(void 0===r?"undefined":NO(r))&&r)||e("object"==("undefined"==typeof window?"undefined":NO(window))&&window)||e("object"==("undefined"==typeof self?"undefined":NO(self))&&self)||e("object"==NO(t)&&t)||function(){return this}()||Function("return this")(),o=function(t){return"function"==typeof t},i=n.String,a=function(t){try{return i(t)}catch(t){return"Object"}},u=o,c=a,f=n.TypeError,s=function(t){if(u(t))return t;throw f(c(t)+" is not a function")},l=o,v=function(t){return"object"==NO(t)?null!==t:l(t)},h=n,p=v,g=h.String,d=h.TypeError,y=function(t){if(p(t))return t;throw d(g(t)+" is not an object")},m=function(t){try{return!!t()}catch(t){return!0}},b=mE,w=s,x=y;zE({target:"Reflect",stat:!0,forced:!m((function(){E((function(){}))}))},{apply:function(t,r,e){return b(w(t),r,x(e))}});var S={},E=S.Reflect.apply,O=function(t){return t&&t.Math==Math&&t},A=O("object"==(void 0===r?"undefined":NO(r))&&r)||O("object"==("undefined"==typeof window?"undefined":NO(window))&&window)||O("object"==("undefined"==typeof self?"undefined":NO(self))&&self)||O("object"==NO(t)&&t)||function(){return this}()||Function("return this")(),j={exports:{}},k={exports:{}},L=!m((function(){return 7!=US({},1,{get:function(){return 7}})[1]})),I={exports:{}},T=Math.ceil,_=Math.floor,P=function(t){var r=+t;return r!=r||0===r?0:(r>0?_:T)(r)},R=P,M=Math.max,F=Math.min,N=function(t,r){var e=R(t);return e<0?M(e+r,0):F(e,r)},C=P,D=Math.min,z=function(t){return t>0?D(C(t),9007199254740991):0},$=z,G=function(t){return $(t.length)},B=mS,U=N,W=G,V=function(t){return function(r,e,n){var o,i=B(r),a=W(i),u=U(n,a);if(t&&e!=e){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===e)return t||u||0;return!t&&-1}},Y={includes:V(!0),indexOf:V(!1)},H=m,J=function(t,r){var e=[][t];return!!e&&H((function(){e.call(null,r||function(){return 1},1)}))},q=zE,K=fO,X=ct(Y),Q=J,Z=K(ct([])),tt=!!Z&&1/Z([1],1,-0)<0,rt=Q("indexOf");q({target:"Array",proto:!0,forced:tt||!rt},{indexOf:function(t){var r=arguments.length>1?arguments[1]:void 0;return tt?Z(this,t,r)||0:X(this,t,r)}});var et=S,nt=function(t){return et[t+"Prototype"]},ot=ct(nt("Array")),it=sO,at=ot,ut=Array.prototype,ct=function(t){var r=ct(t);return t===ut||it(ut,t)&&r===ct(ut)?at:r};zE({target:"Array",stat:!0},{isArray:dt});var ft=S.Array.isArray,st=ft,lt=fO,vt=lt({}.toString),ht=lt(Bx("")),pt=function(t){return ht(vt(t),8,-1)},gt=pt,dt=st||function(t){return"Array"==gt(t)},yt={exports:{}},mt=n,bt=US,wt=function(t,r){try{bt(mt,t,{value:r,configurable:!0,writable:!0})}catch(e){mt[t]=r}return r},xt=n["__core-js_shared__"]||wt("__core-js_shared__",{}),St=xt;(yt.exports=function(t,r){return St[t]||(St[t]=void 0!==r?r:{})})("versions",[]).push({version:"3.21.1",mode:"pure",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE",source:"https://github.com/zloirock/core-js"});var Et=function(t){try{return!!t()}catch(t){return!0}},Ot=!Et((function(){var t,r=nO(t=function(){}).call(t);return"function"!=typeof r||r.hasOwnProperty("prototype")})),At=Ot,jt=Function.prototype,kt=nO(jt),Lt=jt.call,It=At&&nO(kt).call(kt,Lt,Lt),Tt=At?function(t){return t&&It(t)}:function(t){return t&&function(){return Lt.apply(t,arguments)}},_t=A.TypeError,Pt=function(t){if(null==t)throw _t("Can't call method on "+t);return t},Rt=Pt,Mt=A.Object,Ft=function(t){return Mt(Rt(t))},Nt=Ft,Ct=Tt({}.hasOwnProperty),Dt=Object.hasOwn||function(t,r){return Ct(Nt(t),r)};WO({target:"Object",stat:!0},{hasOwn:Dt});var zt=n.TypeError,$t=function(t){if(null==t)throw zt("Can't call method on "+t);return t},Gt=$t,Bt=n.Object,Ut=function(t){return Bt(Gt(t))},Wt=Ut,Vt=fO({}.hasOwnProperty),Yt=Object.hasOwn||function(t,r){return Vt(Wt(t),r)},Ht=fO,Jt=0,qt=Math.random(),Kt=Ht(1..toString),Xt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+Kt(++Jt+qt,36)},Qt=!Et((function(){return 7!=US({},1,{get:function(){return 7}})[1]})),Zt={exports:{}},tr=zE,rr=L,er=ur.f;tr({target:"Object",stat:!0,forced:ar!==er,sham:!rr},{defineProperties:er});var nr=S.Object,or=Zt.exports=function(t,r){return nr.defineProperties(t,r)};nr.defineProperties.sham&&(or.sham=!0);var ir=Zt.exports,ar=ir,ur={},cr=L&&m((function(){return 42!=US((function(){}),"prototype",{value:42,writable:!1}).prototype})),fr=function(t,r){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:r}},sr=LS,lr=fr,vr=L?function(t,r,e){return sr.f(t,r,lr(1,e))}:function(t,r,e){return t[r]=e,t},hr={},pr={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},gr=n,dr=nx,yr=vr,mr=hr,br=Hw("toStringTag");for(var wr in pr){var xr=gr[wr],Sr=xr&&xr.prototype;Sr&&dr(Sr)!==br&&yr(Sr,br,wr),mr[wr]=mr.Array}var Er=Tr(nt("Array")),Or=nx,Ar=Yt,jr=sO,kr=Er,Lr=Array.prototype,Ir={DOMTokenList:!0,NodeList:!0},Tr=function(t){var r=Tr(t);return t===Lr||jr(Lr,t)&&r===Tr(Lr)||Ar(Ir,Or(t))?kr:r},_r=Ut,Pr=Vr;zE({target:"Object",stat:!0,forced:m((function(){Pr(1)}))},{keys:function(t){return Pr(_r(t))}});var Rr=Tr(S.Object),Mr={},Fr=fO,Nr=Yt,Cr=mS,Dr=ct(Y),zr=Mr,$r=Fr([].push),Gr=function(t,r){var e,n=Cr(t),o=0,i=[];for(e in n)!Nr(zr,e)&&Nr(n,e)&&$r(i,e);for(;r.length>o;)Nr(n,e=r[o++])&&(~Dr(i,e)||$r(i,e));return i},Br=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ur=Gr,Wr=Br,Vr=Rr||function(t){return Ur(t,Wr)},Yr=L,Hr=cr,Jr=LS,qr=y,Kr=mS,Xr=Vr;ur.f=Yr&&!Hr?ar:function(t,r){qr(t);for(var e,n=Kr(r),o=Xr(r),i=o.length,a=0;i>a;)Jr.f(t,e=o[a++],n[e]);return t};var Qr,Zr=S,te=n,re=o,ee=function(t){return re(t)?t:void 0},ne=function(t,r){return arguments.length<2?ee(Zr[t])||ee(te[t]):Zr[t]&&Zr[t][r]||te[t]&&te[t][r]},oe=ne("document","documentElement"),ie=v,ae=n.document,ue=ie(ae)&&ie(ae.createElement),ce=function(t){return ue?ae.createElement(t):{}},fe=yt.exports,se=Xt,le=fe("keys"),ve=function(t){return le[t]||(le[t]=se(t))},he=y,pe=ur,ge=Br,de=Mr,ye=oe,me=ce,be=ve("IE_PROTO"),we=function(){},xe=function(t){return"中导入 + const setupScriptRegex = /(^\s*\)/gmi + if(setupScriptRegex.test(code)){ + code = code.replace(setupScriptRegex,`$1\nimport { t } from '${importSource}';`) + }else{// 如果没有中导入 + code = code.replace(/(^\s*\)/gmi,`$1\nimport { t } from '${importSource}';`) + } + } + return { + code, + map: null + } + } + }catch(e){ + console.warn(`vite-plugin-voerkai18n转换<${id}>文件出错:${e.message}`) + } + } + return { + code:src, + map: null + } + } + } +} diff --git a/packages/vite/package.json b/packages/vite/package.json new file mode 100644 index 0000000..af63354 --- /dev/null +++ b/packages/vite/package.json @@ -0,0 +1,15 @@ +{ + "name": "@voerkai18n/vite", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "release": "npm version patch && pnpm publish --no-git-checks --access public" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@voerkai18n/utils": "workspace:^1.0.0" + } +} diff --git a/packages/vite/readme.md b/packages/vite/readme.md new file mode 100644 index 0000000..5124500 --- /dev/null +++ b/packages/vite/readme.md @@ -0,0 +1,6 @@ +[![fisher/voerka-i18n](https://gitee.com/zhangfisher/voerka-i18n/widgets/widget_card.svg?colors=4183c4,ffffff,ffffff,e3e9ed,666666,9b9b9b)](https://gitee.com/zhangfisher/voerka-i18n) + + +`@voerkai18n/vite`插件用来进行自动文本映射和导入`t`函数 + +源码与文档:[https://gitee.com/zhangfisher/voerka-i18n](https://gitee.com/zhangfisher/voerka-i18n) \ No newline at end of file diff --git a/packages/vite/utils.js b/packages/vite/utils.js new file mode 100644 index 0000000..3f9788f --- /dev/null +++ b/packages/vite/utils.js @@ -0,0 +1,117 @@ +const path = require("path") + +/** + * + * 匹配指定路径或文件名称 + * + * const matcher = fileMatcher([ + * "", // 匹配正则表达式字符串 + * "!", // 以!开头代表否定匹配 + * /正则表达式/ + * ],{ + * basePath:"<指定一个基准目录,所有不是以此开头的均视为不匹配>", + * defaultPatterns:["<默认排除的模式>","<默认排除的模式>","<默认排除的模式>"], + * debug:false,是否输出调试信息,当=true时,.test()方法返回[,pattern] * + * }) + * + * + * + * + * @param {*} patterns + * @param {*} basePath 如果指定basePath,则所有不是以basePath开头的文件都排除 + * @param {*} defaultPatterns 默认的匹配模式 + * @param {*} debug 是否输出调试信息 + */ + + function fileMatcher(patterns,{basePath,defaultPatterns=[],debug=true}={}) { + if(basePath) { + basePath = path.normalize(basePath) + } + //[[pattern,exclude],[pattern,false],[pattern,true]] + let finalPatterns = [] + let inputPatterns = Array.isArray(patterns) ? patterns : (patterns ? [patterns] : []) + + // 默认排除模式 + if(defaultPatterns.length===0){ + finalPatterns.push([/.*\/node_modules\/.*/,true]) + finalPatterns.push([/.*\/languages\/.*/,true]) // 默认排除语言文件 + finalPatterns.push([/\.babelrc/,true]) + finalPatterns.push([/babel\.config\.js/,true]) + finalPatterns.push([/package\.json$/,true]) + finalPatterns.push([/vite\.config\.js$/,true]) + finalPatterns.push([/^plugin-vue:.*/,true]) + } + + inputPatterns.forEach(pattern=>{ + if(typeof pattern === "string"){ + pattern.replaceAll("**",".*") + pattern.replaceAll("?","[^\/]?") + pattern.replaceAll(/(? { + let isMatched = false + let file = filename + // 如果指定basePath,则文件名称必须是以basePath开头 + if(basePath){ + if(path.isAbsolute(file)){ + if(!path.normalize(file).startsWith(basePath)){ + return debug ? [false,`!^${basePath}`] : false + }else{ + isMatched = true + } + } + } + if(finalPatterns.length===0){ + return debug ? [true,"*"] : true + }else{ + for(const pattern of finalPatterns){ + pattern[0].lastIndex = 0 + if(pattern[1]===true){ + if(pattern[0].test(file)) return debug ? [false,pattern[0].toString()] : false + }else{ + if(pattern[0].test(file)) return debug ? [true,pattern[0].toString()] : true + } + } + } + return debug ? [isMatched,"*"] : isMatched + } + } +} + + +function getProjectRootFolder(folder,exclueCurrent=false){ + if(!path.isAbsolute(folder)){ + folder = path.join(process.cwd(),folder) + } + try{ + const pkgFile =exclueCurrent ? + path.join(folder, "..", "package.json") + : path.join(folder, "package.json") + if(fs.existsSync(pkgFile)){ + return path.dirname(pkgFile) + } + const parent = path.dirname(folder) + if(parent===folder) return null + return getProjectRootFolder(parent,false) + }catch(e){ + return process.cwd() + } +} + +module.exports = { + fileMatcher, + getProjectRootFolder +} \ No newline at end of file diff --git a/packages/vue/index.js b/packages/vue/index.js index 41c5c72..9a5cd5c 100644 --- a/packages/vue/index.js +++ b/packages/vue/index.js @@ -3,32 +3,55 @@ import { createApp } from 'vue' import Root from './App.vue' import i18nPlugin from '@voerkai18n/vue' - import { t, i18nScope } from './languages' + import { t,i18nScope } from './languages' const app = createApp(Root) - app.use(i18nPlugin,{ t,i18nScope }) + app.use(i18nPlugin,{ i18nScope }) app.mount('#app') */ +import { computed,reactive,ref } from "vue" export default { install: (app, opts={}) => { let options = Object.assign({ - t:message=>message, - i18nScope:null, - }, opts) + i18nScope:null, // 当前作用域实例 + forceUpdate:true, // 当语言切换时是否强制重新渲染 + }, opts) + + let i18nScope = options.i18nScope + if(i18nScope===null){ + console.warn("@voerkai18n/vue: i18nScope is not provided, use default i18nScope") + i18nScope = {change:()=>{}} + } + + // 插件只需要安装一次实例 + if(app.voerkai18n){ + return + } - let translate = options.t - if(typeof(translate)!=="function"){ - console.warn("@voerkai18n/vue: t function is not provided, use default t function") - translate = message=>message - } + let activeLanguage = ref(i18nScope.global.activeLanguage) + + // 当语言包发生变化时,强制重新渲染组件树 + i18nScope.global.on((newLanguage)=>{ + app._instance.update() + activeLanguage.value = newLanguage + }) - // 全局翻译函数 - app.config.globalProperties.t = function(){ - return options.t(...arguments) - } - - } + // 全局i18n对象 + app.voerkai18n = options.i18nScope.global + app.provide('i18n', reactive({ + activeLanguage: computed({ + get: () => activeLanguage, + set: (value) => i18nScope.global.change(value).then(()=>{ + if(options.forceUpdate){ + app._instance.update() + } + }) + }), + languages:i18nScope.global.languages, + defaultLanguage:i18nScope.global.defaultLanguage, + })) + } } \ No newline at end of file diff --git a/packages/vue/package.json b/packages/vue/package.json index 2ea05b6..b349843 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,16 +1,26 @@ { - "name": "@voerkai18n/vue", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC", - "devDependencies": { - "deepmerge": "^4.2.2", - "gulp": "^4.0.2", - "vinyl": "^2.2.1" - } -} + "name": "@voerkai18n/vue", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "release": "npm version patch && pnpm publish --no-git-checks --access public" + }, + "exports": { + ".": "./index.js", + "./vite-plugin-voerkai18n": "./vite-plugin-voerkai18n.js" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "deepmerge": "^4.2.2", + "gulp": "^4.0.2", + "vinyl": "^2.2.1" + }, + "dependencies": { + "minimatch": "^5.0.1", + "vite": "^2.8.6", + "vite-plugin-inspect": "^0.4.3" + } +} \ No newline at end of file diff --git a/packages/vue/readme.md b/packages/vue/readme.md index 8461f71..4ec5f4d 100644 --- a/packages/vue/readme.md +++ b/packages/vue/readme.md @@ -1,4 +1,5 @@ [![fisher/voerka-i18n](https://gitee.com/zhangfisher/voerka-i18n/widgets/widget_card.svg?colors=4183c4,ffffff,ffffff,e3e9ed,666666,9b9b9b)](https://gitee.com/zhangfisher/voerka-i18n) -# @voerkai18n/vue +@voerkai18n/vue插件,用来实现语言切换等功能。 +源码与文档:[https://gitee.com/zhangfisher/voerka-i18n](https://gitee.com/zhangfisher/voerka-i18n) \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d7f8ad1..406936c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,32 +4,37 @@ importers: .: specifiers: - '@babel/core': ^7.17.5 + '@babel/core': ^7.17.8 '@babel/plugin-transform-runtime': ^7.17.0 '@babel/preset-env': ^7.16.11 '@rollup/plugin-babel': ^5.3.1 '@rollup/plugin-commonjs': ^21.0.2 - dayjs: ^1.10.8 + dayjs: ^1.11.0 deepmerge: ^4.2.2 fs-extra: ^10.0.1 gulp: ^4.0.2 + inquirer: ^8.2.2 jest: ^27.5.1 - rollup: ^2.69.0 + logsets: ^1.0.8 + rollup: ^2.70.1 rollup-plugin-clear: ^2.0.7 shelljs: ^0.8.5 vinyl: ^2.2.1 + dependencies: + inquirer: registry.npmmirror.com/inquirer/8.2.2 devDependencies: - '@babel/core': 7.17.5 - '@babel/plugin-transform-runtime': 7.17.0_@babel+core@7.17.5 - '@babel/preset-env': 7.16.11_@babel+core@7.17.5 - '@rollup/plugin-babel': 5.3.1_@babel+core@7.17.5+rollup@2.69.0 - '@rollup/plugin-commonjs': 21.0.2_rollup@2.69.0 - dayjs: 1.10.8 + '@babel/core': 7.17.8 + '@babel/plugin-transform-runtime': 7.17.0_@babel+core@7.17.8 + '@babel/preset-env': 7.16.11_@babel+core@7.17.8 + '@rollup/plugin-babel': 5.3.1_@babel+core@7.17.8+rollup@2.70.1 + '@rollup/plugin-commonjs': 21.0.2_rollup@2.70.1 + dayjs: 1.11.0 deepmerge: 4.2.2 fs-extra: 10.0.1 gulp: 4.0.2 jest: 27.5.1 - rollup: 2.69.0 + logsets: registry.npmmirror.com/logsets/1.0.8 + rollup: 2.70.1 rollup-plugin-clear: 2.0.7 shelljs: 0.8.5 vinyl: 2.2.1 @@ -44,25 +49,61 @@ importers: packages/apps/vueapp: specifiers: - '@vitejs/plugin-vue': ^2.2.0 - '@voerkai18n/cli': workspace:^1.0.6 - vite: ^2.8.0 - vue: ^3.2.25 + '@babel/cli': ^7.17.6 + '@babel/core': ^7.17.8 + '@babel/plugin-transform-runtime': ^7.17.0 + '@babel/runtime': ^7.17.8 + '@babel/runtime-corejs3': ^7.17.8 + '@rollup/plugin-babel': ^5.3.1 + '@vitejs/plugin-legacy': ^1.7.1 + '@vitejs/plugin-vue': ^2.2.4 + '@voerkai18n/babel': workspace:^1.0.0 + '@voerkai18n/cli': workspace:^1.0.11 + '@voerkai18n/vue': workspace:^1.0.0 + babel-preset-env: ^1.7.0 + core-js: ^3.21.1 + vite: ^2.8.6 + vite-plugin-babel: ^1.0.0 + vite-plugin-inspect: ^0.4.3 + vue: ^3.2.31 dependencies: '@voerkai18n/cli': link:../../cli + '@voerkai18n/vue': link:../../vue vue: 3.2.31 devDependencies: + '@babel/cli': 7.17.6_@babel+core@7.17.8 + '@babel/core': 7.17.8 + '@babel/plugin-transform-runtime': 7.17.0_@babel+core@7.17.8 + '@babel/runtime': 7.17.8 + '@babel/runtime-corejs3': 7.17.8 + '@rollup/plugin-babel': 5.3.1_@babel+core@7.17.8+rollup@2.70.1 + '@vitejs/plugin-legacy': 1.7.1_vite@2.8.6 '@vitejs/plugin-vue': 2.2.4_vite@2.8.6+vue@3.2.31 + '@voerkai18n/babel': link:../../babel + babel-preset-env: 1.7.0 + core-js: 3.21.1 vite: 2.8.6 + vite-plugin-babel: 1.0.0_@babel+core@7.17.8+vite@2.8.6 + vite-plugin-inspect: 0.4.3_vite@2.8.6 + + packages/autopublish: + specifiers: + commander: ^9.0.0 + dependencies: + commander: registry.npmmirror.com/commander/9.0.0 packages/babel: - specifiers: {} + specifiers: + '@voerkai18n/utils': workspace:^1.0.0 + dependencies: + '@voerkai18n/utils': link:../utils packages/cli: specifiers: '@babel/cli': ^7.17.6 '@babel/core': ^7.17.5 - '@voerkai18n/runtime': workspace:^1.0.0 + '@voerkai18n/runtime': workspace:^1.0.8 + '@voerkai18n/utils': workspace:^1.0.0 art-template: ^4.13.2 commander: ^9.0.0 cross-env: ^7.0.3 @@ -78,6 +119,7 @@ importers: '@babel/cli': 7.17.6_@babel+core@7.17.5 '@babel/core': 7.17.5 '@voerkai18n/runtime': link:../runtime + '@voerkai18n/utils': link:../utils art-template: 4.13.2 commander: 9.0.0 cross-env: 7.0.3 @@ -120,10 +162,13 @@ importers: '@rollup/plugin-babel': ^5.3.1 '@rollup/plugin-commonjs': ^21.0.2 '@rollup/plugin-node-resolve': ^13.1.3 + '@voerkai18n/utils': workspace:^1.0.0 deepmerge: ^4.2.2 rollup: ^2.69.0 rollup-plugin-clear: ^2.0.7 rollup-plugin-terser: ^7.0.2 + dependencies: + '@voerkai18n/utils': link:../utils devDependencies: '@babel/cli': 7.17.6_@babel+core@7.17.5 '@babel/core': 7.17.5 @@ -138,11 +183,32 @@ importers: rollup-plugin-clear: 2.0.7 rollup-plugin-terser: 7.0.2_rollup@2.69.0 + packages/utils: + specifiers: + fs-extra: ^10.0.1 + shelljs: ^0.8.5 + dependencies: + fs-extra: registry.npmmirror.com/fs-extra/10.0.1 + shelljs: registry.npmmirror.com/shelljs/0.8.5 + + packages/vite: + specifiers: + '@voerkai18n/utils': workspace:^1.0.0 + dependencies: + '@voerkai18n/utils': link:../utils + packages/vue: specifiers: deepmerge: ^4.2.2 gulp: ^4.0.2 + minimatch: ^5.0.1 vinyl: ^2.2.1 + vite: ^2.8.6 + vite-plugin-inspect: ^0.4.3 + dependencies: + minimatch: registry.npmmirror.com/minimatch/5.0.1 + vite: 2.8.6 + vite-plugin-inspect: 0.4.3_vite@2.8.6 devDependencies: deepmerge: 4.2.2 gulp: 4.0.2 @@ -172,9 +238,30 @@ packages: make-dir: 2.1.0 slash: 2.0.0 source-map: 0.5.7 + optionalDependencies: + '@nicolo-ribaudo/chokidar-2': registry.npmmirror.com/@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents.3 + chokidar: registry.npmmirror.com/chokidar/3.5.3 + + /@babel/cli/7.17.6_@babel+core@7.17.8: + resolution: {integrity: sha512-l4w608nsDNlxZhiJ5tE3DbNmr61fIKMZ6fTBo171VEFuFMIYuJ3mHRhTLEkKKyvx2Mizkkv/0a8OJOnZqkKYNA==} + engines: {node: '>=6.9.0'} + hasBin: true + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@jridgewell/trace-mapping': 0.3.4 + commander: 4.1.1 + convert-source-map: 1.8.0 + fs-readdir-recursive: 1.1.0 + glob: 7.2.0 + make-dir: 2.1.0 + slash: 2.0.0 + source-map: 0.5.7 optionalDependencies: '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 chokidar: 3.5.3 + dev: true /@babel/code-frame/7.16.7: resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} @@ -186,6 +273,11 @@ packages: resolution: {integrity: sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==} engines: {node: '>=6.9.0'} + /@babel/compat-data/7.17.7: + resolution: {integrity: sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/core/7.17.5: resolution: {integrity: sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==} engines: {node: '>=6.9.0'} @@ -208,6 +300,29 @@ packages: transitivePeerDependencies: - supports-color + /@babel/core/7.17.8: + resolution: {integrity: sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.1.2 + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.17.7 + '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8 + '@babel/helper-module-transforms': 7.17.7 + '@babel/helpers': 7.17.8 + '@babel/parser': 7.17.8 + '@babel/template': 7.16.7 + '@babel/traverse': 7.17.3 + '@babel/types': 7.17.0 + convert-source-map: 1.8.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/generator/7.17.3: resolution: {integrity: sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==} engines: {node: '>=6.9.0'} @@ -216,6 +331,14 @@ packages: jsesc: 2.5.2 source-map: 0.5.7 + /@babel/generator/7.17.7: + resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + jsesc: 2.5.2 + source-map: 0.5.7 + /@babel/helper-annotate-as-pure/7.16.7: resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==} engines: {node: '>=6.9.0'} @@ -243,6 +366,32 @@ packages: browserslist: 4.19.3 semver: 6.3.0 + /@babel/helper-compilation-targets/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.17.0 + '@babel/core': 7.17.8 + '@babel/helper-validator-option': 7.16.7 + browserslist: 4.19.3 + semver: 6.3.0 + dev: true + + /@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.8: + resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.17.7 + '@babel/core': 7.17.8 + '@babel/helper-validator-option': 7.16.7 + browserslist: 4.20.2 + semver: 6.3.0 + dev: true + /@babel/helper-create-class-features-plugin/7.17.6_@babel+core@7.17.5: resolution: {integrity: sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==} engines: {node: '>=6.9.0'} @@ -261,6 +410,24 @@ packages: - supports-color dev: true + /@babel/helper-create-class-features-plugin/7.17.6_@babel+core@7.17.8: + resolution: {integrity: sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-environment-visitor': 7.16.7 + '@babel/helper-function-name': 7.16.7 + '@babel/helper-member-expression-to-functions': 7.16.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/helper-replace-supers': 7.16.7 + '@babel/helper-split-export-declaration': 7.16.7 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-create-regexp-features-plugin/7.17.0_@babel+core@7.17.5: resolution: {integrity: sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==} engines: {node: '>=6.9.0'} @@ -272,6 +439,17 @@ packages: regexpu-core: 5.0.1 dev: true + /@babel/helper-create-regexp-features-plugin/7.17.0_@babel+core@7.17.8: + resolution: {integrity: sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-annotate-as-pure': 7.16.7 + regexpu-core: 5.0.1 + dev: true + /@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.17.5: resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==} peerDependencies: @@ -290,6 +468,24 @@ packages: - supports-color dev: true + /@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.17.8: + resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.8 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/traverse': 7.17.3 + debug: 4.3.3 + lodash.debounce: 4.0.8 + resolve: 1.22.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-environment-visitor/7.16.7: resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} engines: {node: '>=6.9.0'} @@ -330,6 +526,13 @@ packages: '@babel/types': 7.17.0 dev: true + /@babel/helper-member-expression-to-functions/7.17.7: + resolution: {integrity: sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + dev: true + /@babel/helper-module-imports/7.16.7: resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} engines: {node: '>=6.9.0'} @@ -351,6 +554,22 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-module-transforms/7.17.7: + resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.16.7 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-simple-access': 7.17.7 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 + '@babel/template': 7.16.7 + '@babel/traverse': 7.17.3 + '@babel/types': 7.17.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-optimise-call-expression/7.16.7: resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==} engines: {node: '>=6.9.0'} @@ -379,7 +598,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-member-expression-to-functions': 7.16.7 + '@babel/helper-member-expression-to-functions': 7.17.7 '@babel/helper-optimise-call-expression': 7.16.7 '@babel/traverse': 7.17.3 '@babel/types': 7.17.0 @@ -393,6 +612,13 @@ packages: dependencies: '@babel/types': 7.17.0 + /@babel/helper-simple-access/7.17.7: + resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + dev: true + /@babel/helper-skip-transparent-expression-wrappers/7.16.0: resolution: {integrity: sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==} engines: {node: '>=6.9.0'} @@ -436,6 +662,17 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helpers/7.17.8: + resolution: {integrity: sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.16.7 + '@babel/traverse': 7.17.3 + '@babel/types': 7.17.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/highlight/7.16.10: resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==} engines: {node: '>=6.9.0'} @@ -449,6 +686,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + /@babel/parser/7.17.8: + resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==} + engines: {node: '>=6.0.0'} + hasBin: true + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==} engines: {node: '>=6.9.0'} @@ -459,6 +701,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==} engines: {node: '>=6.9.0'} @@ -471,6 +723,18 @@ packages: '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.5 dev: true + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 + '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.8 + dev: true + /@babel/plugin-proposal-async-generator-functions/7.16.8_@babel+core@7.17.5: resolution: {integrity: sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==} engines: {node: '>=6.9.0'} @@ -485,6 +749,20 @@ packages: - supports-color dev: true + /@babel/plugin-proposal-async-generator-functions/7.16.8_@babel+core@7.17.8: + resolution: {integrity: sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/helper-remap-async-to-generator': 7.16.8 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.8 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==} engines: {node: '>=6.9.0'} @@ -498,6 +776,19 @@ packages: - supports-color dev: true + /@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-class-static-block/7.17.6_@babel+core@7.17.5: resolution: {integrity: sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==} engines: {node: '>=6.9.0'} @@ -512,6 +803,20 @@ packages: - supports-color dev: true + /@babel/plugin-proposal-class-static-block/7.17.6_@babel+core@7.17.8: + resolution: {integrity: sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.8 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==} engines: {node: '>=6.9.0'} @@ -523,6 +828,17 @@ packages: '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.5 dev: true + /@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.8 + dev: true + /@babel/plugin-proposal-export-namespace-from/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==} engines: {node: '>=6.9.0'} @@ -534,6 +850,17 @@ packages: '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.5 dev: true + /@babel/plugin-proposal-export-namespace-from/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.8 + dev: true + /@babel/plugin-proposal-json-strings/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==} engines: {node: '>=6.9.0'} @@ -545,6 +872,17 @@ packages: '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.5 dev: true + /@babel/plugin-proposal-json-strings/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.8 + dev: true + /@babel/plugin-proposal-logical-assignment-operators/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==} engines: {node: '>=6.9.0'} @@ -556,6 +894,17 @@ packages: '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.5 dev: true + /@babel/plugin-proposal-logical-assignment-operators/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.8 + dev: true + /@babel/plugin-proposal-nullish-coalescing-operator/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==} engines: {node: '>=6.9.0'} @@ -567,6 +916,17 @@ packages: '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.5 dev: true + /@babel/plugin-proposal-nullish-coalescing-operator/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.8 + dev: true + /@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==} engines: {node: '>=6.9.0'} @@ -578,6 +938,17 @@ packages: '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.5 dev: true + /@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.8 + dev: true + /@babel/plugin-proposal-object-rest-spread/7.17.3_@babel+core@7.17.5: resolution: {integrity: sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==} engines: {node: '>=6.9.0'} @@ -592,6 +963,20 @@ packages: '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.5 dev: true + /@babel/plugin-proposal-object-rest-spread/7.17.3_@babel+core@7.17.8: + resolution: {integrity: sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.17.0 + '@babel/core': 7.17.8 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.8 + dev: true + /@babel/plugin-proposal-optional-catch-binding/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==} engines: {node: '>=6.9.0'} @@ -603,6 +988,17 @@ packages: '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.5 dev: true + /@babel/plugin-proposal-optional-catch-binding/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.8 + dev: true + /@babel/plugin-proposal-optional-chaining/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==} engines: {node: '>=6.9.0'} @@ -615,6 +1011,18 @@ packages: '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.5 dev: true + /@babel/plugin-proposal-optional-chaining/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.8 + dev: true + /@babel/plugin-proposal-private-methods/7.16.11_@babel+core@7.17.5: resolution: {integrity: sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==} engines: {node: '>=6.9.0'} @@ -628,6 +1036,19 @@ packages: - supports-color dev: true + /@babel/plugin-proposal-private-methods/7.16.11_@babel+core@7.17.8: + resolution: {integrity: sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-private-property-in-object/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==} engines: {node: '>=6.9.0'} @@ -643,6 +1064,21 @@ packages: - supports-color dev: true + /@babel/plugin-proposal-private-property-in-object/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.8 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-unicode-property-regex/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==} engines: {node: '>=4'} @@ -654,6 +1090,17 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-proposal-unicode-property-regex/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.5: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -663,12 +1110,21 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.17.5: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.8: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.17.8: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.5 + '@babel/core': 7.17.8 '@babel/helper-plugin-utils': 7.16.7 dev: true @@ -681,6 +1137,15 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.17.8: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.17.5: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} @@ -691,6 +1156,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.17.8: + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: @@ -700,6 +1175,15 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.17.8: + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: @@ -709,12 +1193,21 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.17.5: + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.17.8: + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.17.8: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.5 + '@babel/core': 7.17.8 '@babel/helper-plugin-utils': 7.16.7 dev: true @@ -727,6 +1220,15 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.8: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.5: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -736,6 +1238,15 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.8: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: @@ -745,6 +1256,15 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.8: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.5: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: @@ -754,6 +1274,15 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.8: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: @@ -763,6 +1292,15 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.8: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: @@ -772,6 +1310,15 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.8: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: @@ -781,6 +1328,15 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.8: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.17.5: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} @@ -791,6 +1347,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.17.8: + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.5: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} @@ -801,13 +1367,23 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-typescript/7.16.7_@babel+core@7.17.5: + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.8: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + + /@babel/plugin-syntax-typescript/7.16.7_@babel+core@7.17.8: resolution: {integrity: sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.5 + '@babel/core': 7.17.8 '@babel/helper-plugin-utils': 7.16.7 dev: true @@ -821,6 +1397,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-arrow-functions/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-async-to-generator/7.16.8_@babel+core@7.17.5: resolution: {integrity: sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==} engines: {node: '>=6.9.0'} @@ -835,6 +1421,20 @@ packages: - supports-color dev: true + /@babel/plugin-transform-async-to-generator/7.16.8_@babel+core@7.17.8: + resolution: {integrity: sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/helper-remap-async-to-generator': 7.16.8 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==} engines: {node: '>=6.9.0'} @@ -845,6 +1445,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-block-scoping/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==} engines: {node: '>=6.9.0'} @@ -855,6 +1465,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-block-scoping/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-classes/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==} engines: {node: '>=6.9.0'} @@ -874,6 +1494,25 @@ packages: - supports-color dev: true + /@babel/plugin-transform-classes/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-environment-visitor': 7.16.7 + '@babel/helper-function-name': 7.16.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/helper-replace-supers': 7.16.7 + '@babel/helper-split-export-declaration': 7.16.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-computed-properties/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==} engines: {node: '>=6.9.0'} @@ -884,6 +1523,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-computed-properties/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-destructuring/7.17.3_@babel+core@7.17.5: resolution: {integrity: sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==} engines: {node: '>=6.9.0'} @@ -894,6 +1543,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-destructuring/7.17.3_@babel+core@7.17.8: + resolution: {integrity: sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==} engines: {node: '>=6.9.0'} @@ -905,6 +1564,17 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-duplicate-keys/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==} engines: {node: '>=6.9.0'} @@ -915,6 +1585,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-duplicate-keys/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-exponentiation-operator/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==} engines: {node: '>=6.9.0'} @@ -926,6 +1606,17 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-exponentiation-operator/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.16.7 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-for-of/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==} engines: {node: '>=6.9.0'} @@ -936,6 +1627,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-for-of/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==} engines: {node: '>=6.9.0'} @@ -948,6 +1649,18 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.8 + '@babel/helper-function-name': 7.16.7 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-literals/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==} engines: {node: '>=6.9.0'} @@ -958,6 +1671,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-literals/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==} engines: {node: '>=6.9.0'} @@ -968,6 +1691,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-modules-amd/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==} engines: {node: '>=6.9.0'} @@ -982,6 +1715,20 @@ packages: - supports-color dev: true + /@babel/plugin-transform-modules-amd/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-module-transforms': 7.17.6 + '@babel/helper-plugin-utils': 7.16.7 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-modules-commonjs/7.16.8_@babel+core@7.17.5: resolution: {integrity: sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==} engines: {node: '>=6.9.0'} @@ -997,6 +1744,21 @@ packages: - supports-color dev: true + /@babel/plugin-transform-modules-commonjs/7.16.8_@babel+core@7.17.8: + resolution: {integrity: sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-module-transforms': 7.17.6 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/helper-simple-access': 7.16.7 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-modules-systemjs/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==} engines: {node: '>=6.9.0'} @@ -1013,6 +1775,22 @@ packages: - supports-color dev: true + /@babel/plugin-transform-modules-systemjs/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-hoist-variables': 7.16.7 + '@babel/helper-module-transforms': 7.17.6 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-modules-umd/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==} engines: {node: '>=6.9.0'} @@ -1026,6 +1804,19 @@ packages: - supports-color dev: true + /@babel/plugin-transform-modules-umd/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-module-transforms': 7.17.6 + '@babel/helper-plugin-utils': 7.16.7 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-named-capturing-groups-regex/7.16.8_@babel+core@7.17.5: resolution: {integrity: sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==} engines: {node: '>=6.9.0'} @@ -1036,6 +1827,16 @@ packages: '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.5 dev: true + /@babel/plugin-transform-named-capturing-groups-regex/7.16.8_@babel+core@7.17.8: + resolution: {integrity: sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.8 + dev: true + /@babel/plugin-transform-new-target/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==} engines: {node: '>=6.9.0'} @@ -1046,6 +1847,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-new-target/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-object-super/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==} engines: {node: '>=6.9.0'} @@ -1059,6 +1870,19 @@ packages: - supports-color dev: true + /@babel/plugin-transform-object-super/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/helper-replace-supers': 7.16.7 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-parameters/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==} engines: {node: '>=6.9.0'} @@ -1069,6 +1893,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-parameters/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==} engines: {node: '>=6.9.0'} @@ -1079,6 +1913,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-regenerator/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==} engines: {node: '>=6.9.0'} @@ -1089,6 +1933,16 @@ packages: regenerator-transform: 0.14.5 dev: true + /@babel/plugin-transform-regenerator/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + regenerator-transform: 0.14.5 + dev: true + /@babel/plugin-transform-reserved-words/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==} engines: {node: '>=6.9.0'} @@ -1099,6 +1953,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-reserved-words/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-runtime/7.17.0_@babel+core@7.17.5: resolution: {integrity: sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==} engines: {node: '>=6.9.0'} @@ -1116,6 +1980,23 @@ packages: - supports-color dev: true + /@babel/plugin-transform-runtime/7.17.0_@babel+core@7.17.8: + resolution: {integrity: sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-plugin-utils': 7.16.7 + babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.8 + babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.8 + babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.8 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==} engines: {node: '>=6.9.0'} @@ -1126,6 +2007,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-spread/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==} engines: {node: '>=6.9.0'} @@ -1137,6 +2028,17 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 dev: true + /@babel/plugin-transform-spread/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 + dev: true + /@babel/plugin-transform-sticky-regex/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==} engines: {node: '>=6.9.0'} @@ -1147,6 +2049,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-sticky-regex/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-template-literals/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==} engines: {node: '>=6.9.0'} @@ -1157,6 +2069,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-template-literals/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-typeof-symbol/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==} engines: {node: '>=6.9.0'} @@ -1167,6 +2089,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-typeof-symbol/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==} engines: {node: '>=6.9.0'} @@ -1177,6 +2109,16 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-transform-unicode-regex/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==} engines: {node: '>=6.9.0'} @@ -1188,6 +2130,17 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-unicode-regex/7.16.7_@babel+core@7.17.8: + resolution: {integrity: sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/preset-env/7.16.11_@babel+core@7.17.5: resolution: {integrity: sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==} engines: {node: '>=6.9.0'} @@ -1273,6 +2226,91 @@ packages: - supports-color dev: true + /@babel/preset-env/7.16.11_@babel+core@7.17.8: + resolution: {integrity: sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.17.0 + '@babel/core': 7.17.8 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/helper-validator-option': 7.16.7 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-async-generator-functions': 7.16.8_@babel+core@7.17.8 + '@babel/plugin-proposal-class-properties': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-class-static-block': 7.17.6_@babel+core@7.17.8 + '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-export-namespace-from': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-json-strings': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-logical-assignment-operators': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-object-rest-spread': 7.17.3_@babel+core@7.17.8 + '@babel/plugin-proposal-optional-catch-binding': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-private-methods': 7.16.11_@babel+core@7.17.8 + '@babel/plugin-proposal-private-property-in-object': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.8 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.8 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.8 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.8 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.8 + '@babel/plugin-transform-arrow-functions': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-async-to-generator': 7.16.8_@babel+core@7.17.8 + '@babel/plugin-transform-block-scoped-functions': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-block-scoping': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-classes': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-computed-properties': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-destructuring': 7.17.3_@babel+core@7.17.8 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-duplicate-keys': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-exponentiation-operator': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-for-of': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-literals': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-member-expression-literals': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-modules-amd': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-modules-commonjs': 7.16.8_@babel+core@7.17.8 + '@babel/plugin-transform-modules-systemjs': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-modules-umd': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-named-capturing-groups-regex': 7.16.8_@babel+core@7.17.8 + '@babel/plugin-transform-new-target': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-object-super': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-regenerator': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-reserved-words': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-shorthand-properties': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-spread': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-sticky-regex': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-template-literals': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-typeof-symbol': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-unicode-escapes': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-unicode-regex': 7.16.7_@babel+core@7.17.8 + '@babel/preset-modules': 0.1.5_@babel+core@7.17.8 + '@babel/types': 7.17.0 + babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.8 + babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.8 + babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.8 + core-js-compat: 3.21.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/preset-modules/0.1.5_@babel+core@7.17.5: resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: @@ -1286,18 +2324,32 @@ packages: esutils: 2.0.3 dev: true + /@babel/preset-modules/0.1.5_@babel+core@7.17.8: + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.8 + '@babel/types': 7.17.0 + esutils: 2.0.3 + dev: true + /@babel/runtime-corejs3/7.17.2: - resolution: {integrity: sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz} + resolution: {integrity: sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==} engines: {node: '>=6.9.0'} dependencies: core-js-pure: 3.21.1 regenerator-runtime: 0.13.9 dev: false - /@babel/runtime/7.17.2: - resolution: {integrity: sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==} + /@babel/runtime-corejs3/7.17.8: + resolution: {integrity: sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==} engines: {node: '>=6.9.0'} dependencies: + core-js-pure: 3.21.1 regenerator-runtime: 0.13.9 dev: true @@ -1305,7 +2357,12 @@ packages: resolution: {integrity: sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.9 + regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.9 + dev: true + + /@babel/standalone/7.17.8: + resolution: {integrity: sha512-tr3SDpVnxR/fzrxyG+HZPAyEA9eTHZIAjy4eqrc7m+KBwsdo1YvTbUfJ6teWHQ177mk6GmdmltsIiOYCcvRPWA==} + engines: {node: '>=6.9.0'} dev: true /@babel/template/7.16.7: @@ -1313,7 +2370,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.7 - '@babel/parser': 7.17.3 + '@babel/parser': 7.17.8 '@babel/types': 7.17.0 /@babel/traverse/7.17.3: @@ -1321,14 +2378,14 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.7 - '@babel/generator': 7.17.3 + '@babel/generator': 7.17.7 '@babel/helper-environment-visitor': 7.16.7 '@babel/helper-function-name': 7.16.7 '@babel/helper-hoist-variables': 7.16.7 '@babel/helper-split-export-declaration': 7.16.7 - '@babel/parser': 7.17.3 + '@babel/parser': 7.17.8 '@babel/types': 7.17.0 - debug: 4.3.3 + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -1365,7 +2422,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -1386,7 +2443,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 @@ -1405,7 +2462,7 @@ packages: jest-util: 27.5.1 jest-validate: 27.5.1 jest-watcher: 27.5.1 - micromatch: 4.0.4 + micromatch: 4.0.5 rimraf: 3.0.2 slash: 3.0.0 strip-ansi: 6.0.1 @@ -1423,7 +2480,7 @@ packages: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 jest-mock: 27.5.1 dev: true @@ -1433,7 +2490,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 17.0.21 + '@types/node': 17.0.23 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -1462,7 +2519,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -1521,7 +2578,7 @@ packages: resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.17.5 + '@babel/core': 7.17.8 '@jest/types': 27.5.1 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -1531,7 +2588,7 @@ packages: jest-haste-map: 27.5.1 jest-regex-util: 27.5.1 jest-util: 27.5.1 - micromatch: 4.0.4 + micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 source-map: 0.6.1 @@ -1546,7 +2603,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 '@types/yargs': 16.0.4 chalk: 4.1.2 dev: true @@ -1567,8 +2624,12 @@ packages: /@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents.3: resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} requiresBuild: true + dev: true optional: true + /@polka/url/1.0.0-next.21: + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + /@rollup/plugin-babel/5.3.1_@babel+core@7.17.5+rollup@2.69.0: resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -1586,6 +2647,23 @@ packages: rollup: 2.69.0 dev: true + /@rollup/plugin-babel/5.3.1_@babel+core@7.17.8+rollup@2.70.1: + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-module-imports': 7.16.7 + '@rollup/pluginutils': 3.1.0_rollup@2.70.1 + rollup: 2.70.1 + dev: true + /@rollup/plugin-commonjs/21.0.2_rollup@2.69.0: resolution: {integrity: sha512-d/OmjaLVO4j/aQX69bwpWPpbvI3TJkQuxoAk7BH8ew1PyoMBLTOuvJTjzG8oEoW7drIIqB0KCJtfFLu/2GClWg==} engines: {node: '>= 8.0.0'} @@ -1602,6 +2680,22 @@ packages: rollup: 2.69.0 dev: true + /@rollup/plugin-commonjs/21.0.2_rollup@2.70.1: + resolution: {integrity: sha512-d/OmjaLVO4j/aQX69bwpWPpbvI3TJkQuxoAk7BH8ew1PyoMBLTOuvJTjzG8oEoW7drIIqB0KCJtfFLu/2GClWg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^2.38.3 + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.70.1 + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 7.2.0 + is-reference: 1.2.1 + magic-string: 0.25.9 + resolve: 1.22.0 + rollup: 2.70.1 + dev: true + /@rollup/plugin-node-resolve/13.1.3_rollup@2.69.0: resolution: {integrity: sha512-BdxNk+LtmElRo5d06MGY4zoepyrXX1tkzX2hrnPEZ53k78GuOMWLqmJDGIIOPwVRIFZrLQOo+Yr6KtCuLIA0AQ==} engines: {node: '>= 10.0.0'} @@ -1629,6 +2723,25 @@ packages: rollup: 2.69.0 dev: true + /@rollup/pluginutils/3.1.0_rollup@2.70.1: + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.70.1 + dev: true + + /@rollup/pluginutils/4.2.0: + resolution: {integrity: sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + /@sinonjs/commons/1.8.3: resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} dependencies: @@ -1646,10 +2759,10 @@ packages: engines: {node: '>= 6'} dev: true - /@types/babel__core/7.1.18: - resolution: {integrity: sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==} + /@types/babel__core/7.1.19: + resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} dependencies: - '@babel/parser': 7.17.3 + '@babel/parser': 7.17.8 '@babel/types': 7.17.0 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 @@ -1665,7 +2778,7 @@ packages: /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.17.3 + '@babel/parser': 7.17.8 '@babel/types': 7.17.0 dev: true @@ -1686,7 +2799,7 @@ packages: /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 17.0.21 + '@types/node': 17.0.23 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -1709,6 +2822,10 @@ packages: resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==} dev: true + /@types/node/17.0.23: + resolution: {integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==} + dev: true + /@types/prettier/2.4.4: resolution: {integrity: sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==} dev: true @@ -1723,14 +2840,28 @@ packages: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true - /@types/yargs-parser/20.2.1: - resolution: {integrity: sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==} + /@types/yargs-parser/21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true /@types/yargs/16.0.4: resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==} dependencies: - '@types/yargs-parser': 20.2.1 + '@types/yargs-parser': 21.0.0 + dev: true + + /@vitejs/plugin-legacy/1.7.1_vite@2.8.6: + resolution: {integrity: sha512-RqgILXsGpfV7NHodVCdBVau8ss5+ynMXp6JGF/F7nhSy0bnwSQPlMS3KFqh7twfifXK8VuMriqfU4CxOiqmNnA==} + engines: {node: '>=12.0.0'} + peerDependencies: + vite: ^2.8.0 + dependencies: + '@babel/standalone': 7.17.8 + core-js: 3.21.1 + magic-string: 0.25.9 + regenerator-runtime: 0.13.9 + systemjs: 6.12.1 + vite: 2.8.6 dev: true /@vitejs/plugin-vue/2.2.4_vite@2.8.6+vue@3.2.31: @@ -1747,7 +2878,7 @@ packages: /@vue/compiler-core/3.2.31: resolution: {integrity: sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==} dependencies: - '@babel/parser': 7.17.3 + '@babel/parser': 7.17.8 '@vue/shared': 3.2.31 estree-walker: 2.0.2 source-map: 0.6.1 @@ -1763,7 +2894,7 @@ packages: /@vue/compiler-sfc/3.2.31: resolution: {integrity: sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==} dependencies: - '@babel/parser': 7.17.3 + '@babel/parser': 7.17.8 '@vue/compiler-core': 3.2.31 '@vue/compiler-dom': 3.2.31 '@vue/compiler-ssr': 3.2.31 @@ -1785,7 +2916,7 @@ packages: /@vue/reactivity-transform/3.2.31: resolution: {integrity: sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==} dependencies: - '@babel/parser': 7.17.3 + '@babel/parser': 7.17.8 '@vue/compiler-core': 3.2.31 '@vue/shared': 3.2.31 estree-walker: 2.0.2 @@ -1865,7 +2996,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.3 + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -1892,12 +3023,18 @@ packages: /ansi-regex/2.1.1: resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=} engines: {node: '>=0.10.0'} + dev: true /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} dev: true + /ansi-styles/2.2.1: + resolution: {integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=} + engines: {node: '>=0.10.0'} + dev: true + /ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -1921,15 +3058,9 @@ packages: engines: {node: '>=0.10.0'} /ansicolor/1.1.100: - resolution: {integrity: sha512-Jl0pxRfa9WaQVUX57AB8/V2my6FJxrOR1Pp2qqFbig20QB4HzUoQ48THTKAgHlUCJeQm/s2WoOPcoIDhyCL/kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/ansicolor/-/ansicolor-1.1.100.tgz} + resolution: {integrity: sha512-Jl0pxRfa9WaQVUX57AB8/V2my6FJxrOR1Pp2qqFbig20QB4HzUoQ48THTKAgHlUCJeQm/s2WoOPcoIDhyCL/kw==} dev: false - /anymatch/2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -2054,25 +3185,139 @@ packages: engines: {node: '>= 4.5.0'} hasBin: true - /babel-jest/27.5.1_@babel+core@7.17.5: + /babel-code-frame/6.26.0: + resolution: {integrity: sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=} + dependencies: + chalk: 1.1.3 + esutils: 2.0.3 + js-tokens: 3.0.2 + dev: true + + /babel-helper-builder-binary-assignment-operator-visitor/6.24.1: + resolution: {integrity: sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=} + dependencies: + babel-helper-explode-assignable-expression: 6.24.1 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-helper-call-delegate/6.24.1: + resolution: {integrity: sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=} + dependencies: + babel-helper-hoist-variables: 6.24.1 + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-helper-define-map/6.26.0: + resolution: {integrity: sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=} + dependencies: + babel-helper-function-name: 6.24.1 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + lodash: 4.17.21 + dev: true + + /babel-helper-explode-assignable-expression/6.24.1: + resolution: {integrity: sha1-8luCz33BBDPFX3BZLVdGQArCLKo=} + dependencies: + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-helper-function-name/6.24.1: + resolution: {integrity: sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=} + dependencies: + babel-helper-get-function-arity: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-helper-get-function-arity/6.24.1: + resolution: {integrity: sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-helper-hoist-variables/6.24.1: + resolution: {integrity: sha1-HssnaJydJVE+rbyZFKc/VAi+enY=} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-helper-optimise-call-expression/6.24.1: + resolution: {integrity: sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-helper-regex/6.26.0: + resolution: {integrity: sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + lodash: 4.17.21 + dev: true + + /babel-helper-remap-async-to-generator/6.24.1: + resolution: {integrity: sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=} + dependencies: + babel-helper-function-name: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-helper-replace-supers/6.24.1: + resolution: {integrity: sha1-v22/5Dk40XNpohPKiov3S2qQqxo=} + dependencies: + babel-helper-optimise-call-expression: 6.24.1 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-jest/27.5.1_@babel+core@7.17.8: resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.17.5 + '@babel/core': 7.17.8 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/babel__core': 7.1.18 + '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.5.1_@babel+core@7.17.5 - chalk: 4.1.2 + babel-preset-jest: 27.5.1_@babel+core@7.17.8 + chalk: registry.npmmirror.com/chalk/4.1.2 graceful-fs: 4.2.9 slash: 3.0.0 transitivePeerDependencies: - supports-color dev: true + /babel-messages/6.23.0: + resolution: {integrity: sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=} + dependencies: + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-check-es2015-constants/6.22.0: + resolution: {integrity: sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=} + dependencies: + babel-runtime: 6.26.0 + dev: true + /babel-plugin-dynamic-import-node/2.3.3: resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} dependencies: @@ -2098,7 +3343,7 @@ packages: dependencies: '@babel/template': 7.16.7 '@babel/types': 7.17.0 - '@types/babel__core': 7.1.18 + '@types/babel__core': 7.1.19 '@types/babel__traverse': 7.14.2 dev: true @@ -2115,6 +3360,19 @@ packages: - supports-color dev: true + /babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.17.8: + resolution: {integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.17.0 + '@babel/core': 7.17.8 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.8 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.17.5: resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==} peerDependencies: @@ -2127,6 +3385,18 @@ packages: - supports-color dev: true + /babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.17.8: + resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.8 + core-js-compat: 3.21.1 + transitivePeerDependencies: + - supports-color + dev: true + /babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.17.5: resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==} peerDependencies: @@ -2138,35 +3408,335 @@ packages: - supports-color dev: true - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.17.5: + /babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.17.8: + resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.8 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.8 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-syntax-async-functions/6.13.0: + resolution: {integrity: sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=} + dev: true + + /babel-plugin-syntax-exponentiation-operator/6.13.0: + resolution: {integrity: sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=} + dev: true + + /babel-plugin-syntax-trailing-function-commas/6.22.0: + resolution: {integrity: sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=} + dev: true + + /babel-plugin-transform-async-to-generator/6.24.1: + resolution: {integrity: sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=} + dependencies: + babel-helper-remap-async-to-generator: 6.24.1 + babel-plugin-syntax-async-functions: 6.13.0 + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-arrow-functions/6.22.0: + resolution: {integrity: sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=} + dependencies: + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-block-scoped-functions/6.22.0: + resolution: {integrity: sha1-u8UbSflk1wy42OC5ToICRs46YUE=} + dependencies: + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-block-scoping/6.26.0: + resolution: {integrity: sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=} + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + lodash: 4.17.21 + dev: true + + /babel-plugin-transform-es2015-classes/6.24.1: + resolution: {integrity: sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=} + dependencies: + babel-helper-define-map: 6.26.0 + babel-helper-function-name: 6.24.1 + babel-helper-optimise-call-expression: 6.24.1 + babel-helper-replace-supers: 6.24.1 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-computed-properties/6.24.1: + resolution: {integrity: sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=} + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-destructuring/6.23.0: + resolution: {integrity: sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=} + dependencies: + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-duplicate-keys/6.24.1: + resolution: {integrity: sha1-c+s9MQypaePvnskcU3QabxV2Qj4=} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-for-of/6.23.0: + resolution: {integrity: sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=} + dependencies: + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-function-name/6.24.1: + resolution: {integrity: sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=} + dependencies: + babel-helper-function-name: 6.24.1 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-literals/6.22.0: + resolution: {integrity: sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=} + dependencies: + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-modules-amd/6.24.1: + resolution: {integrity: sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=} + dependencies: + babel-plugin-transform-es2015-modules-commonjs: 6.26.2 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-modules-commonjs/6.26.2: + resolution: {integrity: sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==} + dependencies: + babel-plugin-transform-strict-mode: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-modules-systemjs/6.24.1: + resolution: {integrity: sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=} + dependencies: + babel-helper-hoist-variables: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-modules-umd/6.24.1: + resolution: {integrity: sha1-rJl+YoXNGO1hdq22B9YCNErThGg=} + dependencies: + babel-plugin-transform-es2015-modules-amd: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-object-super/6.24.1: + resolution: {integrity: sha1-JM72muIcuDp/hgPa0CH1cusnj40=} + dependencies: + babel-helper-replace-supers: 6.24.1 + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-parameters/6.24.1: + resolution: {integrity: sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=} + dependencies: + babel-helper-call-delegate: 6.24.1 + babel-helper-get-function-arity: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-shorthand-properties/6.24.1: + resolution: {integrity: sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-spread/6.22.0: + resolution: {integrity: sha1-1taKmfia7cRTbIGlQujdnxdG+NE=} + dependencies: + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-sticky-regex/6.24.1: + resolution: {integrity: sha1-AMHNsaynERLN8M9hJsLta0V8zbw=} + dependencies: + babel-helper-regex: 6.26.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-template-literals/6.22.0: + resolution: {integrity: sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=} + dependencies: + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-typeof-symbol/6.23.0: + resolution: {integrity: sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=} + dependencies: + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-es2015-unicode-regex/6.24.1: + resolution: {integrity: sha1-04sS9C6nMj9yk4fxinxa4frrNek=} + dependencies: + babel-helper-regex: 6.26.0 + babel-runtime: 6.26.0 + regexpu-core: 2.0.0 + dev: true + + /babel-plugin-transform-exponentiation-operator/6.24.1: + resolution: {integrity: sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=} + dependencies: + babel-helper-builder-binary-assignment-operator-visitor: 6.24.1 + babel-plugin-syntax-exponentiation-operator: 6.13.0 + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-transform-regenerator/6.26.0: + resolution: {integrity: sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=} + dependencies: + regenerator-transform: 0.10.1 + dev: true + + /babel-plugin-transform-strict-mode/6.24.1: + resolution: {integrity: sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.17.8: resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.5 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.5 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.17.5 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.5 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.17.5 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.5 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.5 + '@babel/core': 7.17.8 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.8 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.8 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.17.8 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.8 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.8 dev: true - /babel-preset-jest/27.5.1_@babel+core@7.17.5: + /babel-preset-env/1.7.0: + resolution: {integrity: sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==} + dependencies: + babel-plugin-check-es2015-constants: 6.22.0 + babel-plugin-syntax-trailing-function-commas: 6.22.0 + babel-plugin-transform-async-to-generator: 6.24.1 + babel-plugin-transform-es2015-arrow-functions: 6.22.0 + babel-plugin-transform-es2015-block-scoped-functions: 6.22.0 + babel-plugin-transform-es2015-block-scoping: 6.26.0 + babel-plugin-transform-es2015-classes: 6.24.1 + babel-plugin-transform-es2015-computed-properties: 6.24.1 + babel-plugin-transform-es2015-destructuring: 6.23.0 + babel-plugin-transform-es2015-duplicate-keys: 6.24.1 + babel-plugin-transform-es2015-for-of: 6.23.0 + babel-plugin-transform-es2015-function-name: 6.24.1 + babel-plugin-transform-es2015-literals: 6.22.0 + babel-plugin-transform-es2015-modules-amd: 6.24.1 + babel-plugin-transform-es2015-modules-commonjs: 6.26.2 + babel-plugin-transform-es2015-modules-systemjs: 6.24.1 + babel-plugin-transform-es2015-modules-umd: 6.24.1 + babel-plugin-transform-es2015-object-super: 6.24.1 + babel-plugin-transform-es2015-parameters: 6.24.1 + babel-plugin-transform-es2015-shorthand-properties: 6.24.1 + babel-plugin-transform-es2015-spread: 6.22.0 + babel-plugin-transform-es2015-sticky-regex: 6.24.1 + babel-plugin-transform-es2015-template-literals: 6.22.0 + babel-plugin-transform-es2015-typeof-symbol: 6.23.0 + babel-plugin-transform-es2015-unicode-regex: 6.24.1 + babel-plugin-transform-exponentiation-operator: 6.24.1 + babel-plugin-transform-regenerator: 6.26.0 + browserslist: 3.2.8 + invariant: 2.2.4 + semver: 5.7.1 + dev: true + + /babel-preset-jest/27.5.1_@babel+core@7.17.8: resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.5 + '@babel/core': 7.17.8 babel-plugin-jest-hoist: 27.5.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.5 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.8 + dev: true + + /babel-runtime/6.26.0: + resolution: {integrity: sha1-llxwWGaOgrVde/4E/yM3vItWR/4=} + dependencies: + core-js: 2.6.12 + regenerator-runtime: 0.11.1 + dev: true + + /babel-template/6.26.0: + resolution: {integrity: sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=} + dependencies: + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + lodash: 4.17.21 + dev: true + + /babel-traverse/6.26.0: + resolution: {integrity: sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=} + dependencies: + babel-code-frame: 6.26.0 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + debug: 2.6.9 + globals: 9.18.0 + invariant: 2.2.4 + lodash: 4.17.21 + dev: true + + /babel-types/6.26.0: + resolution: {integrity: sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=} + dependencies: + babel-runtime: 6.26.0 + esutils: 2.0.3 + lodash: 4.17.21 + to-fast-properties: 1.0.3 + dev: true + + /babylon/6.18.0: + resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} + hasBin: true dev: true /bach/1.2.0: @@ -2207,13 +3777,6 @@ packages: engines: {node: '>=8'} optional: true - /bindings/1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - requiresBuild: true - dependencies: - file-uri-to-path: 1.0.0 - optional: true - /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -2245,6 +3808,14 @@ packages: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true + /browserslist/3.2.8: + resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001320 + electron-to-chromium: 1.4.95 + dev: true + /browserslist/4.19.3: resolution: {integrity: sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -2256,6 +3827,18 @@ packages: node-releases: 2.0.2 picocolors: 1.0.0 + /browserslist/4.20.2: + resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001320 + electron-to-chromium: 1.4.95 + escalade: 3.1.1 + node-releases: 2.0.2 + picocolors: 1.0.0 + dev: true + /bser/2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: @@ -2323,6 +3906,21 @@ packages: /caniuse-lite/1.0.30001312: resolution: {integrity: sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==} + /caniuse-lite/1.0.30001320: + resolution: {integrity: sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==} + dev: true + + /chalk/1.1.3: + resolution: {integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -2348,7 +3946,7 @@ packages: resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies dependencies: - anymatch: 2.0.0 + anymatch: registry.npmmirror.com/anymatch/2.0.0 async-each: 1.0.3 braces: 2.3.2 glob-parent: 3.1.0 @@ -2360,7 +3958,7 @@ packages: readdirp: 2.2.1 upath: 1.2.0 optionalDependencies: - fsevents: 1.2.13 + fsevents: registry.npmmirror.com/fsevents/1.2.13 /chokidar/3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} @@ -2376,6 +3974,7 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 + dev: true optional: true /ci-info/3.3.0: @@ -2399,7 +3998,7 @@ packages: resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} engines: {node: '>= 4.0'} dependencies: - source-map: 0.6.1 + source-map: registry.npmmirror.com/source-map/0.6.1 dev: false /cliui/3.2.0: @@ -2412,8 +4011,8 @@ packages: /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 + string-width: registry.npmmirror.com/string-width/4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 wrap-ansi: 7.0.0 dev: true @@ -2476,7 +4075,7 @@ packages: dev: true /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -2551,19 +4150,23 @@ packages: /core-js-compat/3.21.1: resolution: {integrity: sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==} dependencies: - browserslist: 4.19.3 + browserslist: 4.20.2 semver: 7.0.0 dev: true /core-js-pure/3.21.1: - resolution: {integrity: sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/core-js-pure/-/core-js-pure-3.21.1.tgz} + resolution: {integrity: sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==} requiresBuild: true - dev: false + + /core-js/2.6.12: + resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} + deprecated: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. + requiresBuild: true + dev: true /core-js/3.21.1: resolution: {integrity: sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==} requiresBuild: true - dev: false /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2606,7 +4209,7 @@ packages: /d/1.0.1: resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} dependencies: - es5-ext: 0.10.53 + es5-ext: 0.10.59 type: 1.2.0 /data-urls/2.0.0: @@ -2618,8 +4221,8 @@ packages: whatwg-url: 8.7.0 dev: true - /dayjs/1.10.8: - resolution: {integrity: sha512-wbNwDfBHHur9UOzNUjeKUOJ0fCb0a52Wx0xInmQ7Y8FstyajiV1NmK1e00cxsr9YrE9r7yAChE0VvpuY5Rnlow==} + /dayjs/1.11.0: + resolution: {integrity: sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==} dev: true /debug/2.6.9: @@ -2638,6 +4241,17 @@ packages: dependencies: ms: 2.1.2 + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + /decamelize/1.2.0: resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} engines: {node: '>=0.10.0'} @@ -2647,7 +4261,7 @@ packages: dev: true /decode-uri-component/0.2.0: - resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} + resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=} engines: {node: '>=0.10'} /dedent/0.7.0: @@ -2739,15 +4353,15 @@ packages: /electron-to-chromium/1.4.73: resolution: {integrity: sha512-RlCffXkE/LliqfA5m29+dVDPB2r72y2D2egMMfIy3Le8ODrxjuZNVo4NIC2yPL01N4xb4nZQLwzi6Z5tGIGLnA==} + /electron-to-chromium/1.4.95: + resolution: {integrity: sha512-h2VAMV/hPtmAeiDkwA8c5sjS+cWt6GlQL4ERdrOUWu7cRIG5IRk9uwR9f0utP+hPJ9ZZsADTq9HpbuT46eBYAg==} + dev: true + /emittery/0.8.1: resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} engines: {node: '>=10'} dev: true - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - /end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: @@ -2758,18 +4372,20 @@ packages: dependencies: is-arrayish: 0.2.1 - /es5-ext/0.10.53: - resolution: {integrity: sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==} + /es5-ext/0.10.59: + resolution: {integrity: sha512-cOgyhW0tIJyQY1Kfw6Kr0viu9ZlUctVchRMZ7R0HiH3dxTSp5zJDLecwxUqPUrGKMsgBI1wd1FL+d9Jxfi4cLw==} + engines: {node: '>=0.10'} + requiresBuild: true dependencies: es6-iterator: 2.0.3 es6-symbol: 3.1.3 - next-tick: 1.0.0 + next-tick: 1.1.0 /es6-iterator/2.0.3: resolution: {integrity: sha1-p96IkUGgWpSwhUQDstCg+/qY87c=} dependencies: d: 1.0.1 - es5-ext: 0.10.53 + es5-ext: 0.10.59 es6-symbol: 3.1.3 /es6-symbol/3.1.3: @@ -2782,231 +4398,45 @@ packages: resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} dependencies: d: 1.0.1 - es5-ext: 0.10.53 + es5-ext: 0.10.59 es6-iterator: 2.0.3 es6-symbol: 3.1.3 - /esbuild-android-64/0.14.27: - resolution: {integrity: sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64/0.14.27: - resolution: {integrity: sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64/0.14.27: - resolution: {integrity: sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.14.27: - resolution: {integrity: sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.14.27: - resolution: {integrity: sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.14.27: - resolution: {integrity: sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.14.27: - resolution: {integrity: sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.14.27: - resolution: {integrity: sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.14.27: - resolution: {integrity: sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.14.27: - resolution: {integrity: sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.14.27: - resolution: {integrity: sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.14.27: - resolution: {integrity: sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64/0.14.27: - resolution: {integrity: sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x/0.14.27: - resolution: {integrity: sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64/0.14.27: - resolution: {integrity: sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64/0.14.27: - resolution: {integrity: sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64/0.14.27: - resolution: {integrity: sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.14.27: - resolution: {integrity: sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64/0.14.27: - resolution: {integrity: sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64/0.14.27: - resolution: {integrity: sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild/0.14.27: - resolution: {integrity: sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==} + /esbuild/0.14.28: + resolution: {integrity: sha512-YLNprkCcMVKQ5sekmCKEQ3Obu/L7s6+iij38xNKyBeSmSsTWur4Ky/9zB3XIGT8SCJITG/bZwAR2l7YOAXch4Q==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.27 - esbuild-android-arm64: 0.14.27 - esbuild-darwin-64: 0.14.27 - esbuild-darwin-arm64: 0.14.27 - esbuild-freebsd-64: 0.14.27 - esbuild-freebsd-arm64: 0.14.27 - esbuild-linux-32: 0.14.27 - esbuild-linux-64: 0.14.27 - esbuild-linux-arm: 0.14.27 - esbuild-linux-arm64: 0.14.27 - esbuild-linux-mips64le: 0.14.27 - esbuild-linux-ppc64le: 0.14.27 - esbuild-linux-riscv64: 0.14.27 - esbuild-linux-s390x: 0.14.27 - esbuild-netbsd-64: 0.14.27 - esbuild-openbsd-64: 0.14.27 - esbuild-sunos-64: 0.14.27 - esbuild-windows-32: 0.14.27 - esbuild-windows-64: 0.14.27 - esbuild-windows-arm64: 0.14.27 - dev: true + esbuild-android-64: registry.npmmirror.com/esbuild-android-64/0.14.28 + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64/0.14.28 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64/0.14.28 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64/0.14.28 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64/0.14.28 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64/0.14.28 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32/0.14.28 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64/0.14.28 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm/0.14.28 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64/0.14.28 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le/0.14.28 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le/0.14.28 + esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64/0.14.28 + esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x/0.14.28 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64/0.14.28 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64/0.14.28 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64/0.14.28 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32/0.14.28 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64/0.14.28 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.14.28 /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} engines: {node: '>=0.8.0'} - /escape-string-regexp/2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true - /escodegen/1.14.3: resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} engines: {node: '>=4.0'} @@ -3017,7 +4447,7 @@ packages: esutils: 2.0.3 optionator: 0.8.3 optionalDependencies: - source-map: 0.6.1 + source-map: registry.npmmirror.com/source-map/0.6.1 dev: false /escodegen/2.0.0: @@ -3030,7 +4460,7 @@ packages: esutils: 2.0.3 optionator: 0.8.3 optionalDependencies: - source-map: 0.6.1 + source-map: registry.npmmirror.com/source-map/0.6.1 dev: true /esprima/4.0.1: @@ -3113,7 +4543,7 @@ packages: type: 2.6.0 /extend-shallow/2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=} engines: {node: '>=0.10.0'} dependencies: is-extendable: 0.1.1 @@ -3166,11 +4596,6 @@ packages: bser: 2.1.1 dev: true - /file-uri-to-path/1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - requiresBuild: true - optional: true - /fill-range/4.0.0: resolution: {integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=} engines: {node: '>=0.10.0'} @@ -3255,7 +4680,7 @@ packages: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.34 + mime-types: 2.1.35 dev: true /fragment-cache/0.2.1: @@ -3285,22 +4710,12 @@ packages: /fs.realpath/1.0.0: resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} - /fsevents/1.2.13: - resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} - engines: {node: '>= 4.0'} - os: [darwin] - deprecated: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2. - requiresBuild: true - dependencies: - bindings: 1.5.0 - nan: 2.15.0 - optional: true - /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 /function-bind/1.1.1: @@ -3323,7 +4738,7 @@ packages: dependencies: function-bind: 1.1.1 has: 1.0.3 - has-symbols: 1.0.2 + has-symbols: 1.0.3 /get-package-type/0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} @@ -3371,7 +4786,7 @@ packages: resolution: {integrity: sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==} engines: {node: '>= 0.10'} dependencies: - anymatch: 2.0.0 + anymatch: registry.npmmirror.com/anymatch/2.0.0 async-done: 1.3.2 chokidar: 2.1.8 is-negated-glob: 1.0.0 @@ -3411,6 +4826,11 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + /globals/9.18.0: + resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} + engines: {node: '>=0.10.0'} + dev: true + /glogg/1.0.2: resolution: {integrity: sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==} engines: {node: '>= 0.10'} @@ -3460,8 +4880,15 @@ packages: dependencies: glogg: 1.0.2 + /has-ansi/2.0.0: + resolution: {integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + /has-flag/3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} engines: {node: '>=4'} /has-flag/4.0.0: @@ -3469,8 +4896,8 @@ packages: engines: {node: '>=8'} dev: true - /has-symbols/1.0.2: - resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} /has-value/0.3.1: @@ -3551,7 +4978,7 @@ packages: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.3 + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -3561,7 +4988,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.3 + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -3571,13 +4998,6 @@ packages: engines: {node: '>=10.17.0'} dev: true - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: true - /import-local/3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -3608,6 +5028,12 @@ packages: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} + /invariant/2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: true + /invert-kv/1.0.0: resolution: {integrity: sha1-EEqOSqym09jNFXqO+L+rLXo//bY=} engines: {node: '>=0.10.0'} @@ -3684,7 +5110,7 @@ packages: kind-of: 6.0.3 /is-extendable/0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=} engines: {node: '>=0.10.0'} /is-extendable/1.0.1: @@ -3694,7 +5120,7 @@ packages: is-plain-object: 2.0.4 /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} engines: {node: '>=0.10.0'} /is-fullwidth-code-point/1.0.0: @@ -3703,11 +5129,6 @@ packages: dependencies: number-is-nan: 1.0.1 - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - /is-generator-fn/2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} @@ -3805,10 +5226,10 @@ packages: engines: {node: '>=0.10.0'} /isarray/1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} /isexe/2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} /isobject/2.1.0: resolution: {integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=} @@ -3817,7 +5238,7 @@ packages: isarray: 1.0.0 /isobject/3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=} engines: {node: '>=0.10.0'} /istanbul-lib-coverage/3.2.0: @@ -3829,8 +5250,8 @@ packages: resolution: {integrity: sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.17.5 - '@babel/parser': 7.17.3 + '@babel/core': 7.17.8 + '@babel/parser': 7.17.8 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 @@ -3851,7 +5272,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.3 + debug: 4.3.4 istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -3882,8 +5303,8 @@ packages: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.21 - chalk: 4.1.2 + '@types/node': 17.0.23 + chalk: registry.npmmirror.com/chalk/4.1.2 co: 4.6.0 dedent: 0.7.0 expect: 27.5.1 @@ -3941,13 +5362,13 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.17.5 + '@babel/core': 7.17.8 '@jest/test-sequencer': 27.5.1 '@jest/types': 27.5.1 - babel-jest: 27.5.1_@babel+core@7.17.5 + babel-jest: 27.5.1_@babel+core@7.17.8 chalk: 4.1.2 ci-info: 3.3.0 - deepmerge: 4.2.2 + deepmerge: registry.npmmirror.com/deepmerge/4.2.2 glob: 7.2.0 graceful-fs: 4.2.9 jest-circus: 27.5.1 @@ -3960,7 +5381,7 @@ packages: jest-runner: 27.5.1 jest-util: 27.5.1 jest-validate: 27.5.1 - micromatch: 4.0.4 + micromatch: 4.0.5 parse-json: 5.2.0 pretty-format: 27.5.1 slash: 3.0.0 @@ -3976,7 +5397,7 @@ packages: resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - chalk: 4.1.2 + chalk: registry.npmmirror.com/chalk/4.1.2 diff-sequences: 27.5.1 jest-get-type: 27.5.1 pretty-format: 27.5.1 @@ -3994,7 +5415,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - chalk: 4.1.2 + chalk: registry.npmmirror.com/chalk/4.1.2 jest-get-type: 27.5.1 jest-util: 27.5.1 pretty-format: 27.5.1 @@ -4007,7 +5428,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -4025,7 +5446,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 jest-mock: 27.5.1 jest-util: 27.5.1 dev: true @@ -4041,7 +5462,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@types/graceful-fs': 4.1.5 - '@types/node': 17.0.21 + '@types/node': 17.0.23 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.9 @@ -4049,10 +5470,10 @@ packages: jest-serializer: 27.5.1 jest-util: 27.5.1 jest-worker: 27.5.1 - micromatch: 4.0.4 + micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true /jest-jasmine2/27.5.1: @@ -4063,8 +5484,8 @@ packages: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.21 - chalk: 4.1.2 + '@types/node': 17.0.23 + chalk: registry.npmmirror.com/chalk/4.1.2 co: 4.6.0 expect: 27.5.1 is-generator-fn: 2.1.0 @@ -4092,7 +5513,7 @@ packages: resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - chalk: 4.1.2 + chalk: registry.npmmirror.com/chalk/4.1.2 jest-diff: 27.5.1 jest-get-type: 27.5.1 pretty-format: 27.5.1 @@ -4107,7 +5528,7 @@ packages: '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.9 - micromatch: 4.0.4 + micromatch: 4.0.5 pretty-format: 27.5.1 slash: 3.0.0 stack-utils: 2.0.5 @@ -4118,7 +5539,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 dev: true /jest-pnp-resolver/1.2.2_jest-resolve@27.5.1: @@ -4174,7 +5595,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.9 @@ -4231,7 +5652,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 17.0.21 + '@types/node': 17.0.23 graceful-fs: 4.2.9 dev: true @@ -4239,16 +5660,16 @@ packages: resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.17.5 - '@babel/generator': 7.17.3 - '@babel/plugin-syntax-typescript': 7.16.7_@babel+core@7.17.5 + '@babel/core': 7.17.8 + '@babel/generator': 7.17.7 + '@babel/plugin-syntax-typescript': 7.16.7_@babel+core@7.17.8 '@babel/traverse': 7.17.3 '@babel/types': 7.17.0 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/babel__traverse': 7.14.2 '@types/prettier': 2.4.4 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.5 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.8 chalk: 4.1.2 expect: 27.5.1 graceful-fs: 4.2.9 @@ -4270,7 +5691,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 chalk: 4.1.2 ci-info: 3.3.0 graceful-fs: 4.2.9 @@ -4295,7 +5716,7 @@ packages: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.21 + '@types/node': 17.0.23 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -4315,7 +5736,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 17.0.21 + '@types/node': 17.0.23 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -4343,7 +5764,6 @@ packages: /js-tokens/3.0.2: resolution: {integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls=} - dev: false /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4422,18 +5842,24 @@ packages: dependencies: minimist: 1.2.5 + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + dev: true + /jsonfile/6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.9 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.9 /just-debounce/1.1.0: resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==} /kind-of/3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=} engines: {node: '>=0.10.0'} dependencies: is-buffer: 1.1.6 @@ -4457,6 +5883,9 @@ packages: engines: {node: '>=6'} dev: true + /kolorist/1.5.1: + resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==} + /last-run/1.1.1: resolution: {integrity: sha1-RblpQsF7HHnHchmCWbqUO+v4yls=} engines: {node: '>= 0.10'} @@ -4545,6 +5974,13 @@ packages: deepmerge: 4.2.2 dev: false + /loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: true + /lower-case/1.1.4: resolution: {integrity: sha1-miyr0bno4K6ZOkv31YdcOcQujqw=} dev: false @@ -4634,24 +6070,24 @@ packages: snapdragon: 0.8.2 to-regex: 3.0.2 - /micromatch/4.0.4: - resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.1 dev: true - /mime-db/1.51.0: - resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} dev: true - /mime-types/2.1.34: - resolution: {integrity: sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==} + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: - mime-db: 1.51.0 + mime-db: 1.52.0 dev: true /mimic-fn/2.1.0: @@ -4674,8 +6110,12 @@ packages: for-in: 1.0.2 is-extendable: 1.0.1 + /mrmime/1.0.0: + resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==} + engines: {node: '>=10'} + /ms/2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -4684,11 +6124,6 @@ packages: resolution: {integrity: sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==} engines: {node: '>= 0.10'} - /nan/2.15.0: - resolution: {integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==} - requiresBuild: true - optional: true - /nanoid/3.3.1: resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4714,8 +6149,8 @@ packages: resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} dev: true - /next-tick/1.0.0: - resolution: {integrity: sha1-yobR/ogoFpsBICCOPchCS524NCw=} + /next-tick/1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} /no-case/2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} @@ -4793,7 +6228,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - has-symbols: 1.0.2 + has-symbols: 1.0.3 object-keys: 1.1.1 /object.defaults/1.1.0: @@ -4826,7 +6261,7 @@ packages: make-iterator: 1.0.1 /once/1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} dependencies: wrappy: 1.0.2 @@ -5024,7 +6459,7 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - ansi-regex: 5.0.1 + ansi-regex: registry.npmmirror.com/ansi-regex/5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 dev: true @@ -5033,6 +6468,11 @@ packages: resolution: {integrity: sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=} engines: {node: '>= 0.8'} + /private/0.1.8: + resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==} + engines: {node: '>= 0.6'} + dev: true + /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -5143,13 +6583,25 @@ packages: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true + /regenerator-runtime/0.11.1: + resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} + dev: true + /regenerator-runtime/0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + /regenerator-transform/0.10.1: + resolution: {integrity: sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + private: 0.1.8 + dev: true + /regenerator-transform/0.14.5: resolution: {integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==} dependencies: - '@babel/runtime': 7.17.2 + '@babel/runtime': 7.17.8 dev: true /regex-not/1.0.2: @@ -5159,6 +6611,14 @@ packages: extend-shallow: 3.0.2 safe-regex: 1.1.0 + /regexpu-core/2.0.0: + resolution: {integrity: sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=} + dependencies: + regenerate: 1.4.2 + regjsgen: 0.2.0 + regjsparser: 0.1.5 + dev: true + /regexpu-core/5.0.1: resolution: {integrity: sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==} engines: {node: '>=4'} @@ -5171,10 +6631,21 @@ packages: unicode-match-property-value-ecmascript: 2.0.0 dev: true + /regjsgen/0.2.0: + resolution: {integrity: sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=} + dev: true + /regjsgen/0.6.0: resolution: {integrity: sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==} dev: true + /regjsparser/0.1.5: + resolution: {integrity: sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + /regjsparser/0.8.4: resolution: {integrity: sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==} hasBin: true @@ -5258,7 +6729,7 @@ packages: value-or-function: 3.0.0 /resolve-url/0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + resolution: {integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=} deprecated: https://github.com/lydell/resolve-url#deprecated /resolve.exports/1.1.0: @@ -5315,9 +6786,16 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true + /rollup/2.70.1: + resolution: {integrity: sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -5329,10 +6807,6 @@ packages: dependencies: ret: 0.1.15 - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true - /saxes/5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} @@ -5408,6 +6882,14 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true + /sirv/2.0.2: + resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.21 + mrmime: 1.0.0 + totalist: 3.0.0 + /sisteransi/1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: true @@ -5444,7 +6926,7 @@ packages: define-property: 0.2.5 extend-shallow: 2.0.1 map-cache: 0.2.2 - source-map: 0.5.7 + source-map: registry.npmmirror.com/source-map/0.5.7 source-map-resolve: 0.5.3 use: 3.1.1 @@ -5528,7 +7010,7 @@ packages: resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} engines: {node: '>=10'} dependencies: - escape-string-regexp: 2.0.0 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp/2.0.0 dev: true /static-extend/0.1.2: @@ -5549,7 +7031,7 @@ packages: engines: {node: '>=10'} dependencies: char-regex: 1.0.2 - strip-ansi: 6.0.1 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 dev: true /string-width/1.0.2: @@ -5564,9 +7046,9 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 + emoji-regex: registry.npmmirror.com/emoji-regex/8.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point/3.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 dev: true /string_decoder/1.1.1: @@ -5578,7 +7060,7 @@ packages: resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=} engines: {node: '>=0.10.0'} dependencies: - ansi-regex: 2.1.1 + ansi-regex: registry.npmmirror.com/ansi-regex/2.1.1 /strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} @@ -5608,6 +7090,11 @@ packages: engines: {node: '>=8'} dev: true + /supports-color/2.0.0: + resolution: {integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=} + engines: {node: '>=0.8.0'} + dev: true + /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -5633,7 +7120,7 @@ packages: engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - supports-color: 7.2.0 + supports-color: registry.npmmirror.com/supports-color/7.2.0 dev: true /supports-preserve-symlinks-flag/1.0.0: @@ -5650,11 +7137,15 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true + /systemjs/6.12.1: + resolution: {integrity: sha512-hqTN6kW+pN6/qro6G9OZ7ceDQOcYno020zBQKpZQLsJhYTDMCMNfXi/Y8duF5iW+4WWZr42ry0MMkcRGpbwG2A==} + dev: true + /terminal-link/2.1.1: resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} engines: {node: '>=8'} dependencies: - ansi-escapes: 4.3.2 + ansi-escapes: registry.npmmirror.com/ansi-escapes/4.3.2 supports-hyperlinks: 2.2.0 dev: true @@ -5715,6 +7206,11 @@ packages: is-absolute: 1.0.0 is-negated-glob: 1.0.0 + /to-fast-properties/1.0.3: + resolution: {integrity: sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=} + engines: {node: '>=0.10.0'} + dev: true + /to-fast-properties/2.0.0: resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} engines: {node: '>=4'} @@ -5753,6 +7249,10 @@ packages: dependencies: through2: 2.0.5 + /totalist/3.0.0: + resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} + engines: {node: '>=6'} + /tough-cookie/4.0.0: resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} engines: {node: '>=6'} @@ -5800,13 +7300,16 @@ packages: /typedarray/0.0.6: resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=} + /ufo/0.7.11: + resolution: {integrity: sha512-IT3q0lPvtkqQ8toHQN/BkOi4VIqoqheqM1FnkNWT9y0G8B3xJhwnoKBu5OHx8zHDOvveQzfKuFowJ0VSARiIDg==} + /uglify-js/3.4.10: resolution: {integrity: sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==} engines: {node: '>=0.8.0'} hasBin: true dependencies: commander: 2.19.0 - source-map: 0.6.1 + source-map: registry.npmmirror.com/source-map/0.6.1 dev: false /unc-path-regex/0.1.2: @@ -5895,7 +7398,7 @@ packages: dev: false /urix/0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + resolution: {integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=} deprecated: Please see https://github.com/lydell/urix#deprecated /use/3.1.1: @@ -5903,7 +7406,7 @@ packages: engines: {node: '>=0.10.0'} /util-deprecate/1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} /v8-to-istanbul/8.1.1: resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} @@ -5975,6 +7478,31 @@ packages: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 + /vite-plugin-babel/1.0.0_@babel+core@7.17.8+vite@2.8.6: + resolution: {integrity: sha512-Zu6ZkDfvyMdVU0fFmKmmBL+QN1IuY/YeNgZEWUGwoTD1lyNDkjGuN7QmgQghCZP4L0o51wY32uiEG/B780Gr8g==} + peerDependencies: + '@babel/core': ^7.0.0 + vite: ^2.7.0 + dependencies: + '@babel/core': 7.17.8 + vite: 2.8.6 + dev: true + + /vite-plugin-inspect/0.4.3_vite@2.8.6: + resolution: {integrity: sha512-lj3oWnReRUwMHB7k8ZD8o6E27/OSn+8ua+tOftxuS39aM6Z9MG7m5r1CMlxMwEwdTM/wnQr0aH22Y2IX3e+++w==} + engines: {node: '>=14'} + peerDependencies: + vite: ^2.0.0 + dependencies: + '@rollup/pluginutils': 4.2.0 + debug: 4.3.4 + kolorist: 1.5.1 + sirv: 2.0.2 + ufo: 0.7.11 + vite: 2.8.6 + transitivePeerDependencies: + - supports-color + /vite/2.8.6: resolution: {integrity: sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug==} engines: {node: '>=12.2.0'} @@ -5991,13 +7519,12 @@ packages: stylus: optional: true dependencies: - esbuild: 0.14.27 + esbuild: 0.14.28 postcss: 8.4.12 resolve: 1.22.0 - rollup: 2.69.0 + rollup: 2.70.1 optionalDependencies: - fsevents: 2.3.2 - dev: true + fsevents: registry.npmmirror.com/fsevents/2.3.2 /vue/3.2.31: resolution: {integrity: sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw==} @@ -6041,7 +7568,7 @@ packages: /whatwg-encoding/1.0.5: resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} dependencies: - iconv-lite: 0.4.24 + iconv-lite: registry.npmmirror.com/iconv-lite/0.4.24 dev: true /whatwg-mimetype/2.3.0: @@ -6052,7 +7579,7 @@ packages: resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} engines: {node: '>=10'} dependencies: - lodash: 4.17.21 + lodash: registry.npmmirror.com/lodash/4.17.21 tr46: 2.1.0 webidl-conversions: 6.1.0 dev: true @@ -6081,20 +7608,20 @@ packages: resolution: {integrity: sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=} engines: {node: '>=0.10.0'} dependencies: - string-width: 1.0.2 - strip-ansi: 3.0.1 + string-width: registry.npmmirror.com/string-width/1.0.2 + strip-ansi: registry.npmmirror.com/strip-ansi/3.0.1 /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 + ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 + string-width: registry.npmmirror.com/string-width/4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 dev: true /wrappy/1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} /write-file-atomic/3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} @@ -6182,3 +7709,1000 @@ packages: which-module: 1.0.0 y18n: 3.2.2 yargs-parser: 5.0.1 + + registry.npmmirror.com/@babel/runtime-corejs3/7.17.8: + resolution: {integrity: sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz} + name: '@babel/runtime-corejs3' + version: 7.17.8 + engines: {node: '>=6.9.0'} + dependencies: + core-js-pure: registry.npmmirror.com/core-js-pure/3.21.1 + regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.9 + dev: true + + registry.npmmirror.com/@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents.3: + resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz} + name: '@nicolo-ribaudo/chokidar-2' + version: 2.1.8-no-fsevents.3 + requiresBuild: true + optional: true + + registry.npmmirror.com/ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz} + name: ansi-escapes + version: 4.3.2 + engines: {node: '>=8'} + dependencies: + type-fest: registry.npmmirror.com/type-fest/0.21.3 + + registry.npmmirror.com/ansi-regex/2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz} + name: ansi-regex + version: 2.1.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + + registry.npmmirror.com/ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmmirror.com/color-convert/2.0.1 + + registry.npmmirror.com/ansicolor/1.1.100: + resolution: {integrity: sha512-Jl0pxRfa9WaQVUX57AB8/V2my6FJxrOR1Pp2qqFbig20QB4HzUoQ48THTKAgHlUCJeQm/s2WoOPcoIDhyCL/kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansicolor/-/ansicolor-1.1.100.tgz} + name: ansicolor + version: 1.1.100 + dev: true + + registry.npmmirror.com/anymatch/2.0.0: + resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-2.0.0.tgz} + name: anymatch + version: 2.0.0 + dependencies: + micromatch: 3.1.10 + normalize-path: 2.1.1 + + registry.npmmirror.com/balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: false + + registry.npmmirror.com/base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz} + name: base64-js + version: 1.5.1 + dev: false + + registry.npmmirror.com/bindings/1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz} + name: bindings + version: 1.5.0 + requiresBuild: true + dependencies: + file-uri-to-path: registry.npmmirror.com/file-uri-to-path/1.0.0 + optional: true + + registry.npmmirror.com/bl/4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz} + name: bl + version: 4.1.0 + dependencies: + buffer: registry.npmmirror.com/buffer/5.7.1 + inherits: registry.npmmirror.com/inherits/2.0.4 + readable-stream: registry.npmmirror.com/readable-stream/3.6.0 + dev: false + + registry.npmmirror.com/brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match/1.0.2 + concat-map: registry.npmmirror.com/concat-map/0.0.1 + dev: false + + registry.npmmirror.com/brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} + name: brace-expansion + version: 2.0.1 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match/1.0.2 + dev: false + + registry.npmmirror.com/buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz} + name: buffer + version: 5.7.1 + dependencies: + base64-js: registry.npmmirror.com/base64-js/1.5.1 + ieee754: registry.npmmirror.com/ieee754/1.2.1 + dev: false + + registry.npmmirror.com/chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 + supports-color: registry.npmmirror.com/supports-color/7.2.0 + + registry.npmmirror.com/chardet/0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz} + name: chardet + version: 0.7.0 + dev: false + + registry.npmmirror.com/chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} + name: chokidar + version: 3.5.3 + engines: {node: '>= 8.10.0'} + requiresBuild: true + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + optional: true + + registry.npmmirror.com/cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz} + name: cli-cursor + version: 3.1.0 + engines: {node: '>=8'} + dependencies: + restore-cursor: registry.npmmirror.com/restore-cursor/3.1.0 + dev: false + + registry.npmmirror.com/cli-spinners/2.6.1: + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.6.1.tgz} + name: cli-spinners + version: 2.6.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/cli-width/3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-width/-/cli-width-3.0.0.tgz} + name: cli-width + version: 3.0.0 + engines: {node: '>= 10'} + dev: false + + registry.npmmirror.com/clone/1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz} + name: clone + version: 1.0.4 + engines: {node: '>=0.8'} + dev: false + + registry.npmmirror.com/color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmmirror.com/color-name/1.1.4 + + registry.npmmirror.com/color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + + registry.npmmirror.com/commander/9.0.0: + resolution: {integrity: sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-9.0.0.tgz} + name: commander + version: 9.0.0 + engines: {node: ^12.20.0 || >=14} + dev: false + + registry.npmmirror.com/concat-map/0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} + name: concat-map + version: 0.0.1 + dev: false + + registry.npmmirror.com/core-js-pure/3.21.1: + resolution: {integrity: sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.21.1.tgz} + name: core-js-pure + version: 3.21.1 + requiresBuild: true + dev: true + + registry.npmmirror.com/core-js/3.21.1: + resolution: {integrity: sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js/-/core-js-3.21.1.tgz} + name: core-js + version: 3.21.1 + requiresBuild: true + dev: true + + registry.npmmirror.com/deepmerge/4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deepmerge/-/deepmerge-4.2.2.tgz} + name: deepmerge + version: 4.2.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/defaults/1.0.3: + resolution: {integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/defaults/-/defaults-1.0.3.tgz} + name: defaults + version: 1.0.3 + dependencies: + clone: registry.npmmirror.com/clone/1.0.4 + dev: false + + registry.npmmirror.com/emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} + name: emoji-regex + version: 8.0.0 + + registry.npmmirror.com/esbuild-android-64/0.14.28: + resolution: {integrity: sha512-A52C3zq+9tNwCqZ+4kVLBxnk/WnrYM8P2+QNvNE9B6d2OVPs214lp3g6UyO+dKDhUdefhfPCuwkP8j2A/+szNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.28.tgz} + name: esbuild-android-64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-android-arm64/0.14.28: + resolution: {integrity: sha512-sm0fDEGElZhMC3HLZeECI2juE4aG7uPfMBMqNUhy9CeX399Pz8rC6e78OXMXInGjSdEAwQmCOHmfsP7uv3Q8rA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.28.tgz} + name: esbuild-android-arm64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-darwin-64/0.14.28: + resolution: {integrity: sha512-nzDd7mQ44FvsFHtOafZdBgn3Li5SMsnMnoz1J2MM37xJmR3wGNTFph88KypjHgWqwbxCI7MXS1U+sN4qDeeW6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.28.tgz} + name: esbuild-darwin-64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-darwin-arm64/0.14.28: + resolution: {integrity: sha512-XEq/bLR/glsUl+uGrBimQzOVs/CmwI833fXUhP9xrLI3IJ+rKyrZ5IA8u+1crOEf1LoTn8tV+hInmX6rGjbScw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.28.tgz} + name: esbuild-darwin-arm64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-64/0.14.28: + resolution: {integrity: sha512-rTKLgUj/HEcPeE5XZ7IZwWpFx7IWMfprN7QRk/TUJE1s1Ipb58esboIesUpjirJz/BwrgHq+FDG9ChAI8dZAtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.28.tgz} + name: esbuild-freebsd-64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-arm64/0.14.28: + resolution: {integrity: sha512-sBffxD1UMOsB7aWMoExmipycjcy3HJGwmqE4GQZUTZvdiH4GhjgUiVdtPyt7kSCdL40JqnWQJ4b1l8Y51oCF4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.28.tgz} + name: esbuild-freebsd-arm64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-linux-32/0.14.28: + resolution: {integrity: sha512-+Wxidh3fBEQ9kHcCsD4etlBTMb1n6QY2uXv3rFhVn88CY/JP782MhA57/ipLMY4kOLeSKEuFGN4rtjHuhmRMig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.28.tgz} + name: esbuild-linux-32 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-linux-64/0.14.28: + resolution: {integrity: sha512-7+xgsC4LvR6cnzaBdiljNnPDjbkwzahogN+S9uy9AoYw7ZjPnnXc6sjQAVCbqGb7MEgrWdpa6u/Tao79i4lWxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.28.tgz} + name: esbuild-linux-64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm/0.14.28: + resolution: {integrity: sha512-L5isjmlLbh9E0WVllXiVETbScgMbth/+XkXQii1WwgO1RvLIfaGrVFz8d2n6EH/ImtgYxPYGx+OcvIKQBc91Rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.28.tgz} + name: esbuild-linux-arm + version: 0.14.28 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm64/0.14.28: + resolution: {integrity: sha512-EjRHgwg+kgXABzyoPGPOPg4d5wZqRnZ/ZAxBDzLY+i6DS8OUfTSlZHWIOZzU4XF7125WxRBg9ULbrFJBl+57Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.28.tgz} + name: esbuild-linux-arm64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-linux-mips64le/0.14.28: + resolution: {integrity: sha512-krx9SSg7yfiUKk64EmjefOyiEF6nv2bRE4um/LiTaQ6Y/6FP4UF3/Ou/AxZVyR154uSRq63xejcAsmswXAYRsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.28.tgz} + name: esbuild-linux-mips64le + version: 0.14.28 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-linux-ppc64le/0.14.28: + resolution: {integrity: sha512-LD0Xxu9g+DNuhsEBV5QuVZ4uKVBMup0xPIruLweuAf9/mHXFnaCuNXUBF5t0DxKl7GQ5MSioKtnb92oMo+QXEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.28.tgz} + name: esbuild-linux-ppc64le + version: 0.14.28 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-linux-riscv64/0.14.28: + resolution: {integrity: sha512-L/DWfRh2P0vxq4Y+qieSNXKGdMg+e9Qe8jkbN2/8XSGYDTPzO2OcAxSujob4qIh7iSl+cknbXV+BvH0YFR0jbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.28.tgz} + name: esbuild-linux-riscv64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-linux-s390x/0.14.28: + resolution: {integrity: sha512-rrgxmsbmL8QQknWGnAL9bGJRQYLOi2AzXy5OTwfhxnj9eqjo5mSVbJXjgiq5LPUAMQZGdPH5yaNK0obAXS81Zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.28.tgz} + name: esbuild-linux-s390x + version: 0.14.28 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-netbsd-64/0.14.28: + resolution: {integrity: sha512-h8wntIyOR8/xMVVM6TvJxxWKh4AjmLK87IPKpuVi8Pq0kyk0RMA+eo4PFGk5j2XK0D7dj8PcSF5NSlP9kN/j0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.28.tgz} + name: esbuild-netbsd-64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-openbsd-64/0.14.28: + resolution: {integrity: sha512-HBv18rVapbuDx52/fhZ/c/w6TXyaQAvRxiDDn5Hz/pBcwOs3cdd2WxeIKlWmDoqm2JMx5EVlq4IWgoaRX9mVkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.28.tgz} + name: esbuild-openbsd-64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-sunos-64/0.14.28: + resolution: {integrity: sha512-zlIxePhZxKYheR2vBCgPVvTixgo/ozOfOMoP6RZj8dxzquU1NgeyhjkcRXucbLCtmoNJ+i4PtWwPZTLuDd3bGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.28.tgz} + name: esbuild-sunos-64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-windows-32/0.14.28: + resolution: {integrity: sha512-am9DIJxXlld1BOAY/VlvBQHMUCPL7S3gB/lnXIY3M4ys0gfuRqPf4EvMwZMzYUbFKBY+/Qb8SRgPRRGhwnJ8Kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.28.tgz} + name: esbuild-windows-32 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-windows-64/0.14.28: + resolution: {integrity: sha512-78PhySDnmRZlsPNp/W/5Fim8iivlBQQxfhBFIqR7xwvfDmCFUSByyMKP7LCHgNtb04yNdop8nJJkJaQ8Xnwgiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.28.tgz} + name: esbuild-windows-64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/esbuild-windows-arm64/0.14.28: + resolution: {integrity: sha512-VhXGBTo6HELD8zyHXynV6+L2jWx0zkKnGx4TmEdSBK7UVFACtOyfUqpToG0EtnYyRZ0HESBhzPSVpP781ovmvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.28.tgz} + name: esbuild-windows-arm64 + version: 0.14.28 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + name: escape-string-regexp + version: 1.0.5 + engines: {node: '>=0.8.0'} + dev: false + + registry.npmmirror.com/escape-string-regexp/2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz} + name: escape-string-regexp + version: 2.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/external-editor/3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz} + name: external-editor + version: 3.1.0 + engines: {node: '>=4'} + dependencies: + chardet: registry.npmmirror.com/chardet/0.7.0 + iconv-lite: registry.npmmirror.com/iconv-lite/0.4.24 + tmp: registry.npmmirror.com/tmp/0.0.33 + dev: false + + registry.npmmirror.com/figures/3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/figures/-/figures-3.2.0.tgz} + name: figures + version: 3.2.0 + engines: {node: '>=8'} + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp/1.0.5 + dev: false + + registry.npmmirror.com/file-uri-to-path/1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz} + name: file-uri-to-path + version: 1.0.0 + requiresBuild: true + optional: true + + registry.npmmirror.com/fs-extra/10.0.1: + resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-10.0.1.tgz} + name: fs-extra + version: 10.0.1 + engines: {node: '>=12'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.9 + jsonfile: registry.npmmirror.com/jsonfile/6.1.0 + universalify: registry.npmmirror.com/universalify/2.0.0 + dev: false + + registry.npmmirror.com/fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: false + + registry.npmmirror.com/fsevents/1.2.13: + resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-1.2.13.tgz} + name: fsevents + version: 1.2.13 + engines: {node: '>= 4.0'} + os: [darwin] + deprecated: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2. + requiresBuild: true + dependencies: + bindings: registry.npmmirror.com/bindings/1.5.0 + nan: registry.npmmirror.com/nan/2.15.0 + optional: true + + registry.npmmirror.com/fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} + name: fsevents + version: 2.3.2 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + dev: false + + registry.npmmirror.com/glob/7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.0.tgz} + name: glob + version: 7.2.0 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath/1.0.0 + inflight: registry.npmmirror.com/inflight/1.0.6 + inherits: registry.npmmirror.com/inherits/2.0.4 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + once: registry.npmmirror.com/once/1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute/1.0.1 + dev: false + + registry.npmmirror.com/graceful-fs/4.2.9: + resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.9.tgz} + name: graceful-fs + version: 4.2.9 + requiresBuild: true + + registry.npmmirror.com/has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + + registry.npmmirror.com/has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmmirror.com/function-bind/1.1.1 + dev: false + + registry.npmmirror.com/iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz} + name: iconv-lite + version: 0.4.24 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmmirror.com/safer-buffer/2.1.2 + + registry.npmmirror.com/ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz} + name: ieee754 + version: 1.2.1 + dev: false + + registry.npmmirror.com/inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmmirror.com/once/1.4.0 + wrappy: registry.npmmirror.com/wrappy/1.0.2 + dev: false + + registry.npmmirror.com/inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + dev: false + + registry.npmmirror.com/inquirer/8.2.2: + resolution: {integrity: sha512-pG7I/si6K/0X7p1qU+rfWnpTE1UIkTONN1wxtzh0d+dHXtT/JG6qBgLxoyHVsQa8cFABxAPh0pD6uUUHiAoaow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inquirer/-/inquirer-8.2.2.tgz} + name: inquirer + version: 8.2.2 + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: registry.npmmirror.com/ansi-escapes/4.3.2 + chalk: registry.npmmirror.com/chalk/4.1.2 + cli-cursor: registry.npmmirror.com/cli-cursor/3.1.0 + cli-width: registry.npmmirror.com/cli-width/3.0.0 + external-editor: registry.npmmirror.com/external-editor/3.1.0 + figures: registry.npmmirror.com/figures/3.2.0 + lodash: registry.npmmirror.com/lodash/4.17.21 + mute-stream: registry.npmmirror.com/mute-stream/0.0.8 + ora: registry.npmmirror.com/ora/5.4.1 + run-async: registry.npmmirror.com/run-async/2.4.1 + rxjs: registry.npmmirror.com/rxjs/7.5.5 + string-width: registry.npmmirror.com/string-width/4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + through: registry.npmmirror.com/through/2.3.8 + dev: false + + registry.npmmirror.com/interpret/1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/interpret/-/interpret-1.4.0.tgz} + name: interpret + version: 1.4.0 + engines: {node: '>= 0.10'} + dev: false + + registry.npmmirror.com/is-core-module/2.8.1: + resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz} + name: is-core-module + version: 2.8.1 + dependencies: + has: registry.npmmirror.com/has/1.0.3 + dev: false + + registry.npmmirror.com/is-fullwidth-code-point/1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz} + name: is-fullwidth-code-point + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + number-is-nan: 1.0.1 + + registry.npmmirror.com/is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} + name: is-fullwidth-code-point + version: 3.0.0 + engines: {node: '>=8'} + + registry.npmmirror.com/is-interactive/1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz} + name: is-interactive + version: 1.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/is-unicode-supported/0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz} + name: is-unicode-supported + version: 0.1.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} + name: jsonfile + version: 6.1.0 + dependencies: + universalify: registry.npmmirror.com/universalify/2.0.0 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.9 + dev: false + + registry.npmmirror.com/lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} + name: lodash + version: 4.17.21 + + registry.npmmirror.com/log-symbols/4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz} + name: log-symbols + version: 4.1.0 + engines: {node: '>=10'} + dependencies: + chalk: registry.npmmirror.com/chalk/4.1.2 + is-unicode-supported: registry.npmmirror.com/is-unicode-supported/0.1.0 + dev: false + + registry.npmmirror.com/logsets/1.0.8: + resolution: {integrity: sha512-9XuCtIjGvAWbi+JgF2+NI5Bb55uvzwgCFvlo/pafXdZjVC0DDri2k+Jzv7hWg0audTrw4FTnIBiSo3yOlEpmHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/logsets/-/logsets-1.0.8.tgz} + name: logsets + version: 1.0.8 + dependencies: + '@babel/runtime-corejs3': registry.npmmirror.com/@babel/runtime-corejs3/7.17.8 + ansicolor: registry.npmmirror.com/ansicolor/1.1.100 + core-js: registry.npmmirror.com/core-js/3.21.1 + deepmerge: registry.npmmirror.com/deepmerge/4.2.2 + dev: true + + registry.npmmirror.com/mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz} + name: mimic-fn + version: 2.1.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion/1.1.11 + dev: false + + registry.npmmirror.com/minimatch/5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-5.0.1.tgz} + name: minimatch + version: 5.0.1 + engines: {node: '>=10'} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion/2.0.1 + dev: false + + registry.npmmirror.com/mute-stream/0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.8.tgz} + name: mute-stream + version: 0.0.8 + dev: false + + registry.npmmirror.com/nan/2.15.0: + resolution: {integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nan/-/nan-2.15.0.tgz} + name: nan + version: 2.15.0 + requiresBuild: true + optional: true + + registry.npmmirror.com/once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmmirror.com/wrappy/1.0.2 + dev: false + + registry.npmmirror.com/onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz} + name: onetime + version: 5.1.2 + engines: {node: '>=6'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn/2.1.0 + dev: false + + registry.npmmirror.com/ora/5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz} + name: ora + version: 5.4.1 + engines: {node: '>=10'} + dependencies: + bl: registry.npmmirror.com/bl/4.1.0 + chalk: registry.npmmirror.com/chalk/4.1.2 + cli-cursor: registry.npmmirror.com/cli-cursor/3.1.0 + cli-spinners: registry.npmmirror.com/cli-spinners/2.6.1 + is-interactive: registry.npmmirror.com/is-interactive/1.0.0 + is-unicode-supported: registry.npmmirror.com/is-unicode-supported/0.1.0 + log-symbols: registry.npmmirror.com/log-symbols/4.1.0 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + wcwidth: registry.npmmirror.com/wcwidth/1.0.1 + dev: false + + registry.npmmirror.com/os-tmpdir/1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz} + name: os-tmpdir + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: false + + registry.npmmirror.com/readable-stream/3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz} + name: readable-stream + version: 3.6.0 + engines: {node: '>= 6'} + dependencies: + inherits: registry.npmmirror.com/inherits/2.0.4 + string_decoder: registry.npmmirror.com/string_decoder/1.1.1 + util-deprecate: registry.npmmirror.com/util-deprecate/1.0.2 + dev: false + + registry.npmmirror.com/rechoir/0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rechoir/-/rechoir-0.6.2.tgz} + name: rechoir + version: 0.6.2 + engines: {node: '>= 0.10'} + dependencies: + resolve: registry.npmmirror.com/resolve/1.22.0 + dev: false + + registry.npmmirror.com/regenerator-runtime/0.13.9: + resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz} + name: regenerator-runtime + version: 0.13.9 + dev: true + + registry.npmmirror.com/resolve/1.22.0: + resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz} + name: resolve + version: 1.22.0 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module/2.8.1 + path-parse: registry.npmmirror.com/path-parse/1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0 + dev: false + + registry.npmmirror.com/restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz} + name: restore-cursor + version: 3.1.0 + engines: {node: '>=8'} + dependencies: + onetime: registry.npmmirror.com/onetime/5.1.2 + signal-exit: registry.npmmirror.com/signal-exit/3.0.7 + dev: false + + registry.npmmirror.com/run-async/2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz} + name: run-async + version: 2.4.1 + engines: {node: '>=0.12.0'} + dev: false + + registry.npmmirror.com/rxjs/7.5.5: + resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rxjs/-/rxjs-7.5.5.tgz} + name: rxjs + version: 7.5.5 + dependencies: + tslib: registry.npmmirror.com/tslib/2.3.1 + dev: false + + registry.npmmirror.com/safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz} + name: safe-buffer + version: 5.1.2 + dev: false + + registry.npmmirror.com/safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz} + name: safer-buffer + version: 2.1.2 + + registry.npmmirror.com/shelljs/0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shelljs/-/shelljs-0.8.5.tgz} + name: shelljs + version: 0.8.5 + engines: {node: '>=4'} + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob/7.2.0 + interpret: registry.npmmirror.com/interpret/1.4.0 + rechoir: registry.npmmirror.com/rechoir/0.6.2 + dev: false + + registry.npmmirror.com/signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz} + name: signal-exit + version: 3.0.7 + dev: false + + registry.npmmirror.com/source-map/0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz} + name: source-map + version: 0.5.7 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + requiresBuild: true + + registry.npmmirror.com/string-width/1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-1.0.2.tgz} + name: string-width + version: 1.0.2 + engines: {node: '>=0.10.0'} + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point/1.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi/3.0.1 + + registry.npmmirror.com/string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz} + name: string-width + version: 4.2.3 + engines: {node: '>=8'} + dependencies: + emoji-regex: registry.npmmirror.com/emoji-regex/8.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point/3.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + + registry.npmmirror.com/string_decoder/1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz} + name: string_decoder + version: 1.1.1 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer/5.1.2 + dev: false + + registry.npmmirror.com/strip-ansi/3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz} + name: strip-ansi + version: 3.0.1 + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex/2.1.1 + + registry.npmmirror.com/strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} + name: strip-ansi + version: 6.0.1 + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex/5.0.1 + + registry.npmmirror.com/supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag/4.0.0 + + registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through/-/through-2.3.8.tgz} + name: through + version: 2.3.8 + dev: false + + registry.npmmirror.com/tmp/0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz} + name: tmp + version: 0.0.33 + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: registry.npmmirror.com/os-tmpdir/1.0.2 + dev: false + + registry.npmmirror.com/tslib/2.3.1: + resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz} + name: tslib + version: 2.3.1 + dev: false + + registry.npmmirror.com/type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz} + name: type-fest + version: 0.21.3 + engines: {node: '>=10'} + + registry.npmmirror.com/universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz} + name: universalify + version: 2.0.0 + engines: {node: '>= 10.0.0'} + dev: false + + registry.npmmirror.com/util-deprecate/1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} + name: util-deprecate + version: 1.0.2 + dev: false + + registry.npmmirror.com/wcwidth/1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz} + name: wcwidth + version: 1.0.1 + dependencies: + defaults: registry.npmmirror.com/defaults/1.0.3 + dev: false + + registry.npmmirror.com/wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: false diff --git a/readme.md b/readme.md index 5bfe889..94fcc39 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,7 @@ # ** 测试阶段,有问题请issues ** -[![star](https://gitee.com/zhangfisher/voerka-i18n/badge/star.svg?theme=white)](https://gitee.com/zhangfisher/voerka-i18n/stargazers) [![star](https://gitee.com/zhangfisher/voerka-i18n/badge/star.svg?theme=white)](https://gitee.com/zhangfisher/voerka-i18n/stargazers) +[![star](https://gitee.com/zhangfisher/voerka-i18n/badge/star.svg?theme=white)](https://gitee.com/zhangfisher/voerka-i18n/stargazers) # 前言 @@ -56,7 +56,7 @@ ``` - **@voerkai18/runtime** - **可选的**,运行时,`@voerkai18/cli`的依赖。大部分情况下不需要手动安装。 + **可选的**,运行时,`@voerkai18/cli`的依赖。大部分情况下不需要手动安装,一般仅在开发库项目时采用独立的运行时依赖。 ```javascript npm install --save @voerkai18/runtime @@ -399,210 +399,7 @@ t("My name is { name | UpperCase | mr }",{name:"tom"}) `{data | f1 | f2 | f3(1)}`等效于` f3(f2(f1(data)),1)` -### 自定义格式化器 -当我们使用`voerkai18n compile`编译后,会生成`languages/formatters.js`文件,可以在该文件中自定义您自己的格式化器。 - -`formatters.js`文件内容如下: - -```javascript -module.exports = { - // 在所有语言下生效的格式化器 - "*":{ - //[格式化名称]:(value)=>{...}, - //[格式化名称]:(value,arg)=>{...}, - }, - // 在所有语言下只作用于特定数据类型的格式化器 - $types:{ - // [数据类型名称]:(value)=>{...}, - // [数据类型名称]:(value)=>{...}, - }, - cn:{ - $types:{ - // 所有类型的默认格式化器 - "*":{ - }, - Date:{}, - Number:{}, - Boolean:{ }, - String:{}, - Array:{ - - }, - Object:{ - - } - }, - [格式化名称]:(value)=>{.....}, - //..... - }, - en:{ - $types:{ - // [数据类型名称]:(value)=>{...}, - }, - [格式化名称]:(value)=>{.....}, - //.....更多的格式化器..... - } -} -``` - -**说明:** - -#### 格式化器函数 - -**每一个格式化器就是一个普通的同步函数**,不支持异步函数。 - -典型的无参数的格式化器:`(value)=>{....返回格式化的结果...}`。 - -带参数的格式化器:`(value,arg1,...)=>{....返回格式化的结果...}`,其中`value`是上一个格式化器的输出结果。 - -#### 类型格式化器 - -可以为每一种数据类型指定一个默认的格式化器,支持对`String`、`Date`、`Error`、`Object`、`Array`、`Boolean`、`Number`等数据类型的格式化。 - -当插值变量传入时,如果有定义了对应的的类型格式化器,会先调用该格式化器。 - -比如我们定义对`Boolean`类型格式化器, - -```javascript -//formatters.js - -module.exports = { - // 在所有语言下只作用于特定数据类型的格式化器 - $types:{ - Boolean:(value)=> value ? "ON" : "OFF" - } -} -t("灯状态:{status}",true) // === 灯状态:ON -t("灯状态:{status}",false) // === 灯状态:OFF -``` - -在上例中,如果我们想在不同的语言环境下,翻译为不同的显示文本,则可以为不同的语言指定类型格式化器 - -```javascript -//formatters.js -module.exports = { - cn:{ - $types:{ - Boolean:(value)=> value ? "开" : "关" - } - }, - en:{ - $types:{ - Boolean:(value)=> value ? "ON" : "OFF" - } - } -} -// 当切换到中文时 -t("灯状态:{status}",true) // === 灯状态:开 -t("灯状态:{status}",false) // === 灯状态:关 -// 当切换到英文时 -t("灯状态:{status}",true) // === 灯状态:ON -t("灯状态:{status}",false) // === 灯状态:OFF -``` - -**说明:** - -- 完整的类型格式化器定义形式 - - ```javascript - module.exports = { - "*":{ - $types:{...} - }, - cn:{ - $types:{...} - }, - en:{ - $types:{....} - } - } - ``` - - 在匹配应用格式化时会先在当前语言的`$types`中查找匹配的格式化器,如果找不到再上`*.$types`中查找。 - -- `*.$types`代表当所有语言中均没有定义时才匹配的类型格式化。 - -- 类型格式化器是默认执行的,不需要指定名称。 - -- 当前作用域的格式化器优先于全局的格式化器。(后续) - -#### 通用的格式化器 - -类型格式化器只针对特定数据类型,并且会默认调用。而通用的格式化器需要使用`|`管道符进行显式调用。 - -同样的,通用的格式化器定义在`languages/formatters.js`中。 - -```javascript -module.exports = { - "*":{ - $types:{...}, - [格式化名称]:(value)=>{.....}, - }, - cn:{ - $types:{...}, - [格式化名称]:(value)=>{.....}, - }, - en:{ - $types:{....}, - [格式化名称]:(value)=>{.....}, - [格式化名称]:(value,arg)=>{.....}, - } -} -``` - -每一个格式化器均需要指定一个名称,在进行插值替换时会优先依据当前语言来匹配查找格式化器,如果找不到,再到键名为`*`中查找。 - -```javascript -module.exports = { - "*":{ - uppercase:(value)=>value - }, - cn:{ - uppercase:(value)=>["一","二","三","四","五","六","七","八","九","十"][value-1] - }, - en:{ - uppercase:(value)=>["One","Two","Three","Four","Five","Six","seven","eight","nine","ten"][value-1] - }, - jp:{ - - } -} -// 当切换到中文时 -t("{value | uppercase}",1) // == 一 -t("{value | uppercase}",2) // == 二 -t("{value | uppercase}",3) // == 三 -// 当切换到英文时 -t("{value | uppercase}",1) // == One -t("{value | uppercase}",2) // == Two -t("{value | uppercase}",3) // == Three -// 当切换到日文时,由于在该语言下没有定义uppercase格式式,因此到*中查找 -t("{value | uppercase}",1) // == 1 -t("{value | uppercase}",2) // == 2 -t("{value | uppercase}",3) // == 3 -``` - -### 作用域格式化器 - -定义在`languages/formatters.js`里面的格式化器仅在当前工程生效,也就是仅在当前作用域生效。一般由应用开发者自行扩展。 - -关于作用域的概念详见后续介绍。 - -### 全局格式化器 - -定义在`@voerkai18n/runtime`里面的格式化器则全局有效,在所有场合均可以使用,但是其优先级低于作用域内的同名格式化器。目前内置的格式化器有: - -| 名称 | | 说明 | -| ---- | ---- | ---- | -| | | | -| | | | -| | | | - -### 扩展格式化器 - -除了可以在当前项目`languages/formatters.js`自定义格式化器和`@voerkai18n/runtime`里面的全局格式化器外,单列了`@voerkai18n/formatters`项目用来包含了更多的格式化器。 - -作为开源项目,欢迎大家提交贡献更多的格式化器。 ## 日期时间 @@ -792,6 +589,181 @@ languages `名称空间`仅仅是为了解决当翻译内容太多时的分类问题。 + + +## 切换语言 + +可以通过全局单例或当前作用域实例切换语言。 + +```javascript +import { i18nScope } from "./languages" + +// 切换到英文 +await i18nScope.change("en") +// VoerkaI18n是一个全局单例,可以直接访问 +VoerkaI18n.change("en") +``` + +侦听语言切换事件: + +```javascript +import { i18nScope } from "./languages" + +// 切换到英文 +i18nScope.on((newLanguage)=>{ + ... +}) +// +VoerkaI18n.on((newLanguage)=>{ + ... +}) +``` + +## Vue应用 + +在`Vue3`应用中引入`voerkai18n`来添加国际化应用需要由两个插件来简化应用。 + +- **@voerkai18n/vue** + + **Vue插件**,在初始化Vue应用时引入,提供访问`当前语言`、`切换语言`、`自动更新`等功能。 + +- **@voerkai18n/vite** + + **Vite插件**,在`vite.config.js`中配置,用来实现`自动文本映射`、`自动导入t函数`等功能。 + + + +`@voerkai18n/vue`和`@voerkai18n/vite`两件插件相互配合,安装配置好这两个插件后,就可以在Vue文件使用多语言`t`函数。 + +**重点:`t`函数会在使用`@voerkai18n/vite`插件后自动注入,因此在Vue文件中可以直接使用。** + +```Vue + + + +``` + +**说明:** + +- 事实上,就算没有`@voerkai18n/vue`和`@voerkai18n/vite`两件插件相互配合,只需要导入`t`函数也就可以直接使用。这两个插件只是很简单的封装而已。 +- 如果要在应用中进行`语言动态切换`,则需要在应用中引入`@voerkai18n/vue`,请参阅`@voerkai18n/vue`插件使用说明。 +- `@voerkai18n/vite`的使用请参阅后续说明。 + +## React应用 + + + +# 高级特性 + +## 运行时 + +`@voerkai18n/runtime`是`voerkai18n`的运行时依赖,支持两种依赖方式。 + +- **源码依赖** + + 默认情况下,运行`voerkai18n compile`时会在`languages`文件下生成运行时文件`runtime.js`,该文件被`languages/index.js`引入,里面是核心运行时`ES6`源代码(`@voerkai18n/runtime`源码),也就是在您的工程中是直接引入的运行时代码,因此就不需要额外安装`@voerkai18n/runtime`了。 + + 此时,`@voerkai18n/runtime`源码就成为您工程是一部分。 + +- **库依赖** + + 当运行`voerkai18n compile --no-inline-runtime`时,就不会生成运行时文件`runtime.js`,而是采用`import "@voerkai18n/runtime`的方式导入运行时,此时会自动/手动安装`@voerkai18n/runtime`到运行依赖中。 + + + +**那么应该选择`源码依赖`还是`库依赖`呢?** + +问题的重点在于,在`monorepo`工程或者`开发库`时,`源码依赖`会导致存在重复的运行时源码。而采用`库依赖`,则不存在此问题。因此: + +- 普通应用采用`源码依赖`方式,运行`voerkai18n compile `来编译语言包。 +- `monorepo`工程或者`开发库`采用`库依赖`,`voerkai18n compile --no-inline-runtime`来编译语言包。 + + + +**注意:** + +- `@voerkai18n/runtime`发布了`commonjs`和`esm`两个经过`babel/rollup`转码后的`ES5`版本。 + +- 每次运行`voerkai18n compile`时均会重新生成`runtime.js`源码文件,为了确保最新的运行时,请及时更新`@voerkai18n/cli` + +- 当升级了`@voerkai18n/runtime`后,需要重新运行`voerkai18n compile`以重新生成`runtime.js`文件。 + + + +## 文本映射 + +虽然`VoerkaI18n`推荐采用`t("中华人民共和国万岁")`形式的符合直觉的翻译形式,而不是采用`t("xxxx.xxx")`这样不符合直觉的形式,但是为什么大部份的国际化方案均采用`t("xxxx.xxx")`形式? + +在我们的方案中,t("中华人民共和国万岁")形式相当于采用原始文本进行查表,语言名形式如下: + +```javascript +// en.js +{ + "中华人民共和国":"the people's Republic of China" +} +// jp.js +{ + "中华人民共和国":"中華人民共和国" +} +``` + +很显然,直接使用文本内容作为`key`,虽然符合直觉,但是会造成大量的冗余信息。因此,`voerkai18n compile`会将之编译成如下: + +```javascript +//idMap.js +{ + "1":"中华人民共和国万岁" +} +// en.js +{ + "1":"Long live the people's Republic of China" +} +// jp.js +{ + "2":"中華人民共和国" +} +``` + +如此,就消除了在`en.js`、`jp.js`文件中的冗余。但是在源代码文件中还存在`t("中华人民共和国万岁")`,整个运行环境中存在两份副本,一份在源代码文件中,一份在`idMap.js`中。 + +为了进一步减少重复内容,因此,我们需要将源代码文件中的`t("中华人民共和国万岁")`更改为`t("1")`,这样就能确保无重复冗余。但是,很显然,我们不可能手动来更改源代码文件,这就需要由`voerkai18n`提供的一个编译区插件来做这一件事了。 + +以`babel-plugin-voerkai18n`插件为例,该插件同时还完成一份任务,就是自动读取`voerkai18n compile`生成的`idMap.js`文件,然后将`t("中华人民共和国万岁")`自动更改为`t("1")`,这样就完全消除了重复冗余信息。 + +所以,在最终形成的代码中,实际上每一个t函数均是`t("1")`、`t("2")`、`t("3")`、`...`、`t("n")`的形式,最终代码还是采用了用`key`来进行转换,只不过这个过程是自动完成的而已。 + +**注意:** + +- 如果没有启用`babel-plugin-voerkai18n`或`vite`等编译区插件,还是可以正常工作,但是会有一份默认语言的冗余信息存在。 + ## 多库联动 `voerkai18n `支持多个库国际化的联动和协作,即**当主程序切换语言时,所有引用依赖库也会跟随主程序进行语言切换**,整个切换过程对所有库开发都是透明的。 @@ -826,7 +798,243 @@ import { t } from "../../../languages" 作为国际化解决方案,一般工程的大部份源码中均会使用到翻译函数,这种使用体验比较差。 -为此,我们提供了一个`babel`插件来自动完成翻译函数的自动引入。使用方法如下: +为此,我们提供了一个`babel`插件来自动完成翻译函数的自动引入,详见后续`bable`插件、`vite`插件等介绍。 + +## 自定义格式化器 + +当我们使用`voerkai18n compile`编译后,会生成`languages/formatters.js`文件,可以在该文件中自定义您自己的格式化器。 + +`formatters.js`文件内容如下: + +```javascript +module.exports = { + // 在所有语言下生效的格式化器 + "*":{ + //[格式化名称]:(value)=>{...}, + //[格式化名称]:(value,arg)=>{...}, + }, + // 在所有语言下只作用于特定数据类型的格式化器 + $types:{ + // [数据类型名称]:(value)=>{...}, + // [数据类型名称]:(value)=>{...}, + }, + cn:{ + $types:{ + // 所有类型的默认格式化器 + "*":{ + }, + Date:{}, + Number:{}, + Boolean:{ }, + String:{}, + Array:{ + + }, + Object:{ + + } + }, + [格式化名称]:(value)=>{.....}, + //..... + }, + en:{ + $types:{ + // [数据类型名称]:(value)=>{...}, + }, + [格式化名称]:(value)=>{.....}, + //.....更多的格式化器..... + } +} +``` + +### 格式化器函数 + +**每一个格式化器就是一个普通的同步函数**,不支持异步函数,格式化器函数可以支持无参数或有参数。 + +- 无参数的格式化器:`(value)=>{....返回格式化的结果...}`。 + +- 带参数的格式化器:`(value,arg1,...)=>{....返回格式化的结果...}`,其中`value`是上一个格式化器的输出结果。 + +### 类型格式化器 + +可以为每一种数据类型指定一个默认的格式化器,支持对`String`、`Date`、`Error`、`Object`、`Array`、`Boolean`、`Number`等数据类型的格式化。 + +当插值变量传入时,如果有定义了对应的的类型格式化器,会默认调用该格式化器对数据进行转换。 + +比如我们定义对`Boolean`类型格式化器, + +```javascript +//formatters.js + +module.exports = { + // 在所有语言下只作用于特定数据类型的格式化器 + $types:{ + Boolean:(value)=> value ? "ON" : "OFF" + } +} +t("灯状态:{status}",true) // === 灯状态:ON +t("灯状态:{status}",false) // === 灯状态:OFF +``` + +在上例中,如果我们想在不同的语言环境下,翻译为不同的显示文本,则可以为不同的语言指定类型格式化器 + +```javascript +//formatters.js +module.exports = { + cn:{ + $types:{ + Boolean:(value)=> value ? "开" : "关" + } + }, + en:{ + $types:{ + Boolean:(value)=> value ? "ON" : "OFF" + } + } +} +// 当切换到中文时 +t("灯状态:{status}",true) // === 灯状态:开 +t("灯状态:{status}",false) // === 灯状态:关 +// 当切换到英文时 +t("灯状态:{status}",true) // === 灯状态:ON +t("灯状态:{status}",false) // === 灯状态:OFF +``` + +**说明:** + +- 完整的类型格式化器定义形式 + + ```javascript + module.exports = { + "*":{ + $types:{...} + }, + cn:{ + $types:{...} + }, + en:{ + $types:{....} + } + } + ``` + + 在匹配应用格式化时会先在当前语言的`$types`中查找匹配的格式化器,如果找不到再上`*.$types`中查找。 + +- `*.$types`代表当所有语言中均没有定义时才匹配的类型格式化。 + +- 类型格式化器是**默认执行的,不需要指定名称**。 + +- 当前作用域的格式化器优先于全局的格式化器。 + +### 通用的格式化器 + +类型格式化器只针对特定数据类型,并且会默认调用。而通用的格式化器需要使用`|`管道符进行显式调用。 + +同样的,通用的格式化器定义在`languages/formatters.js`中。 + +```javascript +module.exports = { + "*":{ + $types:{...}, + [格式化名称]:(value)=>{.....}, + }, + cn:{ + $types:{...}, + [格式化名称]:(value)=>{.....}, + }, + en:{ + $types:{....}, + [格式化名称]:(value)=>{.....}, + [格式化名称]:(value,arg)=>{.....}, + } +} +``` + +每一个格式化器均需要指定一个名称,在进行插值替换时会优先依据当前语言来匹配查找格式化器,如果找不到,再到键名为`*`中查找。 + +```javascript +module.exports = { + "*":{ + uppercase:(value)=>value + }, + cn:{ + uppercase:(value)=>["一","二","三","四","五","六","七","八","九","十"][value-1] + }, + en:{ + uppercase:(value)=>["One","Two","Three","Four","Five","Six","seven","eight","nine","ten"][value-1] + }, + jp:{ + + } +} +// 当切换到中文时 +t("{value | uppercase}",1) // == 一 +t("{value | uppercase}",2) // == 二 +t("{value | uppercase}",3) // == 三 +// 当切换到英文时 +t("{value | uppercase}",1) // == One +t("{value | uppercase}",2) // == Two +t("{value | uppercase}",3) // == Three +// 当切换到日文时,由于在该语言下没有定义uppercase格式式,因此到*中查找 +t("{value | uppercase}",1) // == 1 +t("{value | uppercase}",2) // == 2 +t("{value | uppercase}",3) // == 3 +``` + +### 作用域格式化器 + +定义在`languages/formatters.js`里面的格式化器仅在当前工程生效,也就是仅在当前作用域生效。一般由应用开发者自行扩展。 + +### 全局格式化器 + +定义在`@voerkai18n/runtime`里面的格式化器则全局有效,在所有场合均可以使用,但是其优先级低于作用域内的同名格式化器。目前内置的格式化器有: + +| 名称 | | 说明 | +| ---- | ---- | ---- | +| | | | +| | | | +| | | | + +### 扩展格式化器 + +除了可以在当前项目`languages/formatters.js`自定义格式化器和`@voerkai18n/runtime`里面的全局格式化器外,单列了`@voerkai18n/formatters`项目用来包含了更多的格式化器。 + +作为开源项目,欢迎大家提交贡献更多的格式化器。 + +## 语言包 + +当使用`webpack`、`rollup`、`esbuild`进行项目打包时,默认语言包采用静态加载,会被打包进行源码中,而其他语言则采用异步打包方式。在`languages/index.js`中。 + +```javascript +const defaultMessages = require("./cn.js") +const activeMessages = defaultMessages + +// 语言作用域 +const scope = new i18nScope({ + default: defaultMessages, // 默认语言包 + messages : activeMessages, // 当前语言包 + .... + // 以下为每一种语言生成一个异步打包语句 + loaders:{ + "en" : ()=>import("./en.js") + "de" : ()=>import("./de.js") + "jp" : ()=>import("./jp.js") + }) +``` + +# 扩展工具 + +## babel插件 + +全局安装`@voerkai18n/babel`插件用来进行自动导入`t`函数和自动文本映射。 + +```javascript +> npm install -g @voerkai18n/babel +> yarn global add @voerkai18n/babel +> pnpm add -g @voerkai18n/babel +``` + +使用方法如下: - 在`babel.config.js`中配置插件 @@ -840,7 +1048,6 @@ module.expors = { // 可选,指定语言文件存放的目录,即保存编译后的语言文件的文件夹 // 可以指定相对路径,也可以指定绝对路径 // location:"", - autoImport:"#/languages" } ] @@ -884,129 +1091,194 @@ module.expors = { 如`webpack`、`rollup`等打包工具也有类似的插件可以实现别名等转换,其目的就是让`babel-plugin-voerkai18n`插件能自动导入固定路径,而不是各种复杂的相对路径。 -## 文本映射 +## Vue插件 -虽然`VoerkaI18n`推荐采用`t("中华人民共和国万岁")`形式的符合直觉的翻译形式,而不是采用`t("xxxx.xxx")`这样不符合直觉的形式,但是为什么大部份的国际化方案均采用`t("xxxx.xxx")`形式? +在`vue3`项目中可以安装`@voerkai18n/vue`来实现`枚举语言`、`语言切换`等功能。 -在我们的方案中,t("中华人民共和国万岁")形式相当于采用原始文本进行查表,语言名形式如下: +### **安装** + +将`@voerkai18n/vue`安装为运行时依赖 ```javascript -// en.js -{ - "中华人民共和国":"the people's Republic of China" +npm install @voerkai18n/vue +pnpm add @voerkai18n/vue +yarn add @voerkai18n/vue +``` + +### 启用插件 + +```javascript + import { createApp } from 'vue' + import Root from './App.vue' + import i18nPlugin from '@voerkai18n/vue' + import { i18nScope } from './languages' + const app = createApp(Root) + app.use(i18nPlugin,{ i18nScope }) // 重点,需要引入i18nScope + app.mount('#app') +``` + +插件安装成功后,在当前`Vue App`实例上`provide`一个`i18n`响应式实例。 + +### 注入`i18n`实例 + +接下来在组件中按需注入`i18n`实例,可以用来访问当前的`激活语言`、`默认语言`、`切换语言`等。 + +```javascript + +``` + +声明`inject: ['i18n']`后在当前组件实例中就可以访问`this.i18n`,该实例是一个经过`reactive`封闭的响应式对象,其内容是: + +```javascript +this.i18n = { + activeLanguage, // 当前激活语言,可以通过直接赋值来切换语言 + defaultLanguage, // 默认语言名称 + languages // 支持的语言列表=[{name,title},...] } ``` -很显然,直接使用文本内容作为`key`,虽然符合直觉,但是会造成大量的冗余信息。因此,`voerkai18n compile`会将之编译成如下: +### 应用示例 -```javascript -//idMap.js -{ - "1":"中华人民共和国万岁" -} -// en.js -{ - "1":"Long live the people's Republic of China" -} -// jp.js -{ - "2":"中華人民共和国" +注入`i18n`实例后就可以在此基础上实现`激活语言`、`默认语言`、`切换语言`等功能。 + +```vue + +