diff --git a/.gitignore b/.gitignore index 4691530..78e4cf5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ /.vscode /node_modules -/demo/apps/app/languages \ No newline at end of file +node_modules +/packages/demo/apps/app/languages +/packages/demo/apps/*/languages +/packages/demo/*/node_modules +/coverage \ No newline at end of file diff --git a/demo/apps/app/languages/cn.js b/demo/apps/app/languages/cn.js deleted file mode 100644 index 8d413eb..0000000 --- a/demo/apps/app/languages/cn.js +++ /dev/null @@ -1,27 +0,0 @@ -module.exports = { - "1": "a1:aaaaa", - "2": "no aaaaa", - "3": "bbbbb", - "4": "eeeeee", - "5": "x:from a", - "6": "中华人民共和国", - "7": "a2:aaaaa", - "8": "no erer", - "9": "no aaareraa", - "10": "no fdfd", - "11": "fdgfdgfdg", - "12": "aaaaa", - "13": "aaaaa1", - "14": "aaaaa2", - "15": "aaaaa 3", - "16": "ccccc", - "17": "cccccdc", - "18": "ddddd中国", - "19": "html-a", - "20": "html-b", - "21": "html-c", - "22": "from a", - "23": "from b", - "24": "from c1", - "25": "from c2" -} \ No newline at end of file diff --git a/demo/apps/app/languages/de.js b/demo/apps/app/languages/de.js deleted file mode 100644 index f4ec482..0000000 --- a/demo/apps/app/languages/de.js +++ /dev/null @@ -1,27 +0,0 @@ -module.exports = { - "1": "德文:aaaaa", - "2": "no aaaaa", - "3": "bbbbb", - "4": "eeeeee", - "5": "x:from a", - "6": "中华人民共和国", - "7": "a2:aaaaa", - "8": "no erer", - "9": "no aaareraa", - "10": "no fdfd", - "11": "fdgfdgfdg", - "12": "aaaaa", - "13": "aaaaa1", - "14": "aaaaa2", - "15": "aaaaa 3", - "16": "ccccc", - "17": "cccccdc", - "18": "ddddd中国", - "19": "html-a", - "20": "html-b", - "21": "html-c", - "22": "from a", - "23": "from b", - "24": "from c1", - "25": "from c2" -} \ No newline at end of file diff --git a/demo/apps/app/languages/en.js b/demo/apps/app/languages/en.js deleted file mode 100644 index 8d413eb..0000000 --- a/demo/apps/app/languages/en.js +++ /dev/null @@ -1,27 +0,0 @@ -module.exports = { - "1": "a1:aaaaa", - "2": "no aaaaa", - "3": "bbbbb", - "4": "eeeeee", - "5": "x:from a", - "6": "中华人民共和国", - "7": "a2:aaaaa", - "8": "no erer", - "9": "no aaareraa", - "10": "no fdfd", - "11": "fdgfdgfdg", - "12": "aaaaa", - "13": "aaaaa1", - "14": "aaaaa2", - "15": "aaaaa 3", - "16": "ccccc", - "17": "cccccdc", - "18": "ddddd中国", - "19": "html-a", - "20": "html-b", - "21": "html-c", - "22": "from a", - "23": "from b", - "24": "from c1", - "25": "from c2" -} \ No newline at end of file diff --git a/demo/apps/app/languages/idMap.js b/demo/apps/app/languages/idMap.js deleted file mode 100644 index d139cfc..0000000 --- a/demo/apps/app/languages/idMap.js +++ /dev/null @@ -1,27 +0,0 @@ -export default { - "a1:aaaaa": 1, - "no aaaaa": 2, - "bbbbb": 3, - "eeeeee": 4, - "x:from a": 5, - "中华人民共和国": 6, - "a2:aaaaa": 7, - "no erer": 8, - "no aaareraa": 9, - "no fdfd": 10, - "fdgfdgfdg": 11, - "aaaaa": 12, - "aaaaa1": 13, - "aaaaa2": 14, - "aaaaa 3": 15, - "ccccc": 16, - "cccccdc": 17, - "ddddd中国": 18, - "html-a": 19, - "html-b": 20, - "html-c": 21, - "from a": 22, - "from b": 23, - "from c1": 24, - "from c2": 25 -} \ No newline at end of file diff --git a/demo/apps/app/languages/index.js b/demo/apps/app/languages/index.js deleted file mode 100644 index 11bc444..0000000 --- a/demo/apps/app/languages/index.js +++ /dev/null @@ -1,43 +0,0 @@ - -const messageIds = require("./idMap") -const { translate,i18n } = require("voerka-i18n") -const defaultMessages = require("./cn.js") -const i18nSettings = require("./settings.js") -const formatters = require("../formatters") - - -// 自动创建全局VoerkaI18n实例 -if(!globalThis.VoerkaI18n){ - globalThis.VoerkaI18n = new i18n(i18nSettings) -} - -let scope = { - defaultLanguage: "cn", // 默认语言名称 - default: defaultMessages, // 默认语言包 - messages : defaultMessages, // 当前语言包 - idMap:messageIds, // 消息id映射列表 - formatters, // 当前作用域的格式化函数列表 - loaders:{}, // 异步加载语言文件的函数列表 - global:{} // 引用全局VoerkaI18n配置 -} - -let supportedlanguages = {} - -messages["cn"]= defaultMessages - -scope.loaders["en"] = ()=>import("./en.js") - -scope.loaders["de"] = ()=>import("./de.js") - -scope.loaders["jp"] = ()=>import("./jp.js") - - -const t = ()=> translate.bind(scope)(...arguments) - -// 注册当前作用域到全局VoerkaI18n实例 -VoerkaI18n.register(scope) - - -module.exports.scope = scope -module.exports.t = t - diff --git a/demo/apps/app/languages/jp.js b/demo/apps/app/languages/jp.js deleted file mode 100644 index 8d413eb..0000000 --- a/demo/apps/app/languages/jp.js +++ /dev/null @@ -1,27 +0,0 @@ -module.exports = { - "1": "a1:aaaaa", - "2": "no aaaaa", - "3": "bbbbb", - "4": "eeeeee", - "5": "x:from a", - "6": "中华人民共和国", - "7": "a2:aaaaa", - "8": "no erer", - "9": "no aaareraa", - "10": "no fdfd", - "11": "fdgfdgfdg", - "12": "aaaaa", - "13": "aaaaa1", - "14": "aaaaa2", - "15": "aaaaa 3", - "16": "ccccc", - "17": "cccccdc", - "18": "ddddd中国", - "19": "html-a", - "20": "html-b", - "21": "html-c", - "22": "from a", - "23": "from b", - "24": "from c1", - "25": "from c2" -} \ No newline at end of file diff --git a/demo/apps/app/languages/package.json b/demo/apps/app/languages/package.json deleted file mode 100644 index 96ae6e5..0000000 --- a/demo/apps/app/languages/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} \ No newline at end of file diff --git a/demo/apps/app/languages/settings.js b/demo/apps/app/languages/settings.js deleted file mode 100644 index 2ee86e8..0000000 --- a/demo/apps/app/languages/settings.js +++ /dev/null @@ -1,31 +0,0 @@ -export default { - "languages": [ - { - "name": "en", - "title": "英文" - }, - { - "name": "cn", - "title": "中文", - "default": true - }, - { - "name": "de", - "title": "德语" - }, - { - "name": "jp", - "title": "日本語" - } - ], - "defaultLanguage": "cn", - "activeLanguage": "cn", - "namespaces": { - "a": [ - "a" - ], - "b": [ - "b" - ] - } -} \ No newline at end of file diff --git a/demo/apps/app/languages/translates/a.json b/demo/apps/app/languages/translates/a.json deleted file mode 100644 index 96efcf3..0000000 --- a/demo/apps/app/languages/translates/a.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "a1:aaaaa": { - "en": "a1:aaaaa", - "de": "德文:aaaaa", - "jp": "a1:aaaaa", - "$file": [ - "a\\a1.js" - ] - }, - "no aaaaa": { - "en": "no aaaaa", - "de": "no aaaaa", - "jp": "no aaaaa", - "$file": [ - "a\\a1.js" - ] - }, - "bbbbb": { - "en": "bbbbb", - "de": "bbbbb", - "jp": "bbbbb", - "$file": [ - "a\\a1.js" - ] - }, - "eeeeee": { - "en": "eeeeee", - "de": "eeeeee", - "jp": "eeeeee", - "$file": [ - "a\\a1.js", - "a\\a2.js" - ] - }, - "x:from a": { - "en": "x:from a", - "de": "x:from a", - "jp": "x:from a", - "$file": [ - "a\\a1.js" - ] - }, - "中华人民共和国": { - "en": "中华人民共和国", - "de": "中华人民共和国", - "jp": "中华人民共和国", - "$file": [ - "a\\a1.js" - ] - }, - "a2:aaaaa": { - "en": "a2:aaaaa", - "de": "a2:aaaaa", - "jp": "a2:aaaaa", - "$file": [ - "a\\a2.js" - ] - }, - "no erer": { - "en": "no erer", - "de": "no erer", - "jp": "no erer", - "$file": [ - "a\\a2.js" - ] - }, - "no aaareraa": { - "en": "no aaareraa", - "de": "no aaareraa", - "jp": "no aaareraa", - "$file": [ - "a\\a2.js" - ] - }, - "no fdfd": { - "en": "no fdfd", - "de": "no fdfd", - "jp": "no fdfd", - "$file": [ - "a\\a2.js" - ] - }, - "fdgfdgfdg": { - "en": "fdgfdgfdg", - "de": "fdgfdgfdg", - "jp": "fdgfdgfdg", - "$file": [ - "a\\a2.js" - ] - } -} \ No newline at end of file diff --git a/demo/apps/app/languages/translates/b.json b/demo/apps/app/languages/translates/b.json deleted file mode 100644 index 08ceb44..0000000 --- a/demo/apps/app/languages/translates/b.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "aaaaa": { - "en": "aaaaa", - "de": "aaaaa", - "jp": "aaaaa", - "$file": [ - "b\\b1.js" - ] - }, - "bbbbb": { - "en": "bbbbb", - "de": "bbbbb", - "jp": "bbbbb", - "$file": [ - "b\\b1.js" - ] - }, - "eeeeee": { - "en": "eeeeee", - "de": "eeeeee", - "jp": "eeeeee", - "$file": [ - "b\\b1.js" - ] - } -} \ No newline at end of file diff --git a/demo/apps/app/languages/translates/default.json b/demo/apps/app/languages/translates/default.json deleted file mode 100644 index e2e52e1..0000000 --- a/demo/apps/app/languages/translates/default.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "aaaaa": { - "en": "aaaaa", - "de": "aaaaa", - "jp": "aaaaa", - "$file": [ - "index.js" - ] - }, - "aaaaa1": { - "en": "aaaaa1", - "de": "aaaaa1", - "jp": "aaaaa1", - "$file": [ - "index.js" - ] - }, - "aaaaa2": { - "en": "aaaaa2", - "de": "aaaaa2", - "jp": "aaaaa2", - "$file": [ - "index.js" - ] - }, - "aaaaa 3": { - "en": "aaaaa 3", - "de": "aaaaa 3", - "jp": "aaaaa 3", - "$file": [ - "index.js" - ] - }, - "bbbbb": { - "en": "bbbbb", - "de": "bbbbb", - "jp": "bbbbb", - "$file": [ - "index.js" - ] - }, - "eeeeee": { - "en": "eeeeee", - "de": "eeeeee", - "jp": "eeeeee", - "$file": [ - "index.js", - "c\\c2.js" - ] - }, - "ccccc": { - "en": "ccccc", - "de": "ccccc", - "jp": "ccccc", - "$file": [ - "c\\c1.js" - ] - }, - "cccccdc": { - "en": "cccccdc", - "de": "cccccdc", - "jp": "cccccdc", - "$file": [ - "c\\c1.js" - ] - }, - "a2:aaaaa": { - "en": "a2:aaaaa", - "de": "a2:aaaaa", - "jp": "a2:aaaaa", - "$file": [ - "c\\c2.js" - ] - }, - "no erer": { - "en": "no erer", - "de": "no erer", - "jp": "no erer", - "$file": [ - "c\\c2.js" - ] - }, - "no aaareraa": { - "en": "no aaareraa", - "de": "no aaareraa", - "jp": "no aaareraa", - "$file": [ - "c\\c2.js" - ] - }, - "no fdfd": { - "en": "no fdfd", - "de": "no fdfd", - "jp": "no fdfd", - "$file": [ - "c\\c2.js" - ] - }, - "fdgfdgfdg": { - "en": "fdgfdgfdg", - "de": "fdgfdgfdg", - "jp": "fdgfdgfdg", - "$file": [ - "c\\c2.js" - ] - }, - "ddddd中国": { - "en": "ddddd中国", - "de": "ddddd中国", - "jp": "ddddd中国", - "$file": [ - "c\\c2.js" - ] - }, - "html-a": { - "en": "html-a", - "de": "html-a", - "jp": "html-a", - "$file": [ - "c\\h1.html" - ] - }, - "html-b": { - "en": "html-b", - "de": "html-b", - "jp": "html-b", - "$file": [ - "c\\h1.html" - ] - }, - "html-c": { - "en": "html-c", - "de": "html-c", - "jp": "html-c", - "$file": [ - "c\\h1.html" - ] - } -} \ No newline at end of file diff --git a/demo/apps/app/languages/translates/x.json b/demo/apps/app/languages/translates/x.json deleted file mode 100644 index 5c0d8df..0000000 --- a/demo/apps/app/languages/translates/x.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "from a": { - "en": "from a", - "de": "from a", - "jp": "from a", - "$file": [ - "a\\a2.js" - ] - }, - "from b": { - "en": "from b", - "de": "from b", - "jp": "from b", - "$file": [ - "b\\b1.js" - ] - }, - "from c1": { - "en": "from c1", - "de": "from c1", - "jp": "from c1", - "$file": [ - "c\\c1.js" - ] - }, - "from c2": { - "en": "from c2", - "de": "from c2", - "jp": "from c2", - "$file": [ - "c\\c2.js" - ] - } -} \ No newline at end of file diff --git a/demo/apps/lib1/languages/idMap.js b/demo/apps/lib1/languages/idMap.js deleted file mode 100644 index 5adaca2..0000000 --- a/demo/apps/lib1/languages/idMap.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - "a":1, - "b":2, - "c{}{}":3, - "d{a}{b}":4, - "e":5 -} \ No newline at end of file diff --git a/demo/apps/lib2/languages/idMap.js b/demo/apps/lib2/languages/idMap.js deleted file mode 100644 index 3053d9d..0000000 --- a/demo/apps/lib2/languages/idMap.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - "a":1, - "b":2, - "c{}{}":3, - "d{a}{b}":4, - "e":5 -} \ No newline at end of file diff --git a/demo/compile.demo.js b/demo/compile.demo.js deleted file mode 100644 index 2a0ca85..0000000 --- a/demo/compile.demo.js +++ /dev/null @@ -1,7 +0,0 @@ - - -const compile = require('../src/compile'); -const path = require("path") - - -compile(path.resolve(__dirname,"./apps/app/languages")) \ No newline at end of file diff --git a/package.json b/package.json index 5943b96..60ace59 100644 --- a/package.json +++ b/package.json @@ -5,25 +5,28 @@ "main": "index.js", "scripts": { "test": "jest", - "extract": "", - "babeldemo": "babel ./demodata/a/a1.js --plugins=./src/babel-plugin-voerkai18n.js" + "test:babelplugin": "jest babel", + "test:extract": "jest extract", + "test:translate": "jest translate", + "demo:extract": "node ./packages/demo/extract.demo.js", + "demo:compile": "node ./packages/demo/compile.demo.js", + "demo:babel": "babel ./demodata/a/a1.js --plugins=./src/babel-plugin-voerkai18n.js" }, "author": "", "license": "ISC", - "dependencies": { - "art-template": "^4.13.2", + "devDependencies": { + "@babel/core": "^7.17.5", + "@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", "deepmerge": "^4.2.2", - "glob": "^7.2.0", "gulp": "^4.0.2", - "logsets": "^1.0.6", - "readjson": "^2.2.2", - "through2": "^4.0.2" - }, - "devDependencies": { - "@babel/cli": "^7.17.6", - "@babel/core": "^7.17.5", "jest": "^27.5.1", + "rollup": "^2.69.0", + "rollup-plugin-clear": "^2.0.7", + "rollup-plugin-uglify": "^6.0.4", "vinyl": "^2.2.1" } } diff --git a/demo/apps/app/a/a1.js b/packages/demo/apps/app/a/a1.js similarity index 100% rename from demo/apps/app/a/a1.js rename to packages/demo/apps/app/a/a1.js diff --git a/demo/apps/app/a/a2.js b/packages/demo/apps/app/a/a2.js similarity index 100% rename from demo/apps/app/a/a2.js rename to packages/demo/apps/app/a/a2.js diff --git a/demo/apps/app/b/b1.js b/packages/demo/apps/app/b/b1.js similarity index 100% rename from demo/apps/app/b/b1.js rename to packages/demo/apps/app/b/b1.js diff --git a/demo/apps/app/c/c1.js b/packages/demo/apps/app/c/c1.js similarity index 100% rename from demo/apps/app/c/c1.js rename to packages/demo/apps/app/c/c1.js diff --git a/demo/apps/app/c/c2.js b/packages/demo/apps/app/c/c2.js similarity index 100% rename from demo/apps/app/c/c2.js rename to packages/demo/apps/app/c/c2.js diff --git a/demo/apps/app/c/h1.html b/packages/demo/apps/app/c/h1.html similarity index 100% rename from demo/apps/app/c/h1.html rename to packages/demo/apps/app/c/h1.html diff --git a/demo/apps/app/index.js b/packages/demo/apps/app/index.js similarity index 65% rename from demo/apps/app/index.js rename to packages/demo/apps/app/index.js index f2ddd0b..7627cca 100644 --- a/demo/apps/app/index.js +++ b/packages/demo/apps/app/index.js @@ -1,6 +1,7 @@ -// import {t } from "./languages" -// import { nanoid } from "./nanoid" -//const {t } = reuire("./languages") +const { t,languages,scope } = reuire("./languages") + + + function output(){ t("aaaaa") diff --git a/demo/babel.plugin.demo.js b/packages/demo/babel.plugin.demo.js similarity index 86% rename from demo/babel.plugin.demo.js rename to packages/demo/babel.plugin.demo.js index bae036d..de1b48a 100644 --- a/demo/babel.plugin.demo.js +++ b/packages/demo/babel.plugin.demo.js @@ -1,7 +1,7 @@ const babel = require("@babel/core"); const fs = require("fs"); const path = require("path"); -const i18nPlugin = require("../src/babel-plugin-voerkai18n"); +const i18nPlugin = require("@voerkai18n/tools/babel-plugin-voerkai18n"); const code = fs.readFileSync(path.join(__dirname, "./apps/app/index.js"), "utf-8"); diff --git a/packages/demo/compile.demo.js b/packages/demo/compile.demo.js new file mode 100644 index 0000000..72ce71a --- /dev/null +++ b/packages/demo/compile.demo.js @@ -0,0 +1,7 @@ + + +const compile = require('@voerkai18n/tools/compile'); +const path = require("path") + + +compile(path.resolve(__dirname,"./apps/app/languages")).then(()=>{}) \ No newline at end of file diff --git a/demo/extract.demo.js b/packages/demo/extract.demo.js similarity index 72% rename from demo/extract.demo.js rename to packages/demo/extract.demo.js index 22e9a23..02e9828 100644 --- a/demo/extract.demo.js +++ b/packages/demo/extract.demo.js @@ -1,5 +1,5 @@ const gulp = require('gulp'); -const extract = require('../src/extract.plugin'); +const extract = require('@voerkai18n/tools/extract.plugin'); const path = require('path'); @@ -13,7 +13,15 @@ gulp.src([ ]).pipe(extract({ debug:true, // output: path.join(soucePath , 'languages'), - languages: [{name:'en',title:"英文"},{name:'cn',title:"中文",default:true},{name:'de',title:"德语"},{name:'jp',title:"日語"}], + languages: [ + {name:'en',title:"英文"}, + {name:'cn',title:"中文",default:true}, + {name:'de',title:"德语"}, + {name:'fr',title:"法语"}, + {name:'es',title:"西班牙语"}, + {name:'it',title:"意大利语"}, + {name:'jp',title:"日語"} + ], // extractor:{ // default:[new RegExp()], // 默认匹配器,当文件类型没有对应的提取器时使用 // "*" : [new RegExp()], // 所有类型均会执行的提取器 diff --git a/packages/demo/package.json b/packages/demo/package.json new file mode 100644 index 0000000..7b8a064 --- /dev/null +++ b/packages/demo/package.json @@ -0,0 +1,20 @@ +{ + "name": "@voerkai18n/demo", + "version": "1.0.0", + "description": "", + "main": "babel.plugin.demo.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@voerkai18n/runtime": "workspace:^1.0.0", + "@voerkai18n/tools": "workspace:^1.0.0" + }, + "devDependencies": { + "deepmerge": "^4.2.2", + "gulp": "^4.0.2", + "vinyl": "^2.2.1" + } +} diff --git a/packages/formatters/package.json b/packages/formatters/package.json index bd81566..50cc226 100644 --- a/packages/formatters/package.json +++ b/packages/formatters/package.json @@ -7,5 +7,10 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", - "license": "ISC" + "license": "ISC", + "devDependencies": { + "deepmerge": "^4.2.2", + "gulp": "^4.0.2", + "vinyl": "^2.2.1" + } } diff --git a/packages/react/package.json b/packages/react/package.json new file mode 100644 index 0000000..344a31e --- /dev/null +++ b/packages/react/package.json @@ -0,0 +1,16 @@ +{ + "name": "@voerkai18n/react", + "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" + } +} diff --git a/packages/runtime/formatters.js b/packages/runtime/formatters.js new file mode 100644 index 0000000..84fd762 --- /dev/null +++ b/packages/runtime/formatters.js @@ -0,0 +1,60 @@ +/** + * 内置的格式化器 + * + */ + + +/** + * 字典格式化器 + * 根据输入data的值,返回后续参数匹配的结果 + * dict(data,,,,,,,...) + * + * + * dict(1,1,"one",2,"two",3,"three",4,"four") == "one" + * dict(2,1,"one",2,"two",3,"three",4,"four") == "two" + * dict(3,1,"one",2,"two",3,"three",4,"four") == "three" + * dict(4,1,"one",2,"two",3,"three",4,"four") == "four" + * // 无匹配时返回原始值 + * dict(5,1,"one",2,"two",3,"three",4,"four") == 5 + * // 无匹配时并且后续参数个数是奇数,则返回最后一个参数 + * dict(5,1,"one",2,"two",3,"three",4,"four","more") == "more" + * + * 在翻译中使用 + * I have { value | dict(1,"one",2,"two",3,"three",4,"four")} apples + * + * @param {*} value + * @param {...any} args + * @returns + */ +function dict(value,...args){ + for(let i=0;i0 && (args.length % 2!==0)) return args[args.length-1] + return value +} + + +module.exports = { + "*":{ + $types:{ + Date:(value)=>value.toLocaleString() + }, + time:(value)=> value.toLocaleTimeString(), + date: (value)=> value.toLocaleDateString(), + dict, //字典格式化器 + }, + cn:{ + $types:{ + Date:(value)=> `${value.getFullYear()}年${value.getMonth()+1}月${value.getDate()}日 ${value.getHours()}点${value.getMinutes()}分${value.getSeconds()}秒` + }, + time:(value)=>`${value.getHours()}点${value.getMinutes()}分${value.getSeconds()}秒`, + date: (value)=> `${value.getFullYear()}年${value.getMonth()+1}月${value.getDate()}日`, + currency:(value)=>`${value}元`, + }, + en:{ + currency:(value)=>`$${value}`, + } +} \ No newline at end of file diff --git a/src/index.js b/packages/runtime/index.js similarity index 93% rename from src/index.js rename to packages/runtime/index.js index 17827f4..c9f6dc5 100644 --- a/src/index.js +++ b/packages/runtime/index.js @@ -49,7 +49,7 @@ function hasInterpolation(str){ 目前对参数采用简单的split(",")来解析,因为无法正确解析aaa(1,1,"dd,,dd")形式的参数 在此场景下基本够用了,如果需要支持更复杂的参数解析,可以后续考虑使用正则表达式来解析 - @returns [,[,[,,...]]] + @returns [[,[,,...]]] */ function parseFormatters(formatters){ if(!formatters) return [] @@ -89,29 +89,51 @@ function parseFormatters(formatters){ /** * 提取字符串中的插值变量 + * // [ + // { + name:<变量名称>,formatters:[{name:<格式化器名称>,args:[<参数>,<参数>,....]]}],<匹配字符串>], + // .... + // * @param {*} str * @param {*} isFull =true 保留所有插值变量 =false 进行去重 - * @returns {Array} [[变量名称,[],match],[变量名称,[formatter,formatter,...],match],...] + * @returns {Array} + * [ + * { + * name:"<变量名称>", + * formatters:[ + * {name:"<格式化器名称>",args:[<参数>,<参数>,....]}, + * {name:"<格式化器名称>",args:[<参数>,<参数>,....]}, + * ], + * match:"<匹配字符串>" + * }, + * ... + * ] */ function getInterpolatedVars(str){ - let results = [], match - while ((match = varWithPipeRegexp.exec(str)) !== null) { - if (match.index === varWithPipeRegexp.lastIndex) { - varWithPipeRegexp.lastIndex++; - } - const varname = match.groups.varname || "" - // 解析格式化器和参数 = [,[,[,,...]]] - const formatters = parseFormatters(match.groups.formatters) - const varInfo = [varname,formatters,match] - results.push(varInfo) - } - return results + let vars = [] + forEachInterpolatedVars(str,(varName,formatters,match)=>{ + let varItem = { + name:varName, + formatters:formatters.map(([formatter,args])=>{ + return { + name:formatter, + args:args + } + }), + match:match + } + if(vars.findIndex(varDef=>((varDef.name===varItem.name) && (varItem.formatters.toString() == varDef.formatters.toString())))===-1){ + vars.push(varItem) + } + return "" + }) + return vars } /** - * 遍历插值变量,并进行替换插值变量 + * 遍历str中的所有插值变量传递给callback,将callback返回的结果替换到str中对应的位置 * @param {*} str - * @param {*} callback - * @returns + * @param {Function(<变量名称>,[formatters],match[0])} callback + * @returns 返回替换后的字符串 */ function forEachInterpolatedVars(str,callback,options={}){ let result=str, match @@ -126,9 +148,9 @@ function forEachInterpolatedVars(str,callback,options={}){ if(typeof(callback)==="function"){ try{ if(opts.replaceAll){ - result=result.replaceAll(match[0],callback(varname,formatters)) + result=result.replaceAll(match[0],callback(varname,formatters,match[0])) }else{ - result=result.replace(match[0],callback(varname,formatters)) + result=result.replace(match[0],callback(varname,formatters,match[0])) } }catch{// callback函数可能会抛出异常,如果抛出异常,则中断匹配过程 break @@ -443,12 +465,11 @@ function translate(message) { }else if(arguments.length >= 2){ vars = [...arguments].splice(1).map((arg,index)=>{ try{ - return typeof(arg)==="function" ? arg() : arg - }catch(e){ - return arg - } - // 位置参数中以第一个数值变量为复数变量 - if(isNumber(arg)) pluraValue = parseInt(arg) + arg = typeof(arg)==="function" ? arg() : arg + // 位置参数中以第一个数值变量为复数变量 + if(isNumber(arg)) pluraValue = parseInt(arg) + }catch(e){ } + return arg }) } @@ -475,7 +496,7 @@ function translate(message) { // 如果是数组说明要启用复数机制,需要根据插值变量中的某个变量来判断复数形式 if(Array.isArray(content) && content.length>0){ // 如果存在复数命名变量,只取第一个复数变量 - if(pluraValue){ // 启用的是位置插值,pluraIndex=第一个数字变量的位置 + if(pluraValue!==null){ // 启用的是位置插值,pluraIndex=第一个数字变量的位置 content = getPluraMessage(content,pluraValue) }else if(pluralVar.length>0){ content = getPluraMessage(content,parseInt(vars(pluralVar[0]))) @@ -509,7 +530,7 @@ function translate(message) { * VoerkaI18n.off("change",(language)=>{}) * * */ - class I18n{ + class I18nManager{ static instance = null; // 单例引用 callbacks = [] // 当切换语言时的回调事件 constructor(settings={}){ @@ -650,7 +671,7 @@ function translate(message) { module.exports ={ getInterpolatedVars, replaceInterpolatedVars, - I18n, + I18nManager, translate, languages, defaultLanguageSettings diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 4f3dfb7..31ea294 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,11 +1,14 @@ { "name": "@voerkai18n/runtime", "version": "1.0.0", - "description": "", + "description": "Voerkai18n Runtime", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", - "license": "ISC" + "license": "ISC", + "devDependencies": { + "deepmerge": "^4.2.2" + } } diff --git a/packages/runtime/rollup.config.js b/packages/runtime/rollup.config.js new file mode 100644 index 0000000..f17bbda --- /dev/null +++ b/packages/runtime/rollup.config.js @@ -0,0 +1,33 @@ + +import clear from 'rollup-plugin-clear' +import { uglify } from "rollup-plugin-uglify"; +import { babel } from '@rollup/plugin-babel'; +import commonjs from '@rollup/plugin-commonjs'; + +export default [ + { + input: './index.js', + output: [ + { + file: 'dist/index.mjs', + format:"es" + }, + { + file: 'dist/index.cjs', + exports:"default", + format:"cjs" + } + ], + plugins: [ + //resolve(), + commonjs(), + babel({ + babelHelpers:"runtime", + exclude: 'node_modules/**' + }), + clear({targets:["dist"]}), + uglify() + ], + external:["@babel/runtime"] + } +] \ No newline at end of file diff --git a/src/utils.js b/packages/runtime/utils.js similarity index 72% rename from src/utils.js rename to packages/runtime/utils.js index e81afd5..3478449 100644 --- a/src/utils.js +++ b/packages/runtime/utils.js @@ -31,32 +31,11 @@ function isPlainObject(obj){ function isNumber(value){ return !isNaN(parseInt(value)) } - - -/** - * 支持导入cjs和esm模块 - * @param {*} url - */ -async function importModule(url){ - try{ - return require(url) - }catch(e){ - // 当加载出错时,尝试加载esm模块 - if(e.code === "MODULE_NOT_FOUND"){ - return await import(url) - }else{ - throw e - } - } -} - - - + module.exports = { getDataTypeName, isNumber, - isPlainObject, - importModule + isPlainObject } diff --git a/src/babel-plugin-voerkai18n.js b/packages/tools/babel-plugin-voerkai18n.js similarity index 99% rename from src/babel-plugin-voerkai18n.js rename to packages/tools/babel-plugin-voerkai18n.js index eeb24f1..bf4ac5d 100644 --- a/src/babel-plugin-voerkai18n.js +++ b/packages/tools/babel-plugin-voerkai18n.js @@ -19,7 +19,7 @@ const fs = require("fs"); const path = require("path"); -const { isPlainObject } = require("./utils"); +const { isPlainObject } = require("../runtime/utils"); const DefaultI18nPluginOptions = { translateFunctionName:"t", // 默认的翻译函数名称 diff --git a/src/compile.js b/packages/tools/compile.js similarity index 64% rename from src/compile.js rename to packages/tools/compile.js index 31f90ef..bc9d99e 100644 --- a/src/compile.js +++ b/packages/tools/compile.js @@ -27,7 +27,7 @@ const readJson = require("readjson") const glob = require("glob") const createLogger = require("logsets") const path = require("path") -const { getMessageId } = require("./utils") +const { importModule } = require("./utils") const fs = require("fs") const logger = createLogger() const artTemplate = require("art-template") @@ -40,19 +40,30 @@ function normalizeCompileOptions(opts={}) { }, opts) if(options.moduleType==="es") options.moduleType = "esm" if(options.moduleType==="cjs") options.moduleType = "commonjs" - if(["commonjs","cjs","esm","es"].includes(options.moduleType)) options.moduleType = "esm" - return opts; + if(!["commonjs","cjs","esm","es"].includes(options.moduleType)) options.moduleType = "esm" + return options; } -module.exports = function compile(langFolder,opts={}){ +module.exports =async function compile(langFolder,opts={}){ const options = normalizeCompileOptions(opts); const { output,moduleType } = options; - - //1. 加载多语言配置文件 - import(`file:///${path.join(langFolder,"settings.js")}`).then(module=>{ + + // 加载多语言配置文件 + const settingsFile = path.join(langFolder,"settings.js") + try{ + // 读取多语言配置文件 + const module =await importModule(`file:///${settingsFile}`) const langSettings = module.default; let { languages,defaultLanguage,activeLanguage,namespaces } = langSettings - + + logger.log("支持的语言\t: {}",languages.map(item=>`${item.title}(${item.name})`)) + logger.log("默认语言\t: {}",defaultLanguage) + logger.log("激活语言\t: {}",activeLanguage) + logger.log("名称空间\t: {}",Object.keys(namespaces).join(",")) + logger.log("模块类型\t: {}",moduleType) + logger.log("") + logger.log("编译结果输出至:{}",langFolder) + // 1. 合并生成最终的语言文件 let messages = {} ,msgId =1 glob.sync(path.join(langFolder,"translates/*.json")).forEach(file=>{ @@ -69,6 +80,8 @@ module.exports = function compile(langFolder,opts={}){ logger.log("读取语言文件{}失败:{}",file,e.message) } }) + logger.log(" - 合成语言包文本,共{}条",Object.keys(messages).length) + // 2. 为每一个文本内容生成一个唯一的id let messageIds = {} Object.entries(messages).forEach(([msg,langs])=>{ @@ -88,6 +101,7 @@ module.exports = function compile(langFolder,opts={}){ }else{ fs.writeFileSync(langFile,`module.exports = ${JSON.stringify(langMessages,null,4)}`) } + logger.log(" - 语言包文件: {}",path.basename(langFile)) }) // 4. 生成id映射文件 @@ -97,29 +111,56 @@ module.exports = function compile(langFolder,opts={}){ }else{ fs.writeFileSync(idMapFile,`module.exports = ${JSON.stringify(messageIds,null,4)}`) } + logger.log(" - idMap文件: {}",path.basename(idMapFile)) // 5. 生成编译后的访问入口文件 const entryFile = path.join(langFolder,"index.js") - const entryContent = artTemplate(path.join(__dirname,"templates","entry.js"), {languages,defaultLanguage,activeLanguage,namespaces,moduleType } ) + const entryContent = artTemplate(path.join(__dirname,"templates","entry.js"), {languages,defaultLanguage,activeLanguage,namespaces,moduleType,JSON } ) fs.writeFileSync(entryFile,entryContent) + logger.log(" - 访问入口文件: {}",path.basename(entryFile)) + // 6 . 生成编译后的格式化函数文件 const formattersFile = path.join(langFolder,"formatters.js") if(!fs.existsSync(formattersFile)){ const formattersContent = artTemplate(path.join(__dirname,"templates","formatters.js"), {languages,defaultLanguage,activeLanguage,namespaces,moduleType } ) fs.writeFileSync(formattersFile,formattersContent) - } - // 7. 生成package.json + logger.log(" - 格式化器:{}",path.basename(formattersFile)) + }else{ // 格式化器如果存在,则需要更改对应的模块类型 + let formattersContent = fs.readFileSync(formattersFile,"utf8").toString() + if(moduleType == "esm"){ + formattersContent = formattersContent.replaceAll(/\s*module.exports\s*\=/g,"export default ") + formattersContent = formattersContent.replaceAll(/\s*module.exports\./g,"export ") + }else{ + formattersContent = formattersContent.replaceAll(/\s*export\s*default\s*/g,"module.exports = ") + formattersContent = formattersContent.replaceAll(/\s*export\s*/g,"module.exports.") + } + fs.writeFileSync(formattersFile,formattersContent) + logger.log(" - 更新格式化器:{}",path.basename(formattersFile)) + } + + // 7. 重新生成settings ,需要确保settings.js匹配模块类型 + if(moduleType==="esm"){ + fs.writeFileSync(settingsFile,`export default ${JSON.stringify(langSettings,null,4)}`) + }else{ + fs.writeFileSync(settingsFile,`module.exports = ${JSON.stringify(langSettings,null,4)}`) + } + + // 8. 生成package.json const packageJsonFile = path.join(langFolder,"package.json") let packageJson = {} if(moduleType==="esm"){ packageJson = { + version:"1.0.0", type:"module", } }else{ packageJson = { + version:"1.0.0", } } fs.writeFileSync(packageJsonFile,JSON.stringify(packageJson,null,4)) - }) + }catch(e){ + logger.log("加载多语言配置文件<{}>失败: {} ",settingsFile,e.message) + } } \ No newline at end of file diff --git a/src/extract.plugin.js b/packages/tools/extract.plugin.js similarity index 91% rename from src/extract.plugin.js rename to packages/tools/extract.plugin.js index e1334ff..020477c 100644 --- a/src/extract.plugin.js +++ b/packages/tools/extract.plugin.js @@ -11,7 +11,7 @@ const path = require('path') const fs = require('fs') const readJson = require("readjson") const createLogger = require("logsets") -const { replaceInterpolateVars,getDataTypeName } = require("./utils") +const { replaceInterpolateVars,getDataTypeName } = require("../runtime/utils") const logger = createLogger() // 捕获翻译文本的默认正则表达式 @@ -177,18 +177,23 @@ function getTranslateTexts(content,file,options){ },texts) } +const defaultExtractLanguages = [ + {name:'en',title:"英文"}, + {name:'cn',title:"中文",default:true}, + {name:'de',title:"德语"}, + {name:'fr',title:"法语"}, + {name:'es',title:"西班牙语"}, + {name:'it',title:"意大利语"}, + {name:'jp',title:"日語"} +] function normalizeLanguageOptions(options){ options = Object.assign({ debug : true, // 输出调试信息,控制台输出相关的信息 - languages : [ // 支持的语言列表 - {name:"en",title:"英文"}, - {name:"cn",title:"中文",active:true,default:true} // 通过default指定默认语言 - ], + languages :defaultExtractLanguages, // 默认要支持的语言 defaultLanguage: "cn", // 默认语言:指的是在源代码中的原始文本语言 activeLanguage : "cn", // 当前激活语言:指的是当前启用的语言,比如在源码中使用中文,在默认激活的是英文 extractor : { // 匹配翻译函数并提取内容的正则表达式 - //default : DefaultTranslateExtractor, "*" : DefaultTranslateExtractor, "html,vue,jsx" : DefaultHtmlAttrExtractor }, @@ -359,14 +364,8 @@ module.exports = function(options={}){ if(!outputPath){ outputPath = path.join(file.base,"languages") } - // 跳过空文件 - if(file.isNull()){ - return callback() - } - // 跳过流文件 - if(file.isStream()){ - return callback() - } + if(file.isNull()) return callback() + if(file.isStream()) return callback() // 提取翻译文本 try{ @@ -375,10 +374,10 @@ module.exports = function(options={}){ fileCount++ if(debug){ const textCount = Object.values(texts).reduce((sum,item)=>sum+Object.keys(item).length,0) - logger.log("Extract <{}>, found [{}] namespaces and {} texts.",file.relative,Object.keys(texts).join(),textCount) + logger.log("Extract <{}>, found [{}] namespaces and {} messages.",file.relative,Object.keys(texts).join(),textCount) } }catch(err){ - logger.log("Error while extract text from <{}> : {}",file.relative,err.message) + logger.log("Error while extract messages from <{}> : {}",file.relative,err.message) } callback() @@ -388,6 +387,7 @@ module.exports = function(options={}){ logger.log(" - Total of files\t: {}",fileCount) logger.log(" - Output location\t: {}",outputPath) const translatesPath = path.join(outputPath,"translates") + if(!fs.existsSync(outputPath)) fs.mkdirSync(outputPath) if(!fs.existsSync(translatesPath)) fs.mkdirSync(translatesPath) // 每个名称空间对应一个文件 for(let [namespace,texts] of Object.entries(results)){ @@ -402,16 +402,20 @@ module.exports = function(options={}){ logger.log(" Save language file : {}",path.relative(outputPath,langFile)) } } - // 将元数据生成到 i18n.meta.json - const metaFile = path.join(outputPath,"settings.js") - const meta = { - languages : options.languages, - defaultLanguage: options.defaultLanguage, - activeLanguage : options.activeLanguage, - namespaces : options.namespaces - } - fs.writeFileSync(metaFile,`export default ${JSON.stringify(meta,null,4)}`) - logger.log(" - Generate language metadata : {}",metaFile) + // 生成语言配置文件 settings.js , 仅当不存在时才生成 + const settingsFile = path.join(outputPath,"settings.js") + if(!fs.existsSync(settingsFile)){ + const settings = { + languages : options.languages, + defaultLanguage: options.defaultLanguage, + activeLanguage : options.activeLanguage, + namespaces : options.namespaces + } + fs.writeFileSync(settingsFile,`module.exports = ${JSON.stringify(settings,null,4)}`) + logger.log(" - Generate settings of language : {}",settingsFile) + }else{ + logger.log(" - Settings of language already exists : {}",settingsFile) + } callback() }); } diff --git a/packages/tools/index.js b/packages/tools/index.js new file mode 100644 index 0000000..fe4c383 --- /dev/null +++ b/packages/tools/index.js @@ -0,0 +1,23 @@ +const { Command } = require('commander'); +const program = new Command(); + + +program + .option('-d, --debug', '输出调试信息') + +program + .command('extract [destination]') + .description('扫描指定的项目目录,提取文件中的国际化字符串') + .option('-d, --debug', '输出调试信息') + .option('-l, --languages', '支持的语言', 'cn,en,de,fr,es,it,jp') + .option('-d, --default', '默认语言', 'cn') + .option('-a, --active', '激活语言', 'cn') + .action((source, destination) => { + console.log('clone command called'); + }); + + + +program.parse(process.argv); + +const options = program.opts(); \ No newline at end of file diff --git a/packages/tools/package.json b/packages/tools/package.json new file mode 100644 index 0000000..cdf865a --- /dev/null +++ b/packages/tools/package.json @@ -0,0 +1,26 @@ +{ + "name": "@voerkai18n/tools", + "version": "1.0.0", + "description": "VoerkaI18n Tools", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@babel/cli": "^7.17.6", + "@babel/core": "^7.17.5", + "art-template": "^4.13.2", + "commander": "^9.0.0", + "glob": "^7.2.0", + "logsets": "^1.0.6", + "readjson": "^2.2.2", + "through2": "^4.0.2" + }, + "devDependencies": { + "deepmerge": "^4.2.2", + "gulp": "^4.0.2", + "vinyl": "^2.2.1" + } +} diff --git a/src/templates/entry.js b/packages/tools/templates/entry.js similarity index 73% rename from src/templates/entry.js rename to packages/tools/templates/entry.js index a1c7a85..d731729 100644 --- a/src/templates/entry.js +++ b/packages/tools/templates/entry.js @@ -1,20 +1,18 @@ -{{if moduleTye === "esm"}} +{{if moduleType === "esm"}} import messageIds from "./idMap.js" -import { translate,i18n } from "voerka-i18n" +import { translate,I18nManager } from "@voerkai18n/runtime" import defaultMessages from "./{{defaultLanguage}}.js" import scopeSettings from "./settings.js" -import formatters from "../formatters" {{else}} const messageIds = require("./idMap") -const { translate,i18n } = require("voerka-i18n") +const { translate,i18n } = require("@voerkai18n/runtime") const defaultMessages = require("./{{defaultLanguage}}.js") -const scopeSettings = require("./settings.js") -const formatters = require("../formatters") +const scopeSettings = require("./settings.js") {{/if}} // 自动创建全局VoerkaI18n实例 if(!globalThis.VoerkaI18n){ - globalThis.VoerkaI18n = new i18n(scopeSettings) + globalThis.VoerkaI18n = new I18nManager(scopeSettings) } let scope = { @@ -22,7 +20,7 @@ let scope = { default: defaultMessages, // 默认语言包 messages : defaultMessages, // 当前语言包 idMap:messageIds, // 消息id映射列表 - formatters, // 当前作用域的格式化函数列表 + formatters:{}, // 当前作用域的格式化函数列表 loaders:{}, // 异步加载语言文件的函数列表 global:{} // 引用全局VoerkaI18n配置,注册后自动引用 } @@ -35,14 +33,16 @@ scope.loaders["{{$value.name}}"] = ()=>import("./{{$value.name}}.js") {{/if}}{{/each}} const t = ()=> translate.bind(scope)(...arguments) - +const languages = {{@ JSON.stringify(languages,null,4) }} // 注册当前作用域到全局VoerkaI18n实例 VoerkaI18n.register(scope) -{{if moduleTye === "esm"}} +{{if moduleType === "esm"}} +export languages export scope export t {{else}} +module.exports.languages = languages module.exports.scope = scope module.exports.t = t {{/if}} diff --git a/src/templates/formatters.js b/packages/tools/templates/formatters.js similarity index 99% rename from src/templates/formatters.js rename to packages/tools/templates/formatters.js index 780dbde..da15e61 100644 --- a/src/templates/formatters.js +++ b/packages/tools/templates/formatters.js @@ -76,7 +76,7 @@ const formatters = { {{/each}} } -{{if moduleTye === "esm"}} +{{if moduleType === "esm"}} export default formatters {{else}} module.exports = formatters diff --git a/packages/tools/utils.js b/packages/tools/utils.js new file mode 100644 index 0000000..c4f80dd --- /dev/null +++ b/packages/tools/utils.js @@ -0,0 +1,15 @@ + + +async function importModule(url){ + try{ + return require(url) + }catch{ + return await import(url) + } +} + +module.exports = { + importModule +} + + diff --git a/packages/scripts/package.json b/packages/vue/package.json similarity index 52% rename from packages/scripts/package.json rename to packages/vue/package.json index 1272a56..2ea05b6 100644 --- a/packages/scripts/package.json +++ b/packages/vue/package.json @@ -1,5 +1,5 @@ { - "name": "@voerkai18n/scripts", + "name": "@voerkai18n/vue", "version": "1.0.0", "description": "", "main": "index.js", @@ -7,5 +7,10 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", - "license": "ISC" + "license": "ISC", + "devDependencies": { + "deepmerge": "^4.2.2", + "gulp": "^4.0.2", + "vinyl": "^2.2.1" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 81d10d8..1f5674b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,34 +1,124 @@ lockfileVersion: 5.3 -specifiers: - '@babel/cli': ^7.17.6 - '@babel/core': ^7.17.5 - art-template: ^4.13.2 - dayjs: ^1.10.8 - deepmerge: ^4.2.2 - glob: ^7.2.0 - gulp: ^4.0.2 - jest: ^27.5.1 - logsets: ^1.0.6 - readjson: ^2.2.2 - through2: ^4.0.2 - vinyl: ^2.2.1 +importers: -dependencies: - art-template: 4.13.2 - dayjs: registry.npmmirror.com/dayjs/1.10.8 - deepmerge: 4.2.2 - glob: 7.2.0 - gulp: 4.0.2 - logsets: 1.0.6 - readjson: registry.npmmirror.com/readjson/2.2.2 - through2: 4.0.2 + .: + specifiers: + '@babel/core': ^7.17.5 + '@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 + deepmerge: ^4.2.2 + gulp: ^4.0.2 + jest: ^27.5.1 + rollup: ^2.69.0 + rollup-plugin-clear: ^2.0.7 + rollup-plugin-uglify: ^6.0.4 + vinyl: ^2.2.1 + 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 + deepmerge: 4.2.2 + gulp: 4.0.2 + jest: 27.5.1 + rollup: 2.69.0 + rollup-plugin-clear: 2.0.7 + rollup-plugin-uglify: 6.0.4_rollup@2.69.0 + vinyl: 2.2.1 -devDependencies: - '@babel/cli': 7.17.6_@babel+core@7.17.5 - '@babel/core': 7.17.5 - jest: 27.5.1 - vinyl: 2.2.1 + packages/demo: + specifiers: + '@voerkai18n/runtime': workspace:^1.0.0 + '@voerkai18n/tools': workspace:^1.0.0 + deepmerge: ^4.2.2 + gulp: ^4.0.2 + vinyl: ^2.2.1 + dependencies: + '@voerkai18n/runtime': link:../runtime + '@voerkai18n/tools': link:../tools + devDependencies: + deepmerge: 4.2.2 + gulp: 4.0.2 + vinyl: 2.2.1 + + packages/demo/apps/app/languages: + specifiers: + deepmerge: ^4.2.2 + gulp: ^4.0.2 + vinyl: ^2.2.1 + devDependencies: + deepmerge: 4.2.2 + gulp: 4.0.2 + vinyl: 2.2.1 + + packages/formatters: + specifiers: + deepmerge: ^4.2.2 + gulp: ^4.0.2 + vinyl: ^2.2.1 + devDependencies: + deepmerge: 4.2.2 + gulp: 4.0.2 + vinyl: 2.2.1 + + packages/react: + specifiers: + deepmerge: ^4.2.2 + gulp: ^4.0.2 + vinyl: ^2.2.1 + devDependencies: + deepmerge: 4.2.2 + gulp: 4.0.2 + vinyl: 2.2.1 + + packages/runtime: + specifiers: + deepmerge: ^4.2.2 + devDependencies: + deepmerge: 4.2.2 + + packages/tools: + specifiers: + '@babel/cli': ^7.17.6 + '@babel/core': ^7.17.5 + art-template: ^4.13.2 + commander: ^9.0.0 + deepmerge: ^4.2.2 + glob: ^7.2.0 + gulp: ^4.0.2 + logsets: ^1.0.6 + readjson: ^2.2.2 + through2: ^4.0.2 + vinyl: ^2.2.1 + dependencies: + '@babel/cli': 7.17.6_@babel+core@7.17.5 + '@babel/core': 7.17.5 + art-template: 4.13.2 + commander: 9.0.0 + glob: 7.2.0 + logsets: 1.0.6 + readjson: 2.2.2 + through2: 4.0.2 + devDependencies: + deepmerge: 4.2.2 + gulp: 4.0.2 + vinyl: 2.2.1 + + packages/vue: + specifiers: + deepmerge: ^4.2.2 + gulp: ^4.0.2 + vinyl: ^2.2.1 + devDependencies: + deepmerge: 4.2.2 + gulp: 4.0.2 + vinyl: 2.2.1 packages: @@ -37,7 +127,6 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/trace-mapping': 0.3.4 - dev: true /@babel/cli/7.17.6_@babel+core@7.17.5: resolution: {integrity: sha512-l4w608nsDNlxZhiJ5tE3DbNmr61fIKMZ6fTBo171VEFuFMIYuJ3mHRhTLEkKKyvx2Mizkkv/0a8OJOnZqkKYNA==} @@ -58,19 +147,17 @@ packages: optionalDependencies: '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 chokidar: 3.5.3 - dev: true + dev: false /@babel/code-frame/7.16.7: resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.16.10 - dev: true /@babel/compat-data/7.17.0: resolution: {integrity: sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==} engines: {node: '>=6.9.0'} - dev: true /@babel/core/7.17.5: resolution: {integrity: sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==} @@ -93,7 +180,6 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: true /@babel/generator/7.17.3: resolution: {integrity: sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==} @@ -102,6 +188,20 @@ packages: '@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'} + dependencies: + '@babel/types': 7.17.0 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor/7.16.7: + resolution: {integrity: sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-explode-assignable-expression': 7.16.7 + '@babel/types': 7.17.0 dev: true /@babel/helper-compilation-targets/7.16.7_@babel+core@7.17.5: @@ -115,6 +215,52 @@ packages: '@babel/helper-validator-option': 7.16.7 browserslist: 4.19.3 semver: 6.3.0 + + /@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'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.5 + '@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: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.5 + '@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: @@ -122,6 +268,12 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 + + /@babel/helper-explode-assignable-expression/7.16.7: + resolution: {integrity: sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 dev: true /@babel/helper-function-name/7.16.7: @@ -131,20 +283,24 @@ packages: '@babel/helper-get-function-arity': 7.16.7 '@babel/template': 7.16.7 '@babel/types': 7.17.0 - dev: true /@babel/helper-get-function-arity/7.16.7: resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 - dev: true /@babel/helper-hoist-variables/7.16.7: resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 + + /@babel/helper-member-expression-to-functions/7.16.7: + resolution: {integrity: sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 dev: true /@babel/helper-module-imports/7.16.7: @@ -152,7 +308,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 - dev: true /@babel/helper-module-transforms/7.17.6: resolution: {integrity: sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==} @@ -168,6 +323,12 @@ packages: '@babel/types': 7.17.0 transitivePeerDependencies: - supports-color + + /@babel/helper-optimise-call-expression/7.16.7: + resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 dev: true /@babel/helper-plugin-utils/7.16.7: @@ -175,11 +336,41 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-remap-async-to-generator/7.16.8: + resolution: {integrity: sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-wrap-function': 7.16.8 + '@babel/types': 7.17.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers/7.16.7: + resolution: {integrity: sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.16.7 + '@babel/helper-member-expression-to-functions': 7.16.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/traverse': 7.17.3 + '@babel/types': 7.17.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-simple-access/7.16.7: resolution: {integrity: sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 + + /@babel/helper-skip-transparent-expression-wrappers/7.16.0: + resolution: {integrity: sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 dev: true /@babel/helper-split-export-declaration/7.16.7: @@ -187,16 +378,25 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 - dev: true /@babel/helper-validator-identifier/7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-validator-option/7.16.7: resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} engines: {node: '>=6.9.0'} + + /@babel/helper-wrap-function/7.16.8: + resolution: {integrity: sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.16.7 + '@babel/template': 7.16.7 + '@babel/traverse': 7.17.3 + '@babel/types': 7.17.0 + transitivePeerDependencies: + - supports-color dev: true /@babel/helpers/7.17.2: @@ -208,7 +408,6 @@ packages: '@babel/types': 7.17.0 transitivePeerDependencies: - supports-color - dev: true /@babel/highlight/7.16.10: resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==} @@ -217,12 +416,215 @@ packages: '@babel/helper-validator-identifier': 7.16.7 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true /@babel/parser/7.17.3: resolution: {integrity: sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==} 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'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.17.5 + '@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.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.5 + dev: true + + /@babel/plugin-proposal-json-strings/7.16.7_@babel+core@7.17.5: + resolution: {integrity: sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.17.0 + '@babel/core': 7.17.5 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.5 + '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.5 + '@babel/helper-plugin-utils': 7.16.7 dev: true /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.5: @@ -252,6 +654,34 @@ packages: '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.17.5: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -324,6 +754,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.5: + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} @@ -344,6 +784,488 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-arrow-functions/7.16.7_@babel+core@7.17.5: + resolution: {integrity: sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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.5 + babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.5 + babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.5 + 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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.5 + '@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'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.17.0 + '@babel/core': 7.17.5 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.5 + '@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.5 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-async-generator-functions': 7.16.8_@babel+core@7.17.5 + '@babel/plugin-proposal-class-properties': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-class-static-block': 7.17.6_@babel+core@7.17.5 + '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-export-namespace-from': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-json-strings': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-logical-assignment-operators': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-object-rest-spread': 7.17.3_@babel+core@7.17.5 + '@babel/plugin-proposal-optional-catch-binding': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-private-methods': 7.16.11_@babel+core@7.17.5 + '@babel/plugin-proposal-private-property-in-object': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.5 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.5 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@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-private-property-in-object': 7.14.5_@babel+core@7.17.5 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.5 + '@babel/plugin-transform-arrow-functions': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-async-to-generator': 7.16.8_@babel+core@7.17.5 + '@babel/plugin-transform-block-scoped-functions': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-block-scoping': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-classes': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-computed-properties': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-destructuring': 7.17.3_@babel+core@7.17.5 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-duplicate-keys': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-exponentiation-operator': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-for-of': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-literals': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-member-expression-literals': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-modules-amd': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-modules-commonjs': 7.16.8_@babel+core@7.17.5 + '@babel/plugin-transform-modules-systemjs': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-modules-umd': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-named-capturing-groups-regex': 7.16.8_@babel+core@7.17.5 + '@babel/plugin-transform-new-target': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-object-super': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-regenerator': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-reserved-words': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-shorthand-properties': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-spread': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-sticky-regex': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-template-literals': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-typeof-symbol': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-unicode-escapes': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-unicode-regex': 7.16.7_@babel+core@7.17.5 + '@babel/preset-modules': 0.1.5_@babel+core@7.17.5 + '@babel/types': 7.17.0 + babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.5 + babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.5 + babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.5 + 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: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.5 + '@babel/types': 7.17.0 + esutils: 2.0.3 + dev: true + + /@babel/runtime/7.17.2: + resolution: {integrity: sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.9 + dev: true + /@babel/template/7.16.7: resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} engines: {node: '>=6.9.0'} @@ -351,7 +1273,6 @@ packages: '@babel/code-frame': 7.16.7 '@babel/parser': 7.17.3 '@babel/types': 7.17.0 - dev: true /@babel/traverse/7.17.3: resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} @@ -369,7 +1290,6 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true /@babel/types/7.17.0: resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} @@ -377,7 +1297,6 @@ packages: dependencies: '@babel/helper-validator-identifier': 7.16.7 to-fast-properties: 2.0.0 - dev: true /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -593,25 +1512,67 @@ packages: /@jridgewell/resolve-uri/3.0.5: resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/sourcemap-codec/1.4.11: resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==} - dev: true /@jridgewell/trace-mapping/0.3.4: resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==} dependencies: '@jridgewell/resolve-uri': 3.0.5 '@jridgewell/sourcemap-codec': 1.4.11 - dev: true /@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents.3: resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} requiresBuild: true - dev: true + dev: false optional: true + /@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'} + 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.5 + '@babel/helper-module-imports': 7.16.7 + '@rollup/pluginutils': 3.1.0_rollup@2.69.0 + rollup: 2.69.0 + dev: true + + /@rollup/plugin-commonjs/21.0.2_rollup@2.69.0: + 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.69.0 + 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.69.0 + dev: true + + /@rollup/pluginutils/3.1.0_rollup@2.69.0: + 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.69.0 + dev: true + /@sinonjs/commons/1.8.3: resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} dependencies: @@ -658,6 +1619,14 @@ packages: '@babel/types': 7.17.0 dev: true + /@types/estree/0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + dev: true + + /@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + dev: true + /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: @@ -750,7 +1719,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: ansi-wrap: 0.1.0 - dev: false + dev: true /ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -764,12 +1733,12 @@ packages: engines: {node: '>=0.10.0'} dependencies: ansi-wrap: 0.1.0 - dev: false + dev: true /ansi-regex/2.1.1: resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=} engines: {node: '>=0.10.0'} - dev: false + dev: true /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -781,7 +1750,6 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: true /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -798,14 +1766,14 @@ packages: /ansi-wrap/0.1.0: resolution: {integrity: sha1-qCJQ3bABXponyoLoLqYDu/pF768=} engines: {node: '>=0.10.0'} - dev: false + dev: true /anymatch/2.0.0: resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} dependencies: micromatch: 3.1.10 normalize-path: 2.1.1 - dev: false + dev: true /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} @@ -813,18 +1781,17 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /append-buffer/1.0.2: resolution: {integrity: sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=} engines: {node: '>=0.10.0'} dependencies: buffer-equal: 1.0.0 - dev: false + dev: true /archy/1.0.0: resolution: {integrity: sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=} - dev: false + dev: true /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -835,36 +1802,36 @@ packages: /arr-diff/4.0.0: resolution: {integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=} engines: {node: '>=0.10.0'} - dev: false + dev: true /arr-filter/1.1.2: resolution: {integrity: sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=} engines: {node: '>=0.10.0'} dependencies: make-iterator: 1.0.1 - dev: false + dev: true /arr-flatten/1.1.0: resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} engines: {node: '>=0.10.0'} - dev: false + dev: true /arr-map/2.0.2: resolution: {integrity: sha1-Onc0X/wc814qkYJWAfnljy4kysQ=} engines: {node: '>=0.10.0'} dependencies: make-iterator: 1.0.1 - dev: false + dev: true /arr-union/3.1.0: resolution: {integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=} engines: {node: '>=0.10.0'} - dev: false + dev: true /array-each/1.0.1: resolution: {integrity: sha1-p5SvDAWrF1KEbudTofIRoFugxE8=} engines: {node: '>=0.10.0'} - dev: false + dev: true /array-initial/1.1.0: resolution: {integrity: sha1-L6dLJnOTccOUe9enrcc74zSz15U=} @@ -872,19 +1839,19 @@ packages: dependencies: array-slice: 1.1.0 is-number: 4.0.0 - dev: false + dev: true /array-last/1.3.0: resolution: {integrity: sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==} engines: {node: '>=0.10.0'} dependencies: is-number: 4.0.0 - dev: false + dev: true /array-slice/1.1.0: resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} engines: {node: '>=0.10.0'} - dev: false + dev: true /array-sort/1.0.0: resolution: {integrity: sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==} @@ -893,12 +1860,12 @@ packages: default-compare: 1.0.0 get-value: 2.0.6 kind-of: 5.1.0 - dev: false + dev: true /array-unique/0.3.2: resolution: {integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=} engines: {node: '>=0.10.0'} - dev: false + dev: true /art-template/4.13.2: resolution: {integrity: sha512-04ws5k+ndA5DghfheY4c8F1304XJKeTcaXqZCLpxFkNMSkaR3ChW1pX2i9d3sEEOZuLy7de8lFriRaik1jEeOQ==} @@ -917,7 +1884,7 @@ packages: /assign-symbols/1.0.0: resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=} engines: {node: '>=0.10.0'} - dev: false + dev: true /async-done/1.3.2: resolution: {integrity: sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==} @@ -927,18 +1894,18 @@ packages: once: 1.4.0 process-nextick-args: 2.0.1 stream-exhaust: 1.0.2 - dev: false + dev: true /async-each/1.0.3: resolution: {integrity: sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==} - dev: false + dev: true /async-settle/1.0.0: resolution: {integrity: sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=} engines: {node: '>= 0.10'} dependencies: async-done: 1.3.2 - dev: false + dev: true /asynckit/0.4.0: resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} @@ -948,7 +1915,7 @@ packages: resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} engines: {node: '>= 4.5.0'} hasBin: true - dev: false + dev: true /babel-jest/27.5.1_@babel+core@7.17.5: resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} @@ -969,6 +1936,12 @@ packages: - supports-color dev: true + /babel-plugin-dynamic-import-node/2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + dependencies: + object.assign: 4.1.2 + dev: true + /babel-plugin-istanbul/6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} @@ -992,6 +1965,42 @@ packages: '@types/babel__traverse': 7.14.2 dev: true + /babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.17.5: + 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.5 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.5 + 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: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.5 + 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: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.5 + transitivePeerDependencies: + - supports-color + dev: true + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.17.5: resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: @@ -1036,7 +2045,7 @@ packages: async-done: 1.3.2 async-settle: 1.0.0 now-and-later: 2.0.1 - dev: false + dev: true /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1052,17 +2061,17 @@ packages: isobject: 3.0.1 mixin-deep: 1.3.2 pascalcase: 0.1.1 - dev: false + dev: true /binary-extensions/1.13.1: resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} engines: {node: '>=0.10.0'} - dev: false + dev: true /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: true + dev: false optional: true /bindings/1.5.0: @@ -1070,7 +2079,7 @@ packages: requiresBuild: true dependencies: file-uri-to-path: 1.0.0 - dev: false + dev: true optional: true /brace-expansion/1.1.11: @@ -1093,14 +2102,13 @@ packages: snapdragon-node: 2.1.1 split-string: 3.1.0 to-regex: 3.0.2 - dev: false + dev: true /braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true /browser-process-hrtime/1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} @@ -1116,7 +2124,6 @@ packages: 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==} @@ -1127,10 +2134,11 @@ packages: /buffer-equal/1.0.0: resolution: {integrity: sha1-WWFrSYME1Var1GaWayLu2j7KX74=} engines: {node: '>=0.4.0'} - dev: false + dev: true /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true /cache-base/1.0.1: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} @@ -1145,14 +2153,14 @@ packages: to-object-path: 0.3.0 union-value: 1.0.1 unset-value: 1.0.0 - dev: false + dev: true /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 get-intrinsic: 1.1.1 - dev: false + dev: true /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -1169,7 +2177,7 @@ packages: /camelcase/3.0.0: resolution: {integrity: sha1-MvxLn82vhF/N9+c7uXysImHwqwo=} engines: {node: '>=0.10.0'} - dev: false + dev: true /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} @@ -1183,7 +2191,6 @@ packages: /caniuse-lite/1.0.30001312: resolution: {integrity: sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==} - dev: true /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1192,7 +2199,6 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true /chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1224,7 +2230,7 @@ packages: upath: 1.2.0 optionalDependencies: fsevents: 1.2.13 - dev: false + dev: true /chokidar/3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} @@ -1240,7 +2246,7 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 - dev: true + dev: false optional: true /ci-info/3.3.0: @@ -1259,7 +2265,7 @@ packages: define-property: 0.2.5 isobject: 3.0.1 static-extend: 0.1.2 - dev: false + dev: true /clean-css/4.2.4: resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} @@ -1274,7 +2280,7 @@ packages: string-width: 1.0.2 strip-ansi: 3.0.1 wrap-ansi: 2.1.0 - dev: false + dev: true /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -1287,13 +2293,16 @@ packages: /clone-buffer/1.0.0: resolution: {integrity: sha1-4+JbIHrE5wGvch4staFnksrD3Fg=} engines: {node: '>= 0.10'} + dev: true /clone-stats/1.0.0: resolution: {integrity: sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=} + dev: true /clone/2.1.2: resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=} engines: {node: '>=0.8'} + dev: true /cloneable-readable/1.1.3: resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} @@ -1301,6 +2310,7 @@ packages: inherits: 2.0.4 process-nextick-args: 2.0.1 readable-stream: 2.3.7 + dev: true /co/4.6.0: resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} @@ -1310,7 +2320,7 @@ packages: /code-point-at/1.1.0: resolution: {integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=} engines: {node: '>=0.10.0'} - dev: false + dev: true /collect-v8-coverage/1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} @@ -1323,7 +2333,7 @@ packages: arr-map: 2.0.2 for-own: 1.0.0 make-iterator: 1.0.1 - dev: false + dev: true /collection-visit/1.0.0: resolution: {integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=} @@ -1331,13 +2341,12 @@ packages: dependencies: map-visit: 1.0.0 object-visit: 1.0.1 - dev: false + dev: true /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - dev: true /color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -1348,7 +2357,6 @@ packages: /color-name/1.1.3: resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} - dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1357,7 +2365,7 @@ packages: /color-support/1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true - dev: false + dev: true /combined-stream/1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} @@ -1372,16 +2380,24 @@ packages: /commander/2.19.0: resolution: {integrity: sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==} - dev: false /commander/4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + dev: false + + /commander/9.0.0: + resolution: {integrity: sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==} + engines: {node: ^12.20.0 || >=14} + dev: false + + /commondir/1.0.1: + resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=} dev: true /component-emitter/1.3.0: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} - dev: false + dev: true /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} @@ -1394,7 +2410,7 @@ packages: inherits: 2.0.4 readable-stream: 2.3.7 typedarray: 0.0.6 - dev: false + dev: true /convert-source-map/1.8.0: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} @@ -1404,17 +2420,25 @@ packages: /copy-descriptor/0.1.1: resolution: {integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=} engines: {node: '>=0.10.0'} - dev: false + dev: true /copy-props/2.0.5: resolution: {integrity: sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==} dependencies: each-props: 1.3.2 is-plain-object: 5.0.0 - dev: false + dev: true + + /core-js-compat/3.21.1: + resolution: {integrity: sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==} + dependencies: + browserslist: 4.19.3 + semver: 7.0.0 + dev: true /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true /cross-spawn/7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -1445,7 +2469,7 @@ packages: dependencies: es5-ext: 0.10.53 type: 1.2.0 - dev: false + dev: true /data-urls/2.0.0: resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} @@ -1456,11 +2480,15 @@ packages: whatwg-url: 8.7.0 dev: true + /dayjs/1.10.8: + resolution: {integrity: sha512-wbNwDfBHHur9UOzNUjeKUOJ0fCb0a52Wx0xInmQ7Y8FstyajiV1NmK1e00cxsr9YrE9r7yAChE0VvpuY5Rnlow==} + dev: true + /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} dependencies: ms: 2.0.0 - dev: false + dev: true /debug/4.3.3: resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} @@ -1472,12 +2500,11 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true /decamelize/1.2.0: resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} engines: {node: '>=0.10.0'} - dev: false + dev: true /decimal.js/10.3.1: resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==} @@ -1486,7 +2513,7 @@ packages: /decode-uri-component/0.2.0: resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=} engines: {node: '>=0.10'} - dev: false + dev: true /dedent/0.7.0: resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} @@ -1504,33 +2531,33 @@ packages: engines: {node: '>=0.10.0'} dependencies: kind-of: 5.1.0 - dev: false + dev: true /default-resolution/2.0.0: resolution: {integrity: sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=} engines: {node: '>= 0.10'} - dev: false + dev: true /define-properties/1.1.3: resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} engines: {node: '>= 0.4'} dependencies: object-keys: 1.1.1 - dev: false + dev: true /define-property/0.2.5: resolution: {integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=} engines: {node: '>=0.10.0'} dependencies: is-descriptor: 0.1.6 - dev: false + dev: true /define-property/1.0.0: resolution: {integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY=} engines: {node: '>=0.10.0'} dependencies: is-descriptor: 1.0.2 - dev: false + dev: true /define-property/2.0.2: resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} @@ -1538,7 +2565,7 @@ packages: dependencies: is-descriptor: 1.0.2 isobject: 3.0.1 - dev: false + dev: true /delayed-stream/1.0.0: resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} @@ -1548,7 +2575,7 @@ packages: /detect-file/1.0.0: resolution: {integrity: sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=} engines: {node: '>=0.10.0'} - dev: false + dev: true /detect-newline/3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} @@ -1574,18 +2601,17 @@ packages: inherits: 2.0.4 readable-stream: 2.3.7 stream-shift: 1.0.1 - dev: false + dev: true /each-props/1.3.2: resolution: {integrity: sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==} dependencies: is-plain-object: 2.0.4 object.defaults: 1.1.0 - dev: false + dev: true /electron-to-chromium/1.4.73: resolution: {integrity: sha512-RlCffXkE/LliqfA5m29+dVDPB2r72y2D2egMMfIy3Le8ODrxjuZNVo4NIC2yPL01N4xb4nZQLwzi6Z5tGIGLnA==} - dev: true /emittery/0.8.1: resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} @@ -1600,12 +2626,13 @@ packages: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 - dev: false + dev: true /error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: true /es5-ext/0.10.53: resolution: {integrity: sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==} @@ -1613,7 +2640,7 @@ packages: es6-iterator: 2.0.3 es6-symbol: 3.1.3 next-tick: 1.0.0 - dev: false + dev: true /es6-iterator/2.0.3: resolution: {integrity: sha1-p96IkUGgWpSwhUQDstCg+/qY87c=} @@ -1621,14 +2648,14 @@ packages: d: 1.0.1 es5-ext: 0.10.53 es6-symbol: 3.1.3 - dev: false + dev: true /es6-symbol/3.1.3: resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} dependencies: d: 1.0.1 ext: 1.6.0 - dev: false + dev: true /es6-weak-map/2.0.3: resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} @@ -1637,17 +2664,15 @@ packages: es5-ext: 0.10.53 es6-iterator: 2.0.3 es6-symbol: 3.1.3 - dev: false + dev: true /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: true /escape-string-regexp/1.0.5: resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} engines: {node: '>=0.8.0'} - dev: true /escape-string-regexp/2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} @@ -1695,6 +2720,14 @@ packages: engines: {node: '>=4.0'} dev: true + /estree-walker/1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + dev: true + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + /esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -1730,14 +2763,14 @@ packages: regex-not: 1.0.2 snapdragon: 0.8.2 to-regex: 3.0.2 - dev: false + dev: true /expand-tilde/2.0.2: resolution: {integrity: sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=} engines: {node: '>=0.10.0'} dependencies: homedir-polyfill: 1.0.3 - dev: false + dev: true /expect/27.5.1: resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==} @@ -1753,14 +2786,14 @@ packages: resolution: {integrity: sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==} dependencies: type: 2.6.0 - dev: false + dev: true /extend-shallow/2.0.1: resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=} engines: {node: '>=0.10.0'} dependencies: is-extendable: 0.1.1 - dev: false + dev: true /extend-shallow/3.0.2: resolution: {integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=} @@ -1768,11 +2801,11 @@ packages: dependencies: assign-symbols: 1.0.0 is-extendable: 1.0.1 - dev: false + dev: true /extend/3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false + dev: true /extglob/2.0.4: resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} @@ -1786,7 +2819,7 @@ packages: regex-not: 1.0.2 snapdragon: 0.8.2 to-regex: 3.0.2 - dev: false + dev: true /fancy-log/1.3.3: resolution: {integrity: sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==} @@ -1796,7 +2829,7 @@ packages: color-support: 1.1.3 parse-node-version: 1.0.1 time-stamp: 1.1.0 - dev: false + dev: true /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -1804,7 +2837,7 @@ packages: /fast-levenshtein/1.1.4: resolution: {integrity: sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=} - dev: false + dev: true /fast-levenshtein/2.0.6: resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} @@ -1818,7 +2851,7 @@ packages: /file-uri-to-path/1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} requiresBuild: true - dev: false + dev: true optional: true /fill-range/4.0.0: @@ -1829,14 +2862,13 @@ packages: is-number: 3.0.0 repeat-string: 1.6.1 to-regex-range: 2.1.1 - dev: false + dev: true /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true /find-up/1.1.2: resolution: {integrity: sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=} @@ -1844,7 +2876,7 @@ packages: dependencies: path-exists: 2.1.0 pinkie-promise: 2.0.1 - dev: false + dev: true /find-up/4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} @@ -1862,7 +2894,7 @@ packages: is-glob: 3.1.0 micromatch: 3.1.10 resolve-dir: 1.0.1 - dev: false + dev: true /findup-sync/3.0.0: resolution: {integrity: sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==} @@ -1872,7 +2904,7 @@ packages: is-glob: 4.0.3 micromatch: 3.1.10 resolve-dir: 1.0.1 - dev: false + dev: true /fined/1.2.0: resolution: {integrity: sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==} @@ -1883,31 +2915,31 @@ packages: object.defaults: 1.1.0 object.pick: 1.3.0 parse-filepath: 1.0.2 - dev: false + dev: true /flagged-respawn/1.0.1: resolution: {integrity: sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==} engines: {node: '>= 0.10'} - dev: false + dev: true /flush-write-stream/1.1.1: resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} dependencies: inherits: 2.0.4 readable-stream: 2.3.7 - dev: false + dev: true /for-in/1.0.2: resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=} engines: {node: '>=0.10.0'} - dev: false + dev: true /for-own/1.0.0: resolution: {integrity: sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=} engines: {node: '>=0.10.0'} dependencies: for-in: 1.0.2 - dev: false + dev: true /form-data/3.0.1: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} @@ -1923,7 +2955,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: map-cache: 0.2.2 - dev: false + dev: true /fs-mkdirp-stream/1.0.0: resolution: {integrity: sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=} @@ -1931,11 +2963,11 @@ packages: dependencies: graceful-fs: 4.2.9 through2: 2.0.5 - dev: false + dev: true /fs-readdir-recursive/1.1.0: resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} - dev: true + dev: false /fs.realpath/1.0.0: resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} @@ -1949,7 +2981,7 @@ packages: dependencies: bindings: 1.5.0 nan: 2.15.0 - dev: false + dev: true optional: true /fsevents/2.3.2: @@ -1957,20 +2989,19 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true /gensync/1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - dev: true /get-caller-file/1.0.3: resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} - dev: false + dev: true /get-caller-file/2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} @@ -1983,7 +3014,7 @@ packages: function-bind: 1.1.1 has: 1.0.3 has-symbols: 1.0.2 - dev: false + dev: true /get-package-type/0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} @@ -1998,21 +3029,21 @@ packages: /get-value/2.0.6: resolution: {integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=} engines: {node: '>=0.10.0'} - dev: false + dev: true /glob-parent/3.1.0: resolution: {integrity: sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=} dependencies: is-glob: 3.1.0 path-dirname: 1.0.2 - dev: false + dev: true /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true + dev: false optional: true /glob-stream/6.1.0: @@ -2029,7 +3060,7 @@ packages: remove-trailing-separator: 1.1.0 to-absolute-glob: 2.0.2 unique-stream: 2.3.1 - dev: false + dev: true /glob-watcher/5.0.5: resolution: {integrity: sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==} @@ -2042,7 +3073,7 @@ packages: just-debounce: 1.1.0 normalize-path: 3.0.0 object.defaults: 1.1.0 - dev: false + dev: true /glob/7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} @@ -2061,7 +3092,7 @@ packages: global-prefix: 1.0.2 is-windows: 1.0.2 resolve-dir: 1.0.1 - dev: false + dev: true /global-prefix/1.0.2: resolution: {integrity: sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=} @@ -2072,22 +3103,22 @@ packages: ini: 1.3.8 is-windows: 1.0.2 which: 1.3.1 - dev: false + dev: true /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - dev: true /glogg/1.0.2: resolution: {integrity: sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==} engines: {node: '>= 0.10'} dependencies: sparkles: 1.0.1 - dev: false + dev: true /graceful-fs/4.2.9: resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} + dev: true /gulp-cli/2.3.0: resolution: {integrity: sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==} @@ -2112,7 +3143,7 @@ packages: semver-greatest-satisfied-range: 1.1.0 v8flags: 3.2.0 yargs: 7.1.2 - dev: false + dev: true /gulp/4.0.2: resolution: {integrity: sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==} @@ -2123,19 +3154,18 @@ packages: gulp-cli: 2.3.0 undertaker: 1.3.0 vinyl-fs: 3.0.3 - dev: false + dev: true /gulplog/1.0.0: resolution: {integrity: sha1-4oxNRdBey77YGDY86PnFkmIp/+U=} engines: {node: '>= 0.10'} dependencies: glogg: 1.0.2 - dev: false + dev: true /has-flag/3.0.0: resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} engines: {node: '>=4'} - dev: true /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -2145,7 +3175,7 @@ packages: /has-symbols/1.0.2: resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} engines: {node: '>= 0.4'} - dev: false + dev: true /has-value/0.3.1: resolution: {integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=} @@ -2154,7 +3184,7 @@ packages: get-value: 2.0.6 has-values: 0.1.4 isobject: 2.1.0 - dev: false + dev: true /has-value/1.0.0: resolution: {integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=} @@ -2163,12 +3193,12 @@ packages: get-value: 2.0.6 has-values: 1.0.0 isobject: 3.0.1 - dev: false + dev: true /has-values/0.1.4: resolution: {integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E=} engines: {node: '>=0.10.0'} - dev: false + dev: true /has-values/1.0.0: resolution: {integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=} @@ -2176,13 +3206,14 @@ packages: dependencies: is-number: 3.0.0 kind-of: 4.0.0 - dev: false + dev: true /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 + dev: true /he/1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} @@ -2194,11 +3225,11 @@ packages: engines: {node: '>=0.10.0'} dependencies: parse-passwd: 1.0.0 - dev: false + dev: true /hosted-git-info/2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: false + dev: true /html-encoding-sniffer/2.0.1: resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} @@ -2283,17 +3314,17 @@ packages: /ini/1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: false + dev: true /interpret/1.4.0: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} - dev: false + dev: true /invert-kv/1.0.0: resolution: {integrity: sha1-EEqOSqym09jNFXqO+L+rLXo//bY=} engines: {node: '>=0.10.0'} - dev: false + dev: true /is-absolute/1.0.0: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} @@ -2301,62 +3332,64 @@ packages: dependencies: is-relative: 1.0.0 is-windows: 1.0.2 - dev: false + dev: true /is-accessor-descriptor/0.1.6: resolution: {integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - dev: false + dev: true /is-accessor-descriptor/1.0.0: resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} engines: {node: '>=0.10.0'} dependencies: kind-of: 6.0.3 - dev: false + dev: true /is-arrayish/0.2.1: resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + dev: true /is-binary-path/1.0.1: resolution: {integrity: sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=} engines: {node: '>=0.10.0'} dependencies: binary-extensions: 1.13.1 - dev: false + dev: true /is-binary-path/2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true + dev: false optional: true /is-buffer/1.1.6: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - dev: false + dev: true /is-core-module/2.8.1: resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} dependencies: has: 1.0.3 + dev: true /is-data-descriptor/0.1.4: resolution: {integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - dev: false + dev: true /is-data-descriptor/1.0.0: resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} engines: {node: '>=0.10.0'} dependencies: kind-of: 6.0.3 - dev: false + dev: true /is-descriptor/0.1.6: resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} @@ -2365,7 +3398,7 @@ packages: is-accessor-descriptor: 0.1.6 is-data-descriptor: 0.1.4 kind-of: 5.1.0 - dev: false + dev: true /is-descriptor/1.0.2: resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} @@ -2374,19 +3407,19 @@ packages: is-accessor-descriptor: 1.0.0 is-data-descriptor: 1.0.0 kind-of: 6.0.3 - dev: false + dev: true /is-extendable/0.1.1: resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=} engines: {node: '>=0.10.0'} - dev: false + dev: true /is-extendable/1.0.1: resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} engines: {node: '>=0.10.0'} dependencies: is-plain-object: 2.0.4 - dev: false + dev: true /is-extglob/2.1.1: resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} @@ -2397,7 +3430,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: number-is-nan: 1.0.1 - dev: false + dev: true /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -2414,7 +3447,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: false + dev: true /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} @@ -2430,47 +3463,52 @@ packages: /is-negated-glob/1.0.0: resolution: {integrity: sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=} engines: {node: '>=0.10.0'} - dev: false + dev: true /is-number/3.0.0: resolution: {integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - dev: false + dev: true /is-number/4.0.0: resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} engines: {node: '>=0.10.0'} - dev: false + dev: true /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true /is-plain-object/2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 - dev: false + dev: true /is-plain-object/5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} - dev: false + dev: true /is-potential-custom-element-name/1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true + /is-reference/1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + dependencies: + '@types/estree': 0.0.51 + dev: true + /is-relative/1.0.0: resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} engines: {node: '>=0.10.0'} dependencies: is-unc-path: 1.0.0 - dev: false + dev: true /is-stream/2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} @@ -2486,39 +3524,41 @@ packages: engines: {node: '>=0.10.0'} dependencies: unc-path-regex: 0.1.2 - dev: false + dev: true /is-utf8/0.2.1: resolution: {integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=} - dev: false + dev: true /is-valid-glob/1.0.0: resolution: {integrity: sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=} engines: {node: '>=0.10.0'} - dev: false + dev: true /is-windows/1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - dev: false + dev: true /isarray/1.0.0: resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} + dev: true /isexe/2.0.0: resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + dev: true /isobject/2.1.0: resolution: {integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=} engines: {node: '>=0.10.0'} dependencies: isarray: 1.0.0 - dev: false + dev: true /isobject/3.0.1: resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=} engines: {node: '>=0.10.0'} - dev: false + dev: true /istanbul-lib-coverage/3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} @@ -3002,6 +4042,14 @@ packages: string-length: 4.0.2 dev: true + /jest-worker/24.9.0: + resolution: {integrity: sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==} + engines: {node: '>= 6'} + dependencies: + merge-stream: 2.0.0 + supports-color: 6.1.0 + dev: true + /jest-worker/27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -3032,13 +4080,16 @@ packages: - utf-8-validate dev: true + /jju/1.4.0: + resolution: {integrity: sha1-o6vicYryQaKykE+EpiWXDzia4yo=} + dev: false + /js-tokens/3.0.2: resolution: {integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls=} dev: false /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true /js-yaml/3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -3090,11 +4141,15 @@ packages: - utf-8-validate dev: true + /jsesc/0.5.0: + resolution: {integrity: sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=} + hasBin: true + dev: true + /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true - dev: true /json-parse-even-better-errors/2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -3102,7 +4157,7 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} - dev: false + dev: true /json5/2.2.0: resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} @@ -3110,35 +4165,34 @@ packages: hasBin: true dependencies: minimist: 1.2.5 - dev: true /just-debounce/1.1.0: resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==} - dev: false + dev: true /kind-of/3.2.2: resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=} engines: {node: '>=0.10.0'} dependencies: is-buffer: 1.1.6 - dev: false + dev: true /kind-of/4.0.0: resolution: {integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc=} engines: {node: '>=0.10.0'} dependencies: is-buffer: 1.1.6 - dev: false + dev: true /kind-of/5.1.0: resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} engines: {node: '>=0.10.0'} - dev: false + dev: true /kind-of/6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - dev: false + dev: true /kleur/3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} @@ -3151,28 +4205,28 @@ packages: dependencies: default-resolution: 2.0.0 es6-weak-map: 2.0.3 - dev: false + dev: true /lazystream/1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} dependencies: readable-stream: 2.3.7 - dev: false + dev: true /lcid/1.0.0: resolution: {integrity: sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=} engines: {node: '>=0.10.0'} dependencies: invert-kv: 1.0.0 - dev: false + dev: true /lead/1.0.0: resolution: {integrity: sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=} engines: {node: '>= 0.10'} dependencies: flush-write-stream: 1.1.1 - dev: false + dev: true /leven/3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} @@ -3198,7 +4252,7 @@ packages: object.map: 1.0.1 rechoir: 0.6.2 resolve: 1.22.0 - dev: false + dev: true /lines-and-columns/1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -3213,7 +4267,7 @@ packages: pify: 2.3.0 pinkie-promise: 2.0.1 strip-bom: 2.0.0 - dev: false + dev: true /locate-path/5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -3222,6 +4276,10 @@ packages: p-locate: 4.1.0 dev: true + /lodash.debounce/4.0.8: + resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=} + dev: true + /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true @@ -3232,7 +4290,7 @@ packages: '@babel/runtime-corejs3': registry.npmmirror.com/@babel/runtime-corejs3/7.17.2 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 + deepmerge: 4.2.2 dev: false /lower-case/1.1.4: @@ -3246,13 +4304,19 @@ packages: yallist: 4.0.0 dev: true + /magic-string/0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + /make-dir/2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} dependencies: pify: 4.0.1 semver: 5.7.1 - dev: true + dev: false /make-dir/3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -3266,7 +4330,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: kind-of: 6.0.3 - dev: false + dev: true /makeerror/1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} @@ -3277,14 +4341,14 @@ packages: /map-cache/0.2.2: resolution: {integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=} engines: {node: '>=0.10.0'} - dev: false + dev: true /map-visit/1.0.0: resolution: {integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=} engines: {node: '>=0.10.0'} dependencies: object-visit: 1.0.1 - dev: false + dev: true /matchdep/2.0.0: resolution: {integrity: sha1-xvNINKDY28OzfCfui7yyfHd1WC4=} @@ -3294,7 +4358,7 @@ packages: micromatch: 3.1.10 resolve: 1.22.0 stack-trace: 0.0.10 - dev: false + dev: true /merge-source-map/1.1.0: resolution: {integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==} @@ -3323,7 +4387,7 @@ packages: regex-not: 1.0.2 snapdragon: 0.8.2 to-regex: 3.0.2 - dev: false + dev: true /micromatch/4.0.4: resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} @@ -3357,7 +4421,6 @@ packages: /minimist/1.2.5: resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} - dev: true /mixin-deep/1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} @@ -3365,25 +4428,24 @@ packages: dependencies: for-in: 1.0.2 is-extendable: 1.0.1 - dev: false + dev: true /ms/2.0.0: resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} - dev: false + dev: true /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /mute-stdout/1.0.1: resolution: {integrity: sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==} engines: {node: '>= 0.10'} - dev: false + dev: true /nan/2.15.0: resolution: {integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==} requiresBuild: true - dev: false + dev: true optional: true /nanomatch/1.2.13: @@ -3401,7 +4463,7 @@ packages: regex-not: 1.0.2 snapdragon: 0.8.2 to-regex: 3.0.2 - dev: false + dev: true /natural-compare/1.4.0: resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} @@ -3409,7 +4471,7 @@ packages: /next-tick/1.0.0: resolution: {integrity: sha1-yobR/ogoFpsBICCOPchCS524NCw=} - dev: false + dev: true /no-case/2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} @@ -3423,7 +4485,6 @@ packages: /node-releases/2.0.2: resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} - dev: true /normalize-package-data/2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -3432,14 +4493,14 @@ packages: resolve: 1.22.0 semver: 5.7.1 validate-npm-package-license: 3.0.4 - dev: false + dev: true /normalize-path/2.1.1: resolution: {integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=} engines: {node: '>=0.10.0'} dependencies: remove-trailing-separator: 1.1.0 - dev: false + dev: true /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -3450,7 +4511,7 @@ packages: engines: {node: '>= 0.10'} dependencies: once: 1.4.0 - dev: false + dev: true /npm-run-path/4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} @@ -3462,7 +4523,7 @@ packages: /number-is-nan/1.0.1: resolution: {integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=} engines: {node: '>=0.10.0'} - dev: false + dev: true /nwsapi/2.2.0: resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==} @@ -3475,19 +4536,19 @@ packages: copy-descriptor: 0.1.1 define-property: 0.2.5 kind-of: 3.2.2 - dev: false + dev: true /object-keys/1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - dev: false + dev: true /object-visit/1.0.1: resolution: {integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=} engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 - dev: false + dev: true /object.assign/4.1.2: resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} @@ -3497,7 +4558,7 @@ packages: define-properties: 1.1.3 has-symbols: 1.0.2 object-keys: 1.1.1 - dev: false + dev: true /object.defaults/1.1.0: resolution: {integrity: sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=} @@ -3507,7 +4568,7 @@ packages: array-slice: 1.1.0 for-own: 1.0.0 isobject: 3.0.1 - dev: false + dev: true /object.map/1.0.1: resolution: {integrity: sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=} @@ -3515,14 +4576,14 @@ packages: dependencies: for-own: 1.0.0 make-iterator: 1.0.1 - dev: false + dev: true /object.pick/1.3.0: resolution: {integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=} engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 - dev: false + dev: true /object.reduce/1.0.1: resolution: {integrity: sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=} @@ -3530,7 +4591,7 @@ packages: dependencies: for-own: 1.0.0 make-iterator: 1.0.1 - dev: false + dev: true /once/1.4.0: resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} @@ -3559,14 +4620,14 @@ packages: resolution: {integrity: sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=} dependencies: readable-stream: 2.3.7 - dev: false + dev: true /os-locale/1.4.0: resolution: {integrity: sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=} engines: {node: '>=0.10.0'} dependencies: lcid: 1.0.0 - dev: false + dev: true /p-limit/2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} @@ -3600,14 +4661,14 @@ packages: is-absolute: 1.0.0 map-cache: 0.2.2 path-root: 0.1.1 - dev: false + dev: true /parse-json/2.2.0: resolution: {integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=} engines: {node: '>=0.10.0'} dependencies: error-ex: 1.3.2 - dev: false + dev: true /parse-json/5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} @@ -3622,12 +4683,12 @@ packages: /parse-node-version/1.0.1: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} engines: {node: '>= 0.10'} - dev: false + dev: true /parse-passwd/1.0.0: resolution: {integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=} engines: {node: '>=0.10.0'} - dev: false + dev: true /parse5/6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} @@ -3636,18 +4697,18 @@ packages: /pascalcase/0.1.1: resolution: {integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=} engines: {node: '>=0.10.0'} - dev: false + dev: true /path-dirname/1.0.2: resolution: {integrity: sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=} - dev: false + dev: true /path-exists/2.1.0: resolution: {integrity: sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=} engines: {node: '>=0.10.0'} dependencies: pinkie-promise: 2.0.1 - dev: false + dev: true /path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -3665,18 +4726,19 @@ packages: /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true /path-root-regex/0.1.2: resolution: {integrity: sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=} engines: {node: '>=0.10.0'} - dev: false + dev: true /path-root/0.1.1: resolution: {integrity: sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=} engines: {node: '>=0.10.0'} dependencies: path-root-regex: 0.1.2 - dev: false + dev: true /path-type/1.1.0: resolution: {integrity: sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=} @@ -3685,38 +4747,36 @@ packages: graceful-fs: 4.2.9 pify: 2.3.0 pinkie-promise: 2.0.1 - dev: false + dev: true /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pify/2.3.0: resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} engines: {node: '>=0.10.0'} - dev: false + dev: true /pify/4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - dev: true + dev: false /pinkie-promise/2.0.1: resolution: {integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o=} engines: {node: '>=0.10.0'} dependencies: pinkie: 2.0.4 - dev: false + dev: true /pinkie/2.0.4: resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=} engines: {node: '>=0.10.0'} - dev: false + dev: true /pirates/4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} @@ -3733,7 +4793,7 @@ packages: /posix-character-classes/0.1.1: resolution: {integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=} engines: {node: '>=0.10.0'} - dev: false + dev: true /prelude-ls/1.1.2: resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=} @@ -3751,10 +4811,11 @@ packages: /pretty-hrtime/1.0.3: resolution: {integrity: sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=} engines: {node: '>= 0.8'} - dev: false + dev: true /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true /prompts/2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} @@ -3773,7 +4834,7 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: false + dev: true /pumpify/1.5.1: resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} @@ -3781,7 +4842,7 @@ packages: duplexify: 3.7.1 inherits: 2.0.4 pump: 2.0.1 - dev: false + dev: true /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} @@ -3798,7 +4859,7 @@ packages: dependencies: find-up: 1.1.2 read-pkg: 1.1.0 - dev: false + dev: true /read-pkg/1.1.0: resolution: {integrity: sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=} @@ -3807,7 +4868,7 @@ packages: load-json-file: 1.1.0 normalize-package-data: 2.5.0 path-type: 1.1.0 - dev: false + dev: true /readable-stream/2.3.7: resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} @@ -3819,6 +4880,7 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 + dev: true /readable-stream/3.6.0: resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} @@ -3836,22 +4898,51 @@ packages: graceful-fs: 4.2.9 micromatch: 3.1.10 readable-stream: 2.3.7 - dev: false + dev: true /readdirp/3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true + dev: false optional: true + /readjson/2.2.2: + resolution: {integrity: sha512-PdeC9tsmLWBiL8vMhJvocq+OezQ3HhsH2HrN7YkhfYcTjQSa/iraB15A7Qvt7Xpr0Yd2rDNt6GbFwVQDg3HcAw==} + engines: {node: '>=10'} + dependencies: + jju: 1.4.0 + try-catch: 3.0.0 + dev: false + /rechoir/0.6.2: resolution: {integrity: sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=} engines: {node: '>= 0.10'} dependencies: resolve: 1.22.0 - dev: false + dev: true + + /regenerate-unicode-properties/10.0.1: + resolution: {integrity: sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate/1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime/0.13.9: + resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + dev: true + + /regenerator-transform/0.14.5: + resolution: {integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==} + dependencies: + '@babel/runtime': 7.17.2 + dev: true /regex-not/1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} @@ -3859,7 +4950,30 @@ packages: dependencies: extend-shallow: 3.0.2 safe-regex: 1.1.0 - dev: false + dev: true + + /regexpu-core/5.0.1: + resolution: {integrity: sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.0.1 + regjsgen: 0.6.0 + regjsparser: 0.8.4 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.0.0 + dev: true + + /regjsgen/0.6.0: + resolution: {integrity: sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==} + dev: true + + /regjsparser/0.8.4: + resolution: {integrity: sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true /relateurl/0.2.7: resolution: {integrity: sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=} @@ -3872,7 +4986,7 @@ packages: dependencies: is-buffer: 1.1.6 is-utf8: 0.2.1 - dev: false + dev: true /remove-bom-stream/1.2.0: resolution: {integrity: sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=} @@ -3881,24 +4995,26 @@ packages: remove-bom-buffer: 3.0.0 safe-buffer: 5.2.1 through2: 2.0.5 - dev: false + dev: true /remove-trailing-separator/1.1.0: resolution: {integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8=} + dev: true /repeat-element/1.1.4: resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} engines: {node: '>=0.10.0'} - dev: false + dev: true /repeat-string/1.6.1: resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=} engines: {node: '>=0.10'} - dev: false + dev: true /replace-ext/1.0.1: resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} engines: {node: '>= 0.10'} + dev: true /replace-homedir/1.0.0: resolution: {integrity: sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=} @@ -3907,15 +5023,16 @@ packages: homedir-polyfill: 1.0.3 is-absolute: 1.0.0 remove-trailing-separator: 1.1.0 - dev: false + dev: true /require-directory/2.1.1: resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} engines: {node: '>=0.10.0'} + dev: true /require-main-filename/1.0.1: resolution: {integrity: sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=} - dev: false + dev: true /resolve-cwd/3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} @@ -3930,7 +5047,7 @@ packages: dependencies: expand-tilde: 2.0.2 global-modules: 1.0.0 - dev: false + dev: true /resolve-from/5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} @@ -3942,12 +5059,12 @@ packages: engines: {node: '>= 0.10'} dependencies: value-or-function: 3.0.0 - dev: false + dev: true /resolve-url/0.2.1: resolution: {integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=} deprecated: https://github.com/lydell/resolve-url#deprecated - dev: false + dev: true /resolve.exports/1.1.0: resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} @@ -3961,11 +5078,19 @@ packages: is-core-module: 2.8.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true /ret/0.1.15: resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} engines: {node: '>=0.12'} - dev: false + dev: true + + /rimraf/2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.0 + dev: true /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -3974,18 +5099,44 @@ packages: glob: 7.2.0 dev: true + /rollup-plugin-clear/2.0.7: + resolution: {integrity: sha512-Hg8NC3JcJBO1ofgyQC0IACpyKn/yhHPGZ3C7R3ubNGWUXy9JXHQrewk4J4hVcZznw6SOKayLsaNae596Rwt8Vg==} + dependencies: + rimraf: 2.7.1 + dev: true + + /rollup-plugin-uglify/6.0.4_rollup@2.69.0: + resolution: {integrity: sha512-ddgqkH02klveu34TF0JqygPwZnsbhHVI6t8+hGTcYHngPkQb5MIHI0XiztXIN/d6V9j+efwHAqEL7LspSxQXGw==} + peerDependencies: + rollup: '>=0.66.0 <2' + dependencies: + '@babel/code-frame': 7.16.7 + jest-worker: 24.9.0 + rollup: 2.69.0 + serialize-javascript: 2.1.2 + uglify-js: 3.4.10 + dev: true + + /rollup/2.69.0: + resolution: {integrity: sha512-kjER91tHyek8gAkuz7+558vSnTQ+pITEok1P0aNOS45ZXyngaqPsXJmSel4QPQnJo7EJMjXUU1/GErWkWiKORg==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} /safe-buffer/5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: false + dev: true /safe-regex/1.1.0: resolution: {integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4=} dependencies: ret: 0.1.15 - dev: false + dev: true /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -4003,7 +5154,7 @@ packages: engines: {node: '>= 0.10'} dependencies: sver-compat: 1.5.0 - dev: false + dev: true /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} @@ -4012,6 +5163,10 @@ packages: /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true + + /semver/7.0.0: + resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} + hasBin: true dev: true /semver/7.3.5: @@ -4022,9 +5177,13 @@ packages: lru-cache: 6.0.0 dev: true + /serialize-javascript/2.1.2: + resolution: {integrity: sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==} + dev: true + /set-blocking/2.0.0: resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} - dev: false + dev: true /set-value/2.0.1: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} @@ -4034,7 +5193,7 @@ packages: is-extendable: 0.1.1 is-plain-object: 2.0.4 split-string: 3.1.0 - dev: false + dev: true /shebang-command/2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -4059,7 +5218,7 @@ packages: /slash/2.0.0: resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} engines: {node: '>=6'} - dev: true + dev: false /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -4073,14 +5232,14 @@ packages: define-property: 1.0.0 isobject: 3.0.1 snapdragon-util: 3.0.1 - dev: false + dev: true /snapdragon-util/3.0.1: resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - dev: false + dev: true /snapdragon/0.8.2: resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} @@ -4094,7 +5253,7 @@ packages: source-map: 0.5.7 source-map-resolve: 0.5.3 use: 3.1.1 - dev: false + dev: true /source-map-resolve/0.5.3: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} @@ -4105,7 +5264,7 @@ packages: resolve-url: 0.2.1 source-map-url: 0.4.1 urix: 0.1.0 - dev: false + dev: true /source-map-support/0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -4117,7 +5276,7 @@ packages: /source-map-url/0.4.1: resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: false + dev: true /source-map/0.5.7: resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} @@ -4132,39 +5291,43 @@ packages: engines: {node: '>= 8'} dev: true + /sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + dev: true + /sparkles/1.0.1: resolution: {integrity: sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==} engines: {node: '>= 0.10'} - dev: false + dev: true /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.11 - dev: false + dev: true /spdx-exceptions/2.3.0: resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: false + dev: true /spdx-expression-parse/3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.11 - dev: false + dev: true /spdx-license-ids/3.0.11: resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} - dev: false + dev: true /split-string/3.1.0: resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} engines: {node: '>=0.10.0'} dependencies: extend-shallow: 3.0.2 - dev: false + dev: true /sprintf-js/1.0.3: resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} @@ -4172,7 +5335,7 @@ packages: /stack-trace/0.0.10: resolution: {integrity: sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=} - dev: false + dev: true /stack-utils/2.0.5: resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} @@ -4187,15 +5350,15 @@ packages: dependencies: define-property: 0.2.5 object-copy: 0.1.0 - dev: false + dev: true /stream-exhaust/1.0.2: resolution: {integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==} - dev: false + dev: true /stream-shift/1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - dev: false + dev: true /string-length/4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} @@ -4212,7 +5375,7 @@ packages: code-point-at: 1.1.0 is-fullwidth-code-point: 1.0.0 strip-ansi: 3.0.1 - dev: false + dev: true /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -4233,7 +5396,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: ansi-regex: 2.1.1 - dev: false + dev: true /strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} @@ -4247,7 +5410,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-utf8: 0.2.1 - dev: false + dev: true /strip-bom/4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} @@ -4269,6 +5432,12 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + + /supports-color/6.1.0: + resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} + engines: {node: '>=6'} + dependencies: + has-flag: 3.0.0 dev: true /supports-color/7.2.0: @@ -4296,13 +5465,14 @@ packages: /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + dev: true /sver-compat/1.5.0: resolution: {integrity: sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=} dependencies: es6-iterator: 2.0.3 es6-symbol: 3.1.3 - dev: false + dev: true /symbol-tree/3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -4334,14 +5504,14 @@ packages: dependencies: through2: 2.0.5 xtend: 4.0.2 - dev: false + dev: true /through2/2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: readable-stream: 2.3.7 xtend: 4.0.2 - dev: false + dev: true /through2/4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} @@ -4352,7 +5522,7 @@ packages: /time-stamp/1.1.0: resolution: {integrity: sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=} engines: {node: '>=0.10.0'} - dev: false + dev: true /tmpl/1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -4364,19 +5534,18 @@ packages: dependencies: is-absolute: 1.0.0 is-negated-glob: 1.0.0 - dev: false + dev: true /to-fast-properties/2.0.0: resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} engines: {node: '>=4'} - dev: true /to-object-path/0.3.0: resolution: {integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - dev: false + dev: true /to-regex-range/2.1.1: resolution: {integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=} @@ -4384,14 +5553,13 @@ packages: dependencies: is-number: 3.0.0 repeat-string: 1.6.1 - dev: false + dev: true /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true /to-regex/3.0.2: resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} @@ -4401,14 +5569,14 @@ packages: extend-shallow: 3.0.2 regex-not: 1.0.2 safe-regex: 1.1.0 - dev: false + dev: true /to-through/2.0.0: resolution: {integrity: sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=} engines: {node: '>= 0.10'} dependencies: through2: 2.0.5 - dev: false + dev: true /tough-cookie/4.0.0: resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} @@ -4426,6 +5594,11 @@ packages: punycode: 2.1.1 dev: true + /try-catch/3.0.0: + resolution: {integrity: sha512-3uAqUnoemzca1ENvZ72EVimR+E8lqBbzwZ9v4CEbLjkaV3Q+FtdmPUt7jRtoSoTiYjyIMxEkf6YgUpe/voJ1ng==} + engines: {node: '>=6'} + dev: false + /type-check/0.3.2: resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=} engines: {node: '>= 0.8.0'} @@ -4444,11 +5617,11 @@ packages: /type/1.2.0: resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - dev: false + dev: true /type/2.6.0: resolution: {integrity: sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==} - dev: false + dev: true /typedarray-to-buffer/3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -4458,7 +5631,7 @@ packages: /typedarray/0.0.6: resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=} - dev: false + dev: true /uglify-js/3.4.10: resolution: {integrity: sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==} @@ -4466,18 +5639,17 @@ packages: hasBin: true dependencies: commander: 2.19.0 - source-map: registry.npmmirror.com/source-map/0.6.1 - dev: false + source-map: 0.6.1 /unc-path-regex/0.1.2: resolution: {integrity: sha1-5z3T17DXxe2G+6xrCufYxqadUPo=} engines: {node: '>=0.10.0'} - dev: false + dev: true /undertaker-registry/1.0.1: resolution: {integrity: sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=} engines: {node: '>= 0.10'} - dev: false + dev: true /undertaker/1.3.0: resolution: {integrity: sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==} @@ -4493,7 +5665,30 @@ packages: object.defaults: 1.1.0 object.reduce: 1.0.1 undertaker-registry: 1.0.1 - dev: false + dev: true + + /unicode-canonical-property-names-ecmascript/2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript/2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.0.0 + dev: true + + /unicode-match-property-value-ecmascript/2.0.0: + resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript/2.0.0: + resolution: {integrity: sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==} + engines: {node: '>=4'} + dev: true /union-value/1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} @@ -4503,14 +5698,14 @@ packages: get-value: 2.0.6 is-extendable: 0.1.1 set-value: 2.0.1 - dev: false + dev: true /unique-stream/2.3.1: resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} dependencies: json-stable-stringify-without-jsonify: 1.0.1 through2-filter: 3.0.0 - dev: false + dev: true /universalify/0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -4523,12 +5718,12 @@ packages: dependencies: has-value: 0.3.1 isobject: 3.0.1 - dev: false + dev: true /upath/1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} - dev: false + dev: true /upper-case/1.1.3: resolution: {integrity: sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=} @@ -4537,12 +5732,12 @@ packages: /urix/0.1.0: resolution: {integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=} deprecated: Please see https://github.com/lydell/urix#deprecated - dev: false + dev: true /use/3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'} - dev: false + dev: true /util-deprecate/1.0.2: resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} @@ -4561,19 +5756,19 @@ packages: engines: {node: '>= 0.10'} dependencies: homedir-polyfill: 1.0.3 - dev: false + dev: true /validate-npm-package-license/3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.1.1 spdx-expression-parse: 3.0.1 - dev: false + dev: true /value-or-function/3.0.0: resolution: {integrity: sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=} engines: {node: '>= 0.10'} - dev: false + dev: true /vinyl-fs/3.0.3: resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==} @@ -4596,7 +5791,7 @@ packages: value-or-function: 3.0.0 vinyl: 2.2.1 vinyl-sourcemap: 1.1.0 - dev: false + dev: true /vinyl-sourcemap/1.1.0: resolution: {integrity: sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=} @@ -4609,7 +5804,7 @@ packages: now-and-later: 2.0.1 remove-bom-buffer: 3.0.0 vinyl: 2.2.1 - dev: false + dev: true /vinyl/2.2.1: resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} @@ -4621,6 +5816,7 @@ packages: cloneable-readable: 1.1.3 remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 + dev: true /w3c-hr-time/1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} @@ -4672,14 +5868,14 @@ packages: /which-module/1.0.0: resolution: {integrity: sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=} - dev: false + dev: true /which/1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true dependencies: isexe: 2.0.0 - dev: false + dev: true /which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -4699,7 +5895,7 @@ packages: dependencies: string-width: 1.0.2 strip-ansi: 3.0.1 - dev: false + dev: true /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -4746,11 +5942,11 @@ packages: /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - dev: false + dev: true /y18n/3.2.2: resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} - dev: false + dev: true /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -4771,7 +5967,7 @@ packages: dependencies: camelcase: 3.0.0 object.assign: 4.1.2 - dev: false + dev: true /yargs/16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} @@ -4802,7 +5998,7 @@ packages: which-module: 1.0.0 y18n: 3.2.2 yargs-parser: 5.0.1 - dev: false + dev: true registry.npmmirror.com/@babel/runtime-corejs3/7.17.2: resolution: {integrity: sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz} @@ -4834,35 +6030,6 @@ packages: requiresBuild: true dev: false - registry.npmmirror.com/dayjs/1.10.8: - resolution: {integrity: sha512-wbNwDfBHHur9UOzNUjeKUOJ0fCb0a52Wx0xInmQ7Y8FstyajiV1NmK1e00cxsr9YrE9r7yAChE0VvpuY5Rnlow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.10.8.tgz} - name: dayjs - version: 1.10.8 - dev: false - - 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: false - - registry.npmmirror.com/jju/1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jju/-/jju-1.4.0.tgz} - name: jju - version: 1.4.0 - dev: false - - registry.npmmirror.com/readjson/2.2.2: - resolution: {integrity: sha512-PdeC9tsmLWBiL8vMhJvocq+OezQ3HhsH2HrN7YkhfYcTjQSa/iraB15A7Qvt7Xpr0Yd2rDNt6GbFwVQDg3HcAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readjson/-/readjson-2.2.2.tgz} - name: readjson - version: 2.2.2 - engines: {node: '>=10'} - dependencies: - jju: registry.npmmirror.com/jju/1.4.0 - try-catch: registry.npmmirror.com/try-catch/3.0.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 @@ -4875,10 +6042,3 @@ packages: version: 0.6.1 engines: {node: '>=0.10.0'} dev: false - - registry.npmmirror.com/try-catch/3.0.0: - resolution: {integrity: sha512-3uAqUnoemzca1ENvZ72EVimR+E8lqBbzwZ9v4CEbLjkaV3Q+FtdmPUt7jRtoSoTiYjyIMxEkf6YgUpe/voJ1ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/try-catch/-/try-catch-3.0.0.tgz} - name: try-catch - version: 3.0.0 - engines: {node: '>=6'} - dev: false diff --git a/readme.md b/readme.md index 741a3e2..7f729fc 100644 --- a/readme.md +++ b/readme.md @@ -151,7 +151,7 @@ t("第{}章",100) // == Chapter 100 ## 插值变量格式化 voerka-i18n支持对插值变量进行格式化 - +{{value | filter}} 过滤器语法类似管道操作符,它的上一个输出作为下一个输入。 ```javascript new VoerkaI18n({ @@ -195,6 +195,31 @@ new VoerkaI18n({ t("今天是{date}",{date:new Date()}) +``` + +### 字典 + +当翻译内容是一个{}时,启用字典插值模式。 +```javascript +// 源文件 +// 假设网络状态取值:0=初始化,1=正在连接,2=已连接,3=正在断开.4=已断开,>4=未知 + + t("当前状态:{status}",{status}) + +// translates/default.json + +{ + "当前状态:{status}":{ + cn:{0:"初始化",1:"正在连接",2:"已连接",3:"正在断开",4:"已断开",unknow:"未知"}, + en:{ + to:"Status:{}", + vars:{"Init","Connecting","Connected","Disconnecting","Disconnected","unknow"} + }, + en:"Status : {status | dict({0:"Init",1:"Connecting",2:"Connected",3:"Disconnecting",4:"Disconnected",5:"unknow"})}" + } +} + + ``` diff --git a/src/formatters.js b/src/formatters.js deleted file mode 100644 index 13de931..0000000 --- a/src/formatters.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * 内置的格式化器 - * - */ - - -module.exports = { - "*":{ - $types:{ - Date:(value)=>value.toLocaleString() - }, - time:(value)=> value.toLocaleTimeString(), - date: (value)=> value.toLocaleDateString(), - }, - cn:{ - $types:{ - Date:(value)=> `${value.getFullYear()}年${value.getMonth()+1}月${value.getDate()}日 ${value.getHours()}点${value.getMinutes()}分${value.getSeconds()}秒` - }, - time:(value)=>`${value.getHours()}点${value.getMinutes()}分${value.getSeconds()}秒`, - date: (value)=> `${value.getFullYear()}年${value.getMonth()+1}月${value.getDate()}日`, - currency:(value)=>`${value}元`, - }, - en:{ - currency:(value)=>`$${value}`, - } -} \ No newline at end of file diff --git a/test/app.test.js b/test/app.test.js new file mode 100644 index 0000000..cccfece --- /dev/null +++ b/test/app.test.js @@ -0,0 +1,13 @@ +/** + * 测试demp app的语言运行环境 + */ + const compile = require('../packages/tools/compile'); + const path = require("path") + + + +test("导入多语言包",async ()=>{ + await compile(path.resolve(__dirname,'../packages/demo/apps/app/languages'),{moduleType:"commonjs"}) + const { t,scope,languages } = require(path.join(__dirname,'../packages/demo/apps/app/languages/index.js')); + expect(t).toBeFunction() +}) \ No newline at end of file diff --git a/test/babel.test.js b/test/babel.test.js index a87d5ee..f225ae0 100644 --- a/test/babel.test.js +++ b/test/babel.test.js @@ -1,7 +1,16 @@ +/** + * 测试babel-plugin-voerkai18n插件 + * + * + * babel-plugin-voerkai18n插件可以根据idMap.js文件将源文件中的t函数翻译内容转化为对应的id + * 并且可以自动导入t函数 + * + */ + const babel = require("@babel/core"); const fs = require("fs"); const path = require("path"); -const i18nPlugin = require("../src/babel-plugin-voerkai18n"); +const i18nPlugin = require("../packages/tools/babel-plugin-voerkai18n"); const code = ` function test(a,b){ @@ -32,7 +41,8 @@ test("翻译函数转换",done=>{ // 可以指定相对路径,也可以指定绝对路径 autoImport:"#/languages", moduleType:"esm", - // 此参数仅仅用于单元测试时使用,正常情况下,会读取location文件夹下的idMap", idMap:{ + // 此参数仅仅用于单元测试时使用,正常情况下,会读取location文件夹下的idMap", + idMap:{ "a":1, "b":2, "c{}{}":3, @@ -53,7 +63,7 @@ test("读取esm格式的idMap后进行翻译函数转换",done=>{ [ i18nPlugin, { - location:path.join(__dirname, "../demo/apps/lib1/languages"), + location:path.join(__dirname, "../packages/demo/apps/lib1/languages"), autoImport:"#/languages", moduleType:"esm", } @@ -70,7 +80,7 @@ test("读取commonjs格式的idMap后进行翻译函数转换",done=>{ [ i18nPlugin, { - location:path.join(__dirname, "../demo/apps/lib2/languages"), + location:path.join(__dirname, "../packages/demo/apps/lib2/languages"), autoImport:"#/languages", moduleType:"esm", } diff --git a/test/extract.test.js b/test/extract.test.js index 63e3155..8d4a745 100644 --- a/test/extract.test.js +++ b/test/extract.test.js @@ -1,8 +1,8 @@ -const extract = require("../src/extract.plugin"); +const extract = require("../packages/tools/extract.plugin"); const gulp = require('gulp'); const path = require('path'); const Vinyl = require('vinyl'); -const { getTranslateTexts, normalizeLanguageOptions } = require("../src/extract.plugin"); +const { getTranslateTexts, normalizeLanguageOptions } = require("../packages/tools/extract.plugin"); const languages = [{name:'en',title:"英文"},{name:'cn',title:"中文",default:true},{name:'de',title:"德语"},{name:'jp',title:"日本語"}] diff --git a/test/translate.test.js b/test/translate.test.js index 1a8fcfe..fcba771 100644 --- a/test/translate.test.js +++ b/test/translate.test.js @@ -1,23 +1,26 @@ const dayjs = require('dayjs'); -const { getInterpolatedVars, replaceInterpolatedVars , translate} = require('../src/index.js') +const { getInterpolatedVars, replaceInterpolatedVars , translate} = require('../packages/runtime/index.js') const messages = { cn:{ 1:"你好", 2:"现在是{}", 3:"我出生于{year}年,今年{age}岁", + 4:"我有{}个朋友", }, en :{ 1:"hello", 2:"Now is {}", 3:"I was born in {year}, now is {age} years old", + 4:["I have no friends","I have one friends","I have two friends","I have {} friends"], } } const idMap = { "你好":1, "现在是{}":2, - "我出生于{year}年,今年{age}岁":3 + "我出生于{year}年,今年{age}岁":3, + "我有{}个朋友":4 } @@ -99,24 +102,48 @@ beforeEach(() => { test("获取翻译内容中的插值变量",done=>{ - const results = getInterpolatedVars("中华人民共和国成立于{date | year | time }年,首都是{city}市"); - expect(results.map(r=>r[0]).join(",")).toBe("date,city"); - expect(results[0][0]).toEqual("date"); - expect(results[0][1]).toEqual(["year","time"]); - expect(results[1][0]).toEqual("city"); - expect(results[1][1]).toEqual([]); + const results = getInterpolatedVars("中华人民共和国成立于{date | year(1,2) | time('a','b') | rel }年,首都是{city}市"); + expect(results.length).toEqual(2); + // + expect(results[0].name).toEqual("date"); + expect(results[0].formatters.length).toEqual(3); + // year(1,2) + expect(results[0].formatters[0].name).toEqual("year"); + expect(results[0].formatters[0].args).toEqual([1,2]); + // time('a','b') + expect(results[0].formatters[1].name).toEqual("time"); + expect(results[0].formatters[1].args).toEqual(["a","b"]); + // rel + expect(results[0].formatters[2].name).toEqual("rel"); + expect(results[0].formatters[2].args).toEqual([]); + + + expect(results[1].name).toEqual("city"); + expect(results[1].formatters.length).toEqual(0); + + done() }) test("获取翻译内容中定义了重复的插值变量",done=>{ const results = getInterpolatedVars("{a}{a}{a|x}{a|x}{a|x|y}{a|x|y}"); expect(results.length).toEqual(3); - expect(results[0][0]).toEqual("a"); - expect(results[0][1]).toEqual([]); - expect(results[1][0]).toEqual("a"); - expect(results[1][1]).toEqual(["x"]); - expect(results[2][0]).toEqual("a"); - expect(results[2][1]).toEqual(["x","y"]); + expect(results[0].name).toEqual("a"); + expect(results[0].formatters.length).toEqual(0); + + expect(results[1].name).toEqual("a"); + expect(results[1].formatters.length).toEqual(1); + expect(results[1].formatters[0].name).toEqual("x"); + expect(results[1].formatters[0].args).toEqual([]); + + + expect(results[2].name).toEqual("a"); + expect(results[2].formatters.length).toEqual(2); + expect(results[2].formatters[0].name).toEqual("x"); + expect(results[2].formatters[0].args).toEqual([]); + expect(results[2].formatters[1].name).toEqual("y"); + expect(results[2].formatters[1].args).toEqual([]); + done() }) @@ -223,3 +250,14 @@ test("切换到未知语言",done=>{ done() }) + +test("翻译复数支持",done=>{ + changeLanguage("en") + expect(t("我有{}个朋友",0)).toBe("I have no friends"); + expect(t("我有{}个朋友",1)).toBe("I have one friends"); + expect(t("我有{}个朋友",2)).toBe("I have two friends"); + expect(t("我有{}个朋友",3)).toBe("I have 3 friends"); + expect(t("我有{}个朋友",4)).toBe("I have 4 friends"); + done() +}) + \ No newline at end of file