diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..9d08a1a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.eslintrc.js b/.eslintrc.js index cc01bd7..1c06210 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,37 +1,41 @@ module.exports = { - extends: ["eslint:recommended", "plugin:prettier/recommended"], - env: { - browser: true, - node: true, - commonjs: true, - es2021: true, + extends: ["eslint:recommended", "plugin:prettier/recommended"], + env: { + browser: true, + node: true, + commonjs: true, + es2021: true, + }, + parserOptions: { + requireConfigFile: false, + ecmaVersion: 2020, + sourceType: "module", + }, + overrides: [ + { + files: ["*.ts"], + parser: "@typescript-eslint/parser", + plugins: ["@typescript-eslint"], + extends: ["plugin:@typescript-eslint/recommended"], }, - parserOptions: { - requireConfigFile: false, - ecmaVersion: 2020, - sourceType: "module", - }, - overrides: [ - { - files: ["*.ts"], - parser: "@typescript-eslint/parser", - plugins: ["@typescript-eslint"], - extends: ["plugin:@typescript-eslint/recommended"], - }, - ], - ignorePatterns: ["node_modules", "build", "dist", "coverage"], - rules: { - // 分号 - "semi": "error", - // 对象键值引号样式保持一致 - "quote-props": ["error", "consistent-as-needed"], - // 箭头函数允许单参数不带括号 - "arrow-parens": ["error", "as-needed"], - // no var - "no-var": "error", - // const - "prefer-const": "error", - // 允许console - "no-console": "off", + { + files: ["*.tsx"], + parser: "@typescript-eslint/parser", + plugins: ["react", "react-hooks", "@typescript-eslint/eslint-plugin"], + extends: ["plugin:@typescript-eslint/recommended", "plugin:react-hooks/recommended"], }, + ], + ignorePatterns: ["node_modules", "build", "dist", "coverage", "public"], + rules: { + "semi": "error", + "quote-props": ["error", "consistent-as-needed"], + "arrow-parens": ["error", "as-needed"], + "no-var": "error", + "prefer-const": "error", + "no-console": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/ban-ts-ignore": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/consistent-type-imports": "error", + }, }; diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..7ef6393 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,31 @@ +## 问题描述 + + + + + + +## 项目所属 + + + +- [ ] Copy +- [ ] Force Copy +- [ ] Copy Currency +- [ ] Site Director +- [ ] Water Mark +- [ ] Captcha +- [ ] Expansion +- [ ] Completion +- [ ] Unknown + +## 相关链接 + + + + + + +## 预期表现 + + diff --git a/.github/workflows/deploy-scripts.yml b/.github/workflows/deploy-scripts.yml new file mode 100644 index 0000000..44d1ed8 --- /dev/null +++ b/.github/workflows/deploy-scripts.yml @@ -0,0 +1,38 @@ +name: deploy-scripts gh-pages + +on: + push: + branches: + - master + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + persist-credentials: false + + - name: install node-v16 + uses: actions/setup-node@v3 + with: + node-version: '16.16.0' + + - name: install dependencies + run: | + node -v + npm install -g pnpm@8.11.0 + pnpm --filter=\!force-copy --registry=https://registry.npmjs.org/ install + + - name: build project + run: | + pnpm run build:scripts + + - name: deploy + uses: JamesIves/github-pages-deploy-action@releases/v3 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BRANCH: gh-pages + FOLDER: dist diff --git a/.gitignore b/.gitignore index 200851a..aeb167a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,30 @@ -backup -node_modules -*.log -.DS_Store \ No newline at end of file +# base +backup +node_modules +*.log +.DS_Store +.idea +*.zip + +# dependencies +node_modules +.pnp +.pnp.js + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..995ecba --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +registry=https://registry.npmmirror.com/ +# strict-peer-dependencies=false diff --git a/.prettierrc.js b/.prettierrc.js index d1058de..1531a4c 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,18 +1,18 @@ module.exports = { - "printWidth": 100, // 指定代码长度,超出换行 - "tabWidth": 4, // tab 键的宽度 - "useTabs": false, // 不使用tab - "semi": true, // 结尾加上分号 - "singleQuote": false, // 使用单引号 - "quoteProps": "preserve", // 不要求对象字面量属性是否使用引号包裹 - "jsxSingleQuote": false, // jsx 语法中使用单引号 - "trailingComma": "es5", // 确保对象的最后一个属性后有逗号 - "bracketSpacing": true, // 大括号有空格 { name: 'rose' } - "jsxBracketSameLine": false, // 在多行JSX元素的最后一行追加 > - "arrowParens": "avoid", // 箭头函数,单个参数不强制添加括号 - "requirePragma": false, // 是否严格按照文件顶部的特殊注释格式化代码 - "insertPragma": false, // 是否在格式化的文件顶部插入Pragma标记,以表明该文件被prettier格式化过了 - "proseWrap": "preserve", // 按照文件原样折行 - "htmlWhitespaceSensitivity": "ignore", // html文件的空格敏感度,控制空格是否影响布局 - "endOfLine": "lf" // 结尾是 \n \r \n\r auto -} \ No newline at end of file + "printWidth": 100, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": false, + "quoteProps": "preserve", + "jsxSingleQuote": false, + "trailingComma": "es5", + "bracketSpacing": true, + "jsxBracketSameLine": false, + "arrowParens": "avoid", + "requirePragma": false, + "insertPragma": false, + "proseWrap": "preserve", + "htmlWhitespaceSensitivity": "ignore", + "endOfLine": "lf", +}; diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..520fbe8 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "cSpell.words": [ + "rspack" + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 9181d40..2f79f34 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,152 @@ # TKScript -`TamperMonkey` 油猴插件,`GreasyFork`[主页链接](https://greasyfork.org/zh-CN/users/584991-windrunnermax)。 +

+GitHub + +GreasyFork + +FirefoxAddOns + +ChromeWebStore + +BLOG +

-* `dist`: 打包后模块。 -* `src/copy`: 文本选中复制。 -* `src/expansion`: 自动展开阅读全文。 -* `src/captcha`: 强智教务系统验证码识别。 -* `src/site-director`: 去除链接跳转页面。 -* `src/completion`: 阿里矢量图标库添加`HTTP`按钮。 +`GreaseMonkey`油猴脚本与`BrowserAddon`浏览器扩展,如果觉得不错,点个`star`吧 😁 -`copy`与`site-director`脚本需`rollup`打包使用,其他脚本引入即可。 + +## Install + +使用油猴脚本需要首先安装`GreaseMonkey/TamperMonkey`扩展,版本库中有如下脚本,可以直接点击安装按钮进行安装,浏览器扩展程序直接在浏览器相关应用市场安装即可。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称详情安装简介
文本选中复制详情 +安装 + +备用 +解除网站不允许复制的限制,需要适配新的网站可提issue
文本选中复制-通用详情 +安装 + +备用 +文本选中复制通用处理版本,具体使用方式请查阅详情。
Force Copy详情 +安装 + +备用 +浏览器扩展程序,集成文本选中复制与通用能力。
跳转链接直达详情 +安装 + +备用 +去掉确定跳转链接页面,用于谷歌、知乎、CSDN、简书等。
移除页面水印详情 +安装 + +备用 +移除常见网页的水印,请自行处理@match到匹配地址。
移除 DevTools 拦截器详情 +安装 + +备用 +移除调试器拦截器,防止浏览器DevTools被拦截。
自动展开阅读全文详情 +安装 + +备用 +展开阅读全文,用于CSDN、知乎等。
强智教务验证码识别详情 +安装 + +备用 +自动填写强智的验证码,请自行处理@match到匹配地址。
阿里图标库HTTP详情 +安装 + +备用 +添加HTTP按钮,简化手动填写。
+ +## Release + +如果需要从源码构建脚本与扩展,请使用`pnpm`安装依赖,如果不需要这步操作,可以直接在上方表格点击安装按钮即可安装打包好的脚本与扩展。版本库中`dist`为脚本打包目录,其中仅`copy`、`site-director`、`copy-currency`脚本需`rollup`打包使用,其他脚本直接安装即可。浏览器扩展的打包位置为各自`monorepo package`下的`build`目录,调试开发过程需要主动指定浏览器加载目标位置。 ```bash $ pnpm install $ pnpm run build -``` \ No newline at end of file +$ pnpm run build:force-copy +$ pnpm run build:force-copy:gecko +``` + +## Contributors + + + diff --git a/dist/copy.js b/dist/copy.js deleted file mode 100644 index b5b4656..0000000 --- a/dist/copy.js +++ /dev/null @@ -1,568 +0,0 @@ -// ==UserScript== -// @name 🔥🔥🔥文本选中复制🔥🔥🔥 -// @description 解除网站不允许复制的限制,文本选中后点击复制按钮即可复制,主要用于 百度文库 道客巴巴 无忧考网 学习啦 蓬勃范文 思否社区 力扣 知乎 语雀 等 -// @namespace https://github.com/WindrunnerMax/TKScript -// @version 3.1.0 -// @author Czy -// @include *://wenku.baidu.com/view/* -// @include *://wenku.baidu.com/share/* -// @include *://wenku.baidu.com/link* -// @include *://www.51test.net/show/* -// @include *://www.xuexi.la/* -// @include *://www.xuexila.com/* -// @include *://www.cspengbo.com/* -// @include *://*.doc88.com/* -// @include *://segmentfault.com/* -// @include *://wk.baidu.com/view/* -// @include *://leetcode-cn.com/problems/* -// @include *://www.zhihu.com/* -// @include *://z.30edu.com.cn/* -// @include *://docs.qq.com/doc/* -// @include *://boke112.com/post/* -// @include *://www.yuque.com/* -// @include *://www.commandlinux.com/* -// @include *://*.diyifanwen.com/* -// @include *://*.mbalib.com/* -// @include *://*.cnitpm.com/* -// @include *://bbs.mihoyo.com/ys/obc/* -// @include *://*.ruiwen.com/* -// @include *://www.uemeds.cn/* -// @include *://www.oh100.com/* -// @include *://www.aiyuke.com/news/* -// @include *://www.fwsir.com/* -// @include *://www.wenxm.cn/* -// @include *://www.unjs.com/* -// @include *://www.ahsrst.cn/* -// @include *://*.yjbys.com/* -// @include *://*.qidian.com/* -// @include *://*.zongheng.com/* -// @include *://*.17k.com/* -// @include *://*.ciweimao.com/* -// @include *://book.qq.com/* -// @include *://*.360doc.com/content/* -// @include *://*.850500.com/news/* -// @include *://utaten.com/lyric/* -// @include *://*.jianbiaoku.com/* -// @include *://*.kt250.com/* -// @include *://www.kejudati.com/* -// @include *://*.xiaohongshu.com/discovery/* -// @supportURL https://github.com/WindrunnerMax/TKScript/issues -// @license GPL License -// @installURL https://github.com/WindrunnerMax/TKScript -// @updateURL https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/meta/copy.meta.js -// @downloadURL https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/copy.js -// @run-at document-end -// @require https://cdn.bootcss.com/jquery/2.1.2/jquery.min.js -// @require https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js -// @connect res1.doc88.com -// @grant unsafeWindow -// @grant GM_xmlhttpRequest -// ==/UserScript== -(function () { - 'use strict'; - - function styleInject(css, ref) { - if ( ref === void 0 ) ref = {}; - var insertAt = ref.insertAt; - - if (!css || typeof document === 'undefined') { return; } - - var head = document.head || document.getElementsByTagName('head')[0]; - var style = document.createElement('style'); - style.type = 'text/css'; - - if (insertAt === 'top') { - if (head.firstChild) { - head.insertBefore(style, head.firstChild); - } else { - head.appendChild(style); - } - } else { - head.appendChild(style); - } - - if (style.styleSheet) { - style.styleSheet.cssText = css; - } else { - style.appendChild(document.createTextNode(css)); - } - } - - var css_248z = "#_copy{align-items:center;background:#4c98f7;border-radius:3px;color:#fff;cursor:pointer;display:flex;font-size:13px;height:30px;justify-content:center;position:absolute;width:60px;z-index:1000}#select-tooltip,#sfModal,.modal-backdrop,div[id^=reader-helper]{display:none!important}.modal-open{overflow:auto!important}._sf_adjust_body{padding-right:0!important}"; - styleInject(css_248z); - - var initEvent = function ($, websiteConfig) { - $("body").on("mousedown", function () { return $("#_copy").remove(); }); - if (websiteConfig.initCopyEvent) { - document.oncopy = function (e) { return e.stopPropagation(); }; - document.body.oncopy = function (e) { return e.stopPropagation(); }; - $("body").on("copy", function (e) { - e.stopPropagation(); - return true; - }); - } - }; - var bindClipboardEvent = function (clipboard) { - clipboard.on("success", function (e) { - $("#_copy").html("复制成功"); - setTimeout(function () { return $("#_copy").fadeOut(1000); }, 1000); - e.clearSelection(); - }); - clipboard.on("error", function (e) { - $("#_copy").html("复制失败"); - setTimeout(function () { return $("#_copy").fadeOut(1000); }, 1000); - e.clearSelection(); - }); - }; - - var path = ""; - var website$n = { - regexp: /.*doc88\.com\/.+/, - init: function ($) { - // GM_xmlhttpRequest({ - // method: "GET", - // url: "https://res.doc88.com/assets/js/v2.js", - // onload: function(response) { - // var view = new Function("var view = " + response.responseText.replace("eval", "") + "; return view;"); - // path = //.exec(view())[1]; - // } - // }) - $("body").append(""); - GM_xmlhttpRequest({ - method: "GET", - url: "https://res1.doc88.com/resources/js/modules/main-v2.min.js?v=2.90", - onload: function (response) { - path = /'\+([\S]*?)\+"<\/textarea>/.exec(response.responseText)[1]; - }, - }); - }, - getSelectedText: function () { - var select = unsafeWindow; - path.split(".").forEach(function (v) { - select = select[v]; - }); - return select; - }, - }; - - var website$m = { - regexp: /.*segmentfault\.com\/.+/, - init: function ($) { - $("body").addClass("_sf_adjust_body"); - $("body").on("click", function () { - $("body").css("padding-right", 0); - }); - }, - }; - - var stopJQueryPropagation = function (event) { - event.stopPropagation(); - // event.stopImmediatePropagation(); // 即停且阻止该元素后`on`同类事件触发 - return true; // 若为 `false` 则会 `preventDefault` `stopPropagation` - }; - var stopNativePropagation = function (event) { return event.stopPropagation(); }; - var utils = { - hideButton: function ($) { - $("body").append(""); - }, - showButton: function ($) { - $("#copy-hide").remove(); - }, - removeAttributes: function ($, selector, attr) { - if (attr === void 0) { attr = []; } - var dom = $(selector); - attr.forEach(function (item) { return dom.removeAttr(item); }); - }, - enableUserSelect: function ($, selector, inline) { - if (inline === void 0) { inline = false; } - var cur = $(selector); - if (inline) { - cur.css("user-select", "auto"); - cur.css("-webkit-user-select", "auto"); - } - else { - var template = "\n \n "); - $("body").append(template.replace(/\s*/, " ")); - } - }, - enableOnSelectStart: function ($, selector) { - $(selector).on("selectstart", stopJQueryPropagation); - }, - enableOnContextMenu: function ($, selector) { - $(selector).on("contextmenu", stopJQueryPropagation); - }, - enableOnCopy: function ($, selector) { - $(selector).on("copy", stopJQueryPropagation); - }, - enableOnKeyDown: function ($, selector) { - $(selector).on("keydown", function (e) { - if (e.key === "c" && e.ctrlKey) - return stopJQueryPropagation(e); - }); - }, - enableOnSelectStartByCapture: function () { - document.addEventListener("selectstart", stopNativePropagation, true); - }, - enableOnContextMenuByCapture: function () { - document.addEventListener("contextmenu", stopNativePropagation, true); - }, - enableOnCopyByCapture: function () { - document.addEventListener("copy", stopNativePropagation, true); - }, - enableOnKeyDownByCapture: function () { - document.addEventListener("keydown", stopNativePropagation, true); - }, - }; - - var website$l = { - regexp: /.*wk\.baidu\.com\/view\/.+/, - init: function ($) { - utils.hideButton($); - $(window).on("load", function () { - $(".sf-edu-wenku-vw-container").attr("style", ""); - $(".sfa-body").on("selectstart", function (e) { - e.stopPropagation(); - return true; - }); - }); - }, - }; - - var website$k = { - regexp: /.*zhihu\.com\/.*/, - init: function ($) { - utils.hideButton($); - }, - }; - - var website$j = { - regexp: /.*zhihu\.com\/pub\/reader\/.+/, - init: function ($) { - setTimeout(utils.showButton, 500, $); - }, - }; - - var website$i = { - regexp: /.*30edu\.com\.cn\/.+/, - init: function ($) { - window.onload = function () { - var iframes = document.getElementsByTagName("iframe"); - if (iframes.length === 2) { - var body = $(iframes[1].contentWindow.document.querySelector("body")); - body.attr("oncopy", ""); - body.attr("oncontextmenu", ""); - body.attr("onselectstart", ""); - } - }; - }, - }; - - var restrictCopying = true; - var website$h = { - regexp: /.*docs\.qq\.com\/.+/, - config: { - initCopyEvent: false, - }, - init: function ($) { - window.onload = function () { - if (unsafeWindow.pad) { - if (unsafeWindow.pad.editor._docEnv.copyable === true) { - // 不限制复制 - restrictCopying = false; - utils.hideButton($); - } - else { - unsafeWindow.pad.editor._docEnv.copyable = true; - } - } - else { - restrictCopying = false; - utils.hideButton($); - } - }; - }, - getSelectedText: function () { - if (!restrictCopying) - return ""; - if (unsafeWindow.pad) { - unsafeWindow.pad.editor._docEnv.copyable = true; - unsafeWindow.pad.editor.clipboardManager.copy(); - return unsafeWindow.pad.editor.clipboardManager.customClipboard.plain; - } - return ""; - }, - }; - - var website$g = { - regexp: new RegExp(".+://boke112.com/post/.+"), - init: function ($) { - $("body").on("click", function () { return false; }); - var template = "\n \n "; - $("body").append(template.replace(/\s*/, " ")); - }, - }; - - var website$f = { - regexp: /diyifanwen/, - init: function () { - setTimeout(function () { - document.oncopy = function (e) { return e.stopPropagation(); }; - document.body.oncopy = function (e) { return e.stopPropagation(); }; - }, 1000); - }, - }; - - var website$e = { - regexp: /mbalib/, - init: function ($) { - window.onload = function () { - var container = $("#fullScreenContainer"); - container.attr("oncopy", ""); - container.attr("oncontextmenu", ""); - container.attr("onselectstart", ""); - }; - }, - }; - - var website$d = { - regexp: /cnitpm/, - init: function ($) { - utils.hideButton($); - window.onload = function () { - var container = $("body"); - container.attr("oncopy", ""); - container.attr("oncontextmenu", ""); - container.attr("onselectstart", ""); - }; - }, - }; - - var website$c = { - regexp: new RegExp(".+bbs.mihoyo.com/ys/obc.+"), - init: function ($) { - utils.hideButton($); - $(".detail__content").on("copy", function (e) { return e.stopPropagation(); }); - var template = "\n \n "; - $("body").append(template.replace(/\s*/, " ")); - }, - }; - - var website$b = { - regexp: new RegExp(".+www.uemeds.cn/.+"), - init: function ($) { - utils.hideButton($); - var template = "\n \n "; - $("body").append(template.replace(/\s*/, " ")); - }, - }; - - var website$a = { - regexp: new RegExp(".+aiyuke.com/news/.+"), - init: function ($) { - utils.hideButton($); - $(".news_content_body").css("user-select", "auto"); - }, - }; - - var website$9 = { - regexp: new RegExp("qidian"), - init: function ($) { - utils.hideButton($); - utils.enableUserSelect($, "body"); - utils.enableOnCopy($, ".main-read-container"); - utils.enableOnContextMenu($, ".main-read-container"); - }, - }; - - var website$8 = { - regexp: new RegExp("zongheng"), - init: function ($) { - utils.removeAttributes($, ".reader_box", ["style", "unselectable", "onselectstart"]); - utils.removeAttributes($, ".reader_main", ["style", "unselectable", "onselectstart"]); - utils.hideButton($); - utils.enableOnKeyDown($, "body"); - utils.enableUserSelect($, ".reader_box .content p"); - utils.enableOnCopy($, ".content"); - utils.enableOnContextMenu($, "body"); - utils.enableOnSelectStart($, ".content"); - }, - }; - - var website$7 = { - regexp: new RegExp("17k"), - init: function ($) { - utils.hideButton($); - utils.enableOnCopy($, ".readAreaBox .p"); - }, - }; - - var website$6 = { - regexp: new RegExp("ciweimao"), - init: function ($) { - utils.hideButton($); - utils.enableUserSelect($, "#J_BookRead"); - utils.enableOnCopy($, "#J_BookCnt"); - utils.enableOnContextMenu($, "body"); - utils.enableOnSelectStart($, "#J_BookCnt"); - }, - }; - - var website$5 = { - regexp: new RegExp("book\\.qq"), - init: function ($) { - utils.hideButton($); - utils.enableUserSelect($, "body"); - utils.enableOnCopy($, "body"); - utils.enableOnContextMenu($, "body"); - utils.enableOnSelectStart($, "body"); - }, - }; - - var website$4 = { - regexp: new RegExp("utaten"), - init: function ($) { - utils.removeAttributes($, "body", ["oncontextmenu", "onselectstart"]); - utils.hideButton($); - utils.enableUserSelect($, ".lyricBody", true); - }, - }; - - var website$3 = { - regexp: new RegExp("wenku.baidu.com/view/.*"), - init: function ($) { - utils.enableOnKeyDownByCapture(); - $("head").append(""); - }, - getSelectedText: function () { - if (window.getSelection && window.getSelection().toString()) { - return window.getSelection().toString(); - } - var result = /查看全部包含“([\s\S]*?)”的文档/.exec(document.body.innerHTML); - if (result) - return result[1]; - return ""; - }, - }; - - var website$2 = { - regexp: new RegExp("xiaohongshu"), - init: function ($) { - utils.hideButton($); - utils.enableUserSelect($, "*"); - utils.enableOnKeyDownByCapture(); - }, - }; - - var website$1 = { - regexp: new RegExp("leetcode"), - init: function ($) { - utils.hideButton($); - utils.enableOnCopyByCapture(); - }, - }; - - var website = { - regexp: new RegExp([ - "commandlinux", - "cnki", - "ruiwen", - "oh100", - "fwsir", - "wenxm", - "unjs", - "ahsrst", - "yjbys", - "360doc", - "850500", - "jianbiaoku", - "kt250", - "kejudati", - ].join("|")), - init: function ($) { - utils.hideButton($); - }, - }; - - var websites = [ - website$n, - website$m, - website$l, - website$k, - website$j, - website$i, - website$h, - website$g, - website$f, - website$e, - website$d, - website$c, - website$b, - website$a, - website$9, - website$8, - website$7, - website$6, - website$5, - website$4, - website$3, - website$2, - website$1, - website, - ]; - - var siteGetSelectedText = null; - var initWebsite = function ($) { - var websiteConfig = { - initCopyEvent: true, - }; - var mather = function (regex, website) { - if (regex.test(window.location.href)) { - website.init($); - if (website.config) - websiteConfig = Object.assign(websiteConfig, website.config); - if (website.getSelectedText) - siteGetSelectedText = website.getSelectedText; - return true; - } - return false; - }; - websites.some(function (website) { return mather(website.regexp, website); }); - return websiteConfig; - }; - var getSelectedText = function () { - if (siteGetSelectedText) - return siteGetSelectedText(); - if (window.getSelection) - return window.getSelection().toString(); - if (document.getSelection) - return document.getSelection().toString(); - if (document.selection) - return document.selection.createRange().text; - return ""; - }; - - (function () { - var $ = window.$; - var ClipboardJS = window.ClipboardJS; // https://clipboardjs.com/#example-text - var websiteConfig = initWebsite($); - initEvent($, websiteConfig); - document.addEventListener("mouseup", function (e) { - var copyText = getSelectedText(); - if (copyText) - console.log(copyText); - else - return ""; - $("#_copy").remove(); - var template = "\n
\u590D\u5236
\n "); - $("body").append(template); - $("#_copy").on("mousedown", function (event) { return event.stopPropagation(); }); - $("#_copy").on("mouseup", function (event) { return event.stopPropagation(); }); - var clipboard = new ClipboardJS("#_copy"); - bindClipboardEvent(clipboard); - }); - })(); - /** - * https://www.huiyingwu.com/1718/ - */ - -})(); diff --git a/dist/meta/copy.meta.js b/dist/meta/copy.meta.js deleted file mode 100644 index 42dc737..0000000 --- a/dist/meta/copy.meta.js +++ /dev/null @@ -1,60 +0,0 @@ -// ==UserScript== -// @name 🔥🔥🔥文本选中复制🔥🔥🔥 -// @description 解除网站不允许复制的限制,文本选中后点击复制按钮即可复制,主要用于 百度文库 道客巴巴 无忧考网 学习啦 蓬勃范文 思否社区 力扣 知乎 语雀 等 -// @namespace https://github.com/WindrunnerMax/TKScript -// @version 3.1.0 -// @author Czy -// @include *://wenku.baidu.com/view/* -// @include *://wenku.baidu.com/share/* -// @include *://wenku.baidu.com/link* -// @include *://www.51test.net/show/* -// @include *://www.xuexi.la/* -// @include *://www.xuexila.com/* -// @include *://www.cspengbo.com/* -// @include *://*.doc88.com/* -// @include *://segmentfault.com/* -// @include *://wk.baidu.com/view/* -// @include *://leetcode-cn.com/problems/* -// @include *://www.zhihu.com/* -// @include *://z.30edu.com.cn/* -// @include *://docs.qq.com/doc/* -// @include *://boke112.com/post/* -// @include *://www.yuque.com/* -// @include *://www.commandlinux.com/* -// @include *://*.diyifanwen.com/* -// @include *://*.mbalib.com/* -// @include *://*.cnitpm.com/* -// @include *://bbs.mihoyo.com/ys/obc/* -// @include *://*.ruiwen.com/* -// @include *://www.uemeds.cn/* -// @include *://www.oh100.com/* -// @include *://www.aiyuke.com/news/* -// @include *://www.fwsir.com/* -// @include *://www.wenxm.cn/* -// @include *://www.unjs.com/* -// @include *://www.ahsrst.cn/* -// @include *://*.yjbys.com/* -// @include *://*.qidian.com/* -// @include *://*.zongheng.com/* -// @include *://*.17k.com/* -// @include *://*.ciweimao.com/* -// @include *://book.qq.com/* -// @include *://*.360doc.com/content/* -// @include *://*.850500.com/news/* -// @include *://utaten.com/lyric/* -// @include *://*.jianbiaoku.com/* -// @include *://*.kt250.com/* -// @include *://www.kejudati.com/* -// @include *://*.xiaohongshu.com/discovery/* -// @supportURL https://github.com/WindrunnerMax/TKScript/issues -// @license GPL License -// @installURL https://github.com/WindrunnerMax/TKScript -// @updateURL https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/meta/copy.meta.js -// @downloadURL https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/copy.js -// @run-at document-end -// @require https://cdn.bootcss.com/jquery/2.1.2/jquery.min.js -// @require https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js -// @connect res1.doc88.com -// @grant unsafeWindow -// @grant GM_xmlhttpRequest -// ==/UserScript== diff --git a/dist/meta/site-director.meta.js b/dist/meta/site-director.meta.js deleted file mode 100644 index 106ef53..0000000 --- a/dist/meta/site-director.meta.js +++ /dev/null @@ -1,17 +0,0 @@ -// ==UserScript== -// @name 🔥🔥🔥跳转链接直达🔥🔥🔥 -// @description 跳转链接直达,去掉确定跳转链接页面,用于谷歌、知乎、CSDN -// @namespace https://github.com/WindrunnerMax/TKScript -// @version 1.1.0 -// @author Czy -// @include *://*google.com/* -// @include *://*zhihu.com/* -// @include *://*csdn.net/* -// @license MIT License -// @installURL https://github.com/WindrunnerMax/TKScript -// @updateURL https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/meta/site-director.meta.js -// @downloadURL https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/site-director.js -// @require https://cdn.bootcss.com/jquery/2.1.2/jquery.min.js -// @grant unsafeWindow -// @grant GM_xmlhttpRequest -// ==/UserScript== diff --git a/dist/site-director.js b/dist/site-director.js deleted file mode 100644 index 4bb9cc1..0000000 --- a/dist/site-director.js +++ /dev/null @@ -1,118 +0,0 @@ -// ==UserScript== -// @name 🔥🔥🔥跳转链接直达🔥🔥🔥 -// @description 跳转链接直达,去掉确定跳转链接页面,用于谷歌、知乎、CSDN -// @namespace https://github.com/WindrunnerMax/TKScript -// @version 1.1.0 -// @author Czy -// @include *://*google.com/* -// @include *://*zhihu.com/* -// @include *://*csdn.net/* -// @license MIT License -// @installURL https://github.com/WindrunnerMax/TKScript -// @updateURL https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/meta/site-director.meta.js -// @downloadURL https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/site-director.js -// @require https://cdn.bootcss.com/jquery/2.1.2/jquery.min.js -// @grant unsafeWindow -// @grant GM_xmlhttpRequest -// ==/UserScript== -(function () { - 'use strict'; - - function styleInject(css, ref) { - if ( ref === void 0 ) ref = {}; - var insertAt = ref.insertAt; - - if (!css || typeof document === 'undefined') { return; } - - var head = document.head || document.getElementsByTagName('head')[0]; - var style = document.createElement('style'); - style.type = 'text/css'; - - if (insertAt === 'top') { - if (head.firstChild) { - head.insertBefore(style, head.firstChild); - } else { - head.appendChild(style); - } - } else { - head.appendChild(style); - } - - if (style.styleSheet) { - style.styleSheet.cssText = css; - } else { - style.appendChild(document.createTextNode(css)); - } - } - - var css_248z = ""; - styleInject(css_248z); - - var website$2 = { - regexp: /google/, - init: function ($) { - $("#res a").attr("target", "_blank"); - }, - }; - - var utils = { - directByBlockEvent: function (event) { - event.stopPropagation(); - event.preventDefault(); - }, - directByCapture: function (el) { - var _this = this; - el.addEventListener("click", function (e) { return _this.directByBlockEvent(e); }); - }, - }; - - var website$1 = { - regexp: /zhihu/, - init: function () { - document.body.addEventListener("click", function (e) { - var cur = e.target; - var regexp = /.*link.zhihu.com\/\?target=(.*)/; - for (var i = 0; i < 5; ++i) { - if (!cur) - break; - if (cur.nodeName === "A") { - if (regexp.test(cur.href)) { - var url = decodeURIComponent(/.*link.zhihu.com\/\?target=(.*)/.exec(cur.href)[1]); - console.log(url); - window.open(url); - utils.directByBlockEvent(e); - } - break; - } - cur = cur.parentNode; - } - }, true); - }, - }; - - var website = { - regexp: /csdn/, - init: function ($) { - $("#article_content a:not([name])").each(function (i, v) { - var el = v; - var a = document.createElement("a"); - a.innerHTML = "").concat(el.innerText, ""); - v.replaceWith(a); - }); - }, - }; - - var websites = [website$2, website$1, website]; - - (function ($) { - var mather = function (regex, website) { - if (regex.test(window.location.href)) { - website.init($); - return true; - } - return false; - }; - websites.some(function (website) { return mather(website.regexp, website); }); - })($); - -})(); diff --git a/meta/blank.js b/meta/blank.js deleted file mode 100644 index e69de29..0000000 diff --git a/meta/blank.ts b/meta/blank.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/meta/blank.ts @@ -0,0 +1 @@ +export {}; diff --git a/meta/debug.ts b/meta/debug.ts new file mode 100644 index 0000000..d488f35 --- /dev/null +++ b/meta/debug.ts @@ -0,0 +1,13 @@ +// ==UserScript== +// @name DEBUG +// @description DEBUG MODE +// @namespace https://github.com/WindrunnerMax/TKScript +// @version 1.0.0 +// @author Czy +// @match http://*/* +// @match https://*/* +// @license GPL License +// @run-at document-end +// @grant GM_notification +// @require file:///Users/czy/Project/TKScript/dist/copy-currency.user.js +// ==/UserScript== diff --git a/package.json b/package.json index 1cce7d6..9033772 100644 --- a/package.json +++ b/package.json @@ -1,45 +1,45 @@ { - "name": "TKScript", + "name": "script", "version": "1.0.0", - "description": "油猴插件", - "main": "dist/index.js", "repository": { "type": "git", "url": "git://github.com/WindrunnerMax/TKScript" }, "scripts": { - "build": "rollup -c" + "dev": "npm run dev:scripts", + "build": "npm run build:scripts", + "dev:scripts": "rollup -c --watch", + "build:scripts": "./publish-scripts.sh", + "dev:force-copy": "pnpm --filter force-copy run dev", + "build:force-copy": "pnpm --filter force-copy run build", + "dev:force-copy:gecko": "pnpm --filter force-copy run dev:gecko", + "build:force-copy:gecko": "pnpm --filter force-copy run build:gecko", + "lint:es": "eslint --fix --ext .js,.jsx,.ts,.tsx --ignore-path .gitignore .", + "lint:ts": "pnpm --filter '*' run lint:ts" }, "author": "Czy", "license": "MIT", "devDependencies": { - "@babel/core": "^7.15.5", - "@babel/preset-env": "^7.15.4", - "@babel/preset-typescript": "^7.15.0", - "@rollup/plugin-commonjs": "^20.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^13.0.4", - "@types/jquery": "^3.5.8", - "@typescript-eslint/eslint-plugin": "^4.30.0", - "@typescript-eslint/parser": "^4.30.0", - "babel-core": "^7.0.0-bridge.0", - "babel-jest": "^23.4.2", - "clipboard": "^2.0.8", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-jest": "^24.4.0", - "eslint-plugin-prettier": "^3.4.0", - "jest": "^27.1.0", - "jquery": "^3.6.0", - "jsdom": "^17.0.0", - "postcss": "^8.3.11", - "prettier": "^2.3.2", - "rollup": "^2.18.2", - "rollup-plugin-babel": "^4.4.0", - "rollup-plugin-postcss": "^4.0.1", - "rollup-plugin-typescript2": "^0.30.0", - "rollup-plugin-userscript-metablock": "^0.3.1", - "ts-jest": "^27.0.5", - "typescript": "^4.4.2" + "@rollup/plugin-commonjs": "20.0.0", + "@rollup/plugin-node-resolve": "13.0.4", + "@rollup/plugin-replace": "5.0.2", + "@types/node": "20.8.0", + "@typescript-eslint/eslint-plugin": "5.4.0", + "@typescript-eslint/parser": "5.4.0", + "cross-env": "7.0.3", + "esbuild": "0.15.10", + "eslint": "7.32.0", + "eslint-config-prettier": "8.3.0", + "eslint-plugin-prettier": "3.3.1", + "eslint-plugin-react": "7.27.0", + "eslint-plugin-react-hooks": "4.3.0", + "postcss": "8.3.11", + "prettier": "2.3.2", + "rollup": "2.56.3", + "rollup-plugin-esbuild": "4.10.1", + "rollup-plugin-postcss": "4.0.1", + "rollup-plugin-userscript-metablock": "0.3.1", + "tslib": "2.6.2", + "typescript": "4.6.2" } } diff --git a/packages/captcha/README.md b/packages/captcha/README.md new file mode 100644 index 0000000..a1dc1fe --- /dev/null +++ b/packages/captcha/README.md @@ -0,0 +1,3 @@ +# 强智教务系统验证码识别 + +自动填写强智的验证码,请自行处理`@match`到需要匹配的网站。 diff --git a/packages/captcha/captcha.user.js b/packages/captcha/captcha.user.js new file mode 100644 index 0000000..dc9a049 --- /dev/null +++ b/packages/captcha/captcha.user.js @@ -0,0 +1,169 @@ +// ==UserScript== +// @name SWVerifyCode +// @namespace https://github.com/WindrunnerMax/TKScript +// @version 1.1.1 +// @description try to take over the world! +// @author Czy +// @match *://jwgl.sdust.edu.cn/* +// @grant none +// ==/UserScript== + +/** + * 配置账号密码信息(选填) + */ +const username = ""; //账号 +const password = ""; //密码 +const autologin = false; //自动登录 + +const height = 22; +const width = 62; +const rgbThres = 150; +const charMap = { + 1: "111100111110000111110000111111100111111100111111100111111100111111100111111100111111100111110000001110000001", + 2: "100000111000000011111111001111111001111111001111110011111000111110011111100111111001111111000000001000000001", + 3: "100000111000000011111110001111111001111110011110000111110000011111110001111111001111110001100000011100000111", + b: "001111111001111111001111111001000011000000001000111000001111100001111100001111100000111000000000001001000011", + c: "111111111111111111111111111110000011100000011000111111001111111001111111001111111000111111100000011110000011", + m: "111111111111111111111111111001000011000000000000111000001111001001111001001111001001111001001111001001111001", + n: "111111111111111111111111111001100001001000000000011100000111100001111100001111100001111100001111100001111100", + v: "111111111111111111111111111111111011001110011001110011001110011100100111100100111100100111110001111110001111", + x: "111111111111111111111111111001110011001110011100100111110001111110001111110001111100100111001110011001110011", + z: "111111111111111111111111111000000011000000011111100111111001111110011111100111111001111111000000011000000011", +}; + +function binaryImage(ctx) { + const imageData = ctx.getImageData(0, 0, width, height).data; + const imgArr = []; + for (let x = 0; x < width; ++x) { + for (let y = 0; y < height; ++y) { + if (!imgArr[y]) imgArr[y] = []; + if (x === 0 || y === 0 || x === width - 1 || y === height - 1) { + imgArr[y][x] = 1; + continue; + } + const i = (y * width + x) * 4; + if (imageData[i] < rgbThres && imageData[i + 1] < rgbThres && imageData[i + 2] < rgbThres) { + imgArr[y][x] = 0; + } else { + imgArr[y][x] = 1; + } + } + } + return imgArr; +} + +function removeByLine(imgArr) { + const xCount = imgArr[0].length; + const yCount = imgArr.length; + for (let i = 1; i < yCount - 1; ++i) { + for (let k = 1; k < xCount - 1; ++k) { + if (imgArr[i][k] === 0) { + const countOne = imgArr[i][k - 1] + imgArr[i][k + 1] + imgArr[i - 1][k] + imgArr[i + 1][k]; + if (countOne > 2) imgArr[i][k] = 1; + } + } + } + return imgArr; +} + +function cutImg(imgArr, arrX, arrY, n) { + const imgArrArr = []; + for (let i = 0; i < n; ++i) { + const unitImg = []; + for (let j = arrY[i][0]; j < arrY[i][1]; ++j) { + if (!unitImg[j]) unitImg[j - arrY[i][0]] = []; + for (let k = arrX[i][0]; k < arrX[i][1]; ++k) { + unitImg[j - arrY[i][0]][k - arrX[i][0]] = imgArr[j][k]; + } + } + imgArrArr.push(unitImg); + } + return imgArrArr; +} + +function getString(imgArr) { + let s = ""; + imgArr.forEach(vx => { + vx.forEach(vy => { + s += vy; + }); + }); + return s; +} + +function comparedText(s1, s2) { + let percent = 0; + const n = s1.length; + for (let i = 0; i < n; ++i) s1[i] === s2[i] ? ++percent : ""; + return percent; +} + +function matchCode(imgArrArr) { + let record = ""; + imgArrArr.forEach(imgArr => { + let maxMatch = 0; + let tempRecord = ""; + for (const char in charMap) { + const percent = comparedText(getString(imgArr), charMap[char]); + if (percent > maxMatch) { + maxMatch = percent; + tempRecord = char; + } + } + record += tempRecord; + }); + return record; +} + +function showImg(imgArr) { + let s = ""; + imgArr.forEach(vx => { + vx.forEach(vy => { + s += vy; + }); + s += "\n"; + }); + console.log(s); +} + +function main() { + const img = document.getElementById("SafeCodeImg"); + const canvas = document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + const ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0); + let imgArr = binaryImage(ctx); + imgArr = removeByLine(imgArr); + const imgArrArr = cutImg( + imgArr, + [ + [4, 13], + [14, 23], + [24, 33], + [34, 43], + ], + [ + [4, 16], + [4, 16], + [4, 16], + [4, 16], + ], + 4 + ); + showImg(imgArr); + const result = matchCode(imgArrArr); + console.log("识别为:", result); + document.getElementById("RANDOMCODE").value = result; + document.getElementById("userAccount").value = username; + document.getElementById("userPassword").value = password; + if (autologin) document.getElementById("btnSubmit").click(); +} + +(function () { + "use strict"; + const img = document.getElementById("SafeCodeImg"); + if (!img) return void 0; + img.onload = main; + img.complete && main(); +})(); diff --git a/packages/captcha/package.json b/packages/captcha/package.json new file mode 100644 index 0000000..64f91a4 --- /dev/null +++ b/packages/captcha/package.json @@ -0,0 +1,10 @@ +{ + "name": "captcha", + "version": "1.0.0", + "author": "Czy", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/WindrunnerMax/TKScript" + } +} diff --git a/packages/completion/README.md b/packages/completion/README.md new file mode 100644 index 0000000..27c589d --- /dev/null +++ b/packages/completion/README.md @@ -0,0 +1,3 @@ +# 阿里矢量图标库添加`HTTP`按钮 + +阿里矢量图标库添加`HTTP`按钮,简化手动填写。 diff --git a/packages/completion/completion.user.js b/packages/completion/completion.user.js new file mode 100644 index 0000000..308897f --- /dev/null +++ b/packages/completion/completion.user.js @@ -0,0 +1,42 @@ +// ==UserScript== +// @name 阿里图标库CDN添加HTTP按钮 +// @namespace https://github.com/WindrunnerMax/TKScript +// @version 1.0 +// @description try to take over the world! +// @author You +// @match https://www.iconfont.cn/manage/*manage_type=myprojects* +// @grant none +// ==/UserScript== + +function addProtocol() { + const preTags = document.getElementsByTagName("pre"); + const n = preTags.length; + for (let i = 0; i < n; ++i) + preTags[i].innerText = preTags[i].innerText.replace( + /\/\/at.alicdn.com/g, + "https://at.alicdn.com" + ); +} + +(function () { + "use strict"; + console.log(document.getElementsByClassName("block-bar")); + const btn = document.createElement("div"); + btn.style.position = "fixed"; + btn.style.top = "35%"; + btn.style.left = "10px"; + btn.style.background = "#4C98F7"; + btn.style.color = "#fff"; + btn.style.height = "50px"; + btn.style.width = "50px"; + btn.style.cursor = "pointer"; + btn.style["line-height"] = "50px"; + btn.style["text-align"] = "center"; + btn.style["border-radius"] = "50px"; + btn.innerText = "HTTP"; + const body = document.getElementsByTagName("body")[0]; + btn.onclick = function () { + addProtocol(); + }; + body.appendChild(btn); +})(); diff --git a/packages/completion/package.json b/packages/completion/package.json new file mode 100644 index 0000000..63391df --- /dev/null +++ b/packages/completion/package.json @@ -0,0 +1,10 @@ +{ + "name": "completion", + "version": "1.0.0", + "author": "Czy", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/WindrunnerMax/TKScript" + } +} diff --git a/packages/copy-currency/README.md b/packages/copy-currency/README.md new file mode 100644 index 0000000..960850f --- /dev/null +++ b/packages/copy-currency/README.md @@ -0,0 +1,8 @@ +# 文本选中复制-通用版 +文本选中复制通用版本,适用于大多数网站。 +由于会匹配所有网站,为了减少对于正常网站的干扰,在打开网站之后,**需要自行在网站左下角找到淡蓝色块,鼠标悬浮之后,点击启动 解除复制限制 按钮**。 +某度文库、道客某某等网站需要特殊处理,不能通用处理,请移步 文本选中复制 脚本。 + +![image](https://greasyfork.org/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBK2RvQVE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--1d03b44d54652721f61a2cc53354bedcc3c575cd/A36B8EFD-0044-4FF1-BBAF-F0C63B565747.png?locale=zh-CN) + + diff --git a/packages/copy-currency/meta.json b/packages/copy-currency/meta.json new file mode 100644 index 0000000..ecbc94b --- /dev/null +++ b/packages/copy-currency/meta.json @@ -0,0 +1,21 @@ +{ + "name": { + "default": "🔥🔥🔥文本选中复制(通用)🔥🔥🔥", + "en": "Text Copy Universal", + "zh": "🔥🔥🔥文本选中复制(通用)🔥🔥🔥" + }, + "namespace": "https://github.com/WindrunnerMax/TKScript", + "version": "1.1.3", + "description": { + "default": "文本选中复制通用版本,适用于大多数网站", + "en": "Text copy general version, suitable for most websites.", + "zh": "文本选中复制通用版本,适用于大多数网站" + }, + "author": "Czy", + "match": ["http://*/*", "https://*/*"], + "supportURL": "https://github.com/WindrunnerMax/TKScript/issues", + "license": "GPL License", + "installURL": "https://github.com/WindrunnerMax/TKScript", + "run-at": "document-end", + "grant": ["GM_registerMenuCommand", "GM_unregisterMenuCommand", "GM_notification"] +} diff --git a/packages/copy-currency/package.json b/packages/copy-currency/package.json new file mode 100644 index 0000000..ba3eb60 --- /dev/null +++ b/packages/copy-currency/package.json @@ -0,0 +1,14 @@ +{ + "name": "copy-currency", + "version": "1.0.0", + "author": "Czy", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/WindrunnerMax/TKScript" + }, + "sideEffects": false, + "files": [ + "src" + ] +} diff --git a/packages/copy-currency/src/global.d.ts b/packages/copy-currency/src/global.d.ts new file mode 100644 index 0000000..eb237b6 --- /dev/null +++ b/packages/copy-currency/src/global.d.ts @@ -0,0 +1,4 @@ +declare const unsafeWindow = any; + +declare function GM_registerMenuCommand(name: string, fn: () => void, index?: string): number; +declare function GM_unregisterMenuCommand(id: number): void; diff --git a/packages/copy-currency/src/index.css b/packages/copy-currency/src/index.css new file mode 100644 index 0000000..dd49a88 --- /dev/null +++ b/packages/copy-currency/src/index.css @@ -0,0 +1,41 @@ +.__copy-currency-container{ + position: fixed; + left: -150px; + bottom: 0px; + width: 150px; + display: flex; + flex-direction: column; + border-radius: 3px; + background-color: #4C98F7; + transition: all .3s; + z-index: 9999999999; +} + +.__copy-currency-container::before{ + content: ""; + position: absolute; + right: -6px; + top: calc(50% - 10px); + width: 20px; + height: 20px; + border-radius: 20px; + background-color: #4C98F7; + cursor: pointer; +} + +.__copy-currency-container:hover{ + left: 0; +} + +.__copy-currency-container > .__copy-currency-button{ + font-size: 12px !important; + margin: 5px; + cursor: pointer; + color: #fff !important; + border: 1px solid #fff; + padding: 5px 3px 5px 4px; + user-select: none; + border-radius: 3px; + z-index: 9999999999; + text-align: center; +} \ No newline at end of file diff --git a/packages/copy-currency/src/index.ts b/packages/copy-currency/src/index.ts new file mode 100644 index 0000000..9f699c1 --- /dev/null +++ b/packages/copy-currency/src/index.ts @@ -0,0 +1,46 @@ +import type { ControllerItem } from "./register"; +import { BUTTON_STATUS, register, STORAGE_KEY_PREFIX } from "./register"; +import { styles } from "./utils"; + +const stopNativePropagation = (event: Event) => event.stopPropagation(); +const CONTROLLER_MAP: ControllerItem[] = [ + { + status: BUTTON_STATUS.CLOSE, + storageKey: "selectstart-and-copy", + openName: "✅ 启动解除复制限制", + closeName: "❌ 关闭解除复制限制", + openFunction: () => { + window.addEventListener("selectstart", stopNativePropagation, true); + window.addEventListener("copy", stopNativePropagation, true); + styles.insertCSS( + STORAGE_KEY_PREFIX + "selectstart-and-copy", + "*{user-select: auto !important;-webkit-user-select: auto !important;}" + ); + }, + closeFunction: () => { + window.removeEventListener("selectstart", stopNativePropagation, true); + window.removeEventListener("copy", stopNativePropagation, true); + styles.removeCSS(STORAGE_KEY_PREFIX + "selectstart-and-copy"); + }, + }, + { + status: BUTTON_STATUS.CLOSE, + storageKey: "contextmenu", + openName: "✅ 启动解除右键限制", + closeName: "❌ 关闭解除右键限制", + openFunction: () => window.addEventListener("contextmenu", stopNativePropagation, true), + closeFunction: () => window.removeEventListener("contextmenu", stopNativePropagation, true), + }, + { + status: BUTTON_STATUS.CLOSE, + storageKey: "keydown", + openName: "✅ 启动解除键盘限制", + closeName: "❌ 关闭解除键盘限制", + openFunction: () => window.addEventListener("keydown", stopNativePropagation, true), + closeFunction: () => window.removeEventListener("keydown", stopNativePropagation, true), + }, +]; + +(function () { + register(CONTROLLER_MAP); +})(); diff --git a/packages/copy-currency/src/register.ts b/packages/copy-currency/src/register.ts new file mode 100644 index 0000000..9fab2cf --- /dev/null +++ b/packages/copy-currency/src/register.ts @@ -0,0 +1,49 @@ +import "./index.css"; + +const STORAGE_VALUE = { + OPEN: "true", + CLOSE: "false", +}; +export enum BUTTON_STATUS { + OPEN, + CLOSE, +} +export type ControllerItem = { + status: BUTTON_STATUS; + storageKey: string; + openName: string; + closeName: string; + openFunction: () => void; + closeFunction: () => void; +}; +export const STORAGE_KEY_PREFIX = "copy-currency--"; + +export const register = (controllers: ControllerItem[]): void => { + const container = document.createElement("div"); + container.className = "__copy-currency-container"; + document.body.appendChild(container); + controllers.forEach(controller => { + const button = document.createElement("div"); + button.className = "__copy-currency-button"; + const localHookInfo = localStorage.getItem(STORAGE_KEY_PREFIX + controller.storageKey); + // 初始加载会直接调用处理函数 状态置反 + controller.status = + localHookInfo === STORAGE_VALUE.OPEN ? BUTTON_STATUS.CLOSE : BUTTON_STATUS.OPEN; + const handler = () => { + if (controller.status === BUTTON_STATUS.CLOSE) { + controller.openFunction(); + controller.status = BUTTON_STATUS.OPEN; + button.textContent = controller.closeName; + localStorage.setItem(STORAGE_KEY_PREFIX + controller.storageKey, STORAGE_VALUE.OPEN); + } else { + controller.closeFunction(); + controller.status = BUTTON_STATUS.CLOSE; + button.textContent = controller.openName; + localStorage.setItem(STORAGE_KEY_PREFIX + controller.storageKey, STORAGE_VALUE.CLOSE); + } + }; + handler(); + button.addEventListener("click", handler); + container.appendChild(button); + }); +}; diff --git a/packages/copy-currency/src/utils.ts b/packages/copy-currency/src/utils.ts new file mode 100644 index 0000000..351e2b2 --- /dev/null +++ b/packages/copy-currency/src/utils.ts @@ -0,0 +1,17 @@ +export const styles = { + insertCSS: (id: string, css: string): void => { + const style = document.createElement("style"); + style.id = id; + style.innerText = css; + const [body] = document.getElementsByTagName("body"); + if (body) { + body.appendChild(style); + } else { + window.addEventListener("DOMContentLoaded", () => document.body.appendChild(style)); + } + }, + removeCSS: (id: string): void => { + const style = document.getElementById(id); + style && style.remove(); + }, +}; diff --git a/packages/copy/README.md b/packages/copy/README.md new file mode 100644 index 0000000..386162e --- /dev/null +++ b/packages/copy/README.md @@ -0,0 +1,53 @@ +# 文本选中复制 + +解除网站不允许复制的限制,文本选中后点击复制按钮即可复制,主要用于 百度文库 道客巴巴 无忧考网 学习啦 蓬勃范文 思否社区 力扣 知乎 语雀 等等。 + +某些网站例如某度文库、道客某某等都不允许用户选中文本进行复制,作为一个搞前端的,就感觉离谱,文本都下载到本地了,还不让我复制,于是为了更好的学(复)习(制),实现了一个脚本去解决这些限制。 + +## 描述 +首先来看一下效果图,依旧是以某度文库、道客某某为例展示效果,点击复制按钮即可成功复制。 + +![在这里插入图片描述](https://img-blog.csdnimg.cn/2020062620515392.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDEzNjcw,size_16,color_FFFFFF,t_70) + +![在这里插入图片描述](https://img-blog.csdnimg.cn/20200626205401136.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDEzNjcw,size_16,color_FFFFFF,t_70) + +脚本下载地址:[https://greasyfork.org/scripts/405130-文本选中复制](https://greasyfork.org/scripts/405130-%E6%96%87%E6%9C%AC%E9%80%89%E4%B8%AD%E5%A4%8D%E5%88%B6) +Github:[https://github.com/WindrunnerMax/TKScript/tree/master/src/copy](https://github.com/WindrunnerMax/TKScript/tree/master/src/copy) +脚本主要支持 百度文库 道客巴巴 无忧考网 学习啦 蓬勃范文 中文本的复制 + +## 实现 +在研究实现之前,可能需要知道下面的一些知识,后面的链接是我之前写过的一些博客: +* 事件冒泡:[事件冒泡及阻止](https://github.com/WindrunnerMax/EveryDay/blob/master/JavaScript/%E4%BA%8B%E4%BB%B6%E5%86%92%E6%B3%A1%E5%8F%8A%E9%98%BB%E6%AD%A2.md) +* 事件流模型:[JS事件流模型](https://github.com/WindrunnerMax/EveryDay/blob/master/JavaScript/JS%E4%BA%8B%E4%BB%B6%E6%B5%81%E6%A8%A1%E5%9E%8B.md) +* 浏览器事件:[浏览器事件](https://github.com/WindrunnerMax/EveryDay/blob/master/Browser/%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BA%8B%E4%BB%B6.md) +* `ES6`相关语法:[ES6新特性](https://github.com/WindrunnerMax/EveryDay/blob/master/JavaScript/ES6%E6%96%B0%E7%89%B9%E6%80%A7.md) +* `jQuery`相关使用、`CSS`的基本语法、正则表达式、浏览器调试等 + +### 某度文库 +在某度文库中直接右击检查元素的话,是能够直接看到文字的,可以直接在调试面板的`Elements`审查元素中复制,但是总是有些麻烦。如果在选中某度文库的东西会弹出他自行插入的复制按钮,无论是按`Ctrl+C`或者点击他的复制按钮都无效,除非开通一个`VIP`,本着白嫖的原则,且文本都下载到浏览器了还不让复制有点说不过去,于是首先研究一下他的`Event Listeners`。 + +![在这里插入图片描述](https://img-blog.csdnimg.cn/2020062621305280.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDEzNjcw,size_16,color_FFFFFF,t_70) + +虽然通过移除一些`Event Listeners`确实能够达到使用`Ctrl+C`来实现复制的效果,但是浏览器并不提供获取所有事件监听的方法,无法移除对于匿名的事件处理函数,对于具名的事件处理函数也不容易获取,谷歌浏览器提供的`getEventListeners`方法也只能在`Console`中使用,在脚本中会出现找不到该方法的异常,于是替换了一种方案,通过自行实现一个复制按钮来规避某度文库对于按键以及复制事件的屏蔽,具体是通过动态地插入`Dom`实现一个按钮,然后使用`ClipboardJS`这个插件去实现复制,其他的操作都是一些细节的处理,例如阻止这个插入的按钮继续冒泡触发`onmouseup`事件等。 + +![在这里插入图片描述](https://img-blog.csdnimg.cn/2020062621400978.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDEzNjcw,size_16,color_FFFFFF,t_70) + +### 道客某某 +不得不说,这个真的是惊到我了,他的实现是将文本加密,然后解密文本,最后通过使用`Canvas`将文本绘制,拖动鼠标选中时其实只是通过事件监听动态的插入了一个淡蓝色的透明的`div`,看似是选中了,实际文本是并未选中的。 + +![在这里插入图片描述](https://img-blog.csdnimg.cn/20200626214729628.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDEzNjcw,size_16,color_FFFFFF,t_70) + +见招拆招,既然文本都已经下载到了我本地,那么他的解密方式也必定在本地,于是我首先寻找的就是他对于加密的数据进行解密的代码,在浏览器中`debug`了很长时间,因为他对于代码有加密混淆压缩的行为,解密的相关代码比较混乱,并不太容易去复现,于是我换了一个思路,既然`VIP`是能够复制的,那么对于这个点击复制的按钮一定会有相应的事件处理函数,那么就寻找这个按钮绑定的事件处理函数,通过不断地`debug`我定位了一个加密的`Js`文件,虽然做了加密以及混淆但是将其解析并格式化之后在事件处理函数的部分不是特别影响阅读,此外他的混淆的变量名是动态生成的,所以要做的就是再次请求一遍这个`Js`首先将其解析生成一段字符串然后通过正则表达式匹配正确的变量名,从而实现文本的复制。 + +![在这里插入图片描述](https://img-blog.csdnimg.cn/20200626220032743.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDEzNjcw,size_16,color_FFFFFF,t_70) + +### 其他 +对于这一部分基本上都是通过监听一个`oncopy`事件去拦截复制操作,对于`DOM0`级模型直接将`oncopy`事件的处理函数指向一个空函数即可,对于`DOM2`级模型,前文提到无法在脚本中直接获取一个元素绑定的所有事件,通过观察这些网站的`Event Listeners`可以发现其绑定的`oncopy`事件都是绑定在`document`上的,而且都是冒泡模型,那么只需要阻止事件向上冒泡就能规避这些网站的`oncopy`事件的触发,实现方案就是在`body`上定义`oncopy`事件为一个空函数并阻止其向上冒泡。 + +![在这里插入图片描述](https://img-blog.csdnimg.cn/20200626220824245.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDEzNjcw,size_16,color_FFFFFF,t_70) + +## Github + +``` +https://github.com/WindrunnerMax/TKScript +``` diff --git a/packages/copy/meta.json b/packages/copy/meta.json new file mode 100644 index 0000000..ecd100e --- /dev/null +++ b/packages/copy/meta.json @@ -0,0 +1,109 @@ +{ + "name": "🔥🔥🔥文本选中复制🔥🔥🔥", + "namespace": "https://github.com/WindrunnerMax/TKScript", + "version": "6.2.10", + "description": "解除网站不允许复制的限制,文本选中后点击复制按钮即可复制,主要用于 百度文库 道客巴巴 腾讯文档 豆丁网 无忧考网 学习啦 蓬勃范文 思否社区 力扣 知乎 语雀 等", + "author": "Czy", + "match": [ + "*://wenku.baidu.com/view/*", + "*://wenku.baidu.com/share/*", + "*://wenku.baidu.com/link*", + "*://wenku.baidu.com/aggs/*", + "*://wenku.baidu.com/ndPureView/*", + "*://www.51test.net/show/*", + "*://www.xuexi.la/*", + "*://www.xuexila.com/*", + "*://www.cspengbo.com/*", + "*://*.doc88.com/*", + "*://segmentfault.com/*", + "*://wk.baidu.com/view/*", + "*://leetcode-cn.com/problems/*", + "*://leetcode.cn/problems/*", + "*://*.zhihu.com/*", + "*://z.30edu.com.cn/*", + "*://docs.qq.com/doc/*", + "*://docs.qq.com/sheet/*", + "*://docs.qq.com/slide/*", + "*://boke112.com/post/*", + "*://*.yuque.com/*", + "*://www.commandlinux.com/*", + "*://*.diyifanwen.com/*", + "*://*.mbalib.com/*", + "*://*.cnitpm.com/*", + "*://bbs.mihoyo.com/ys/*", + "*://*.ruiwen.com/*", + "*://www.uemeds.cn/*", + "*://www.oh100.com/*", + "*://www.aiyuke.com/news/*", + "*://www.fwsir.com/*", + "*://www.wenxm.cn/*", + "*://www.unjs.com/*", + "*://www.ahsrst.cn/*", + "*://*.yjbys.com/*", + "*://*.qidian.com/*", + "*://*.zongheng.com/*", + "*://*.17k.com/*", + "*://*.ciweimao.com/*", + "*://book.qq.com/*", + "*://*.360doc.com/content/*", + "*://*.850500.com/news/*", + "*://utaten.com/lyric/*", + "*://*.jianbiaoku.com/*", + "*://*.kt250.com/*", + "*://www.kejudati.com/*", + "*://*.xiaohongshu.com/discovery/*", + "*://*.baibeike.com/*", + "*://*.blog.csdn.net/*", + "*://*.bilibili.com/read/*", + "*://*.cnki.net/KXReader/*", + "*://*.cnrencai.com/*", + "*://*.kodiplayer.cn/*", + "*://tongxiehui.net/*", + "*://*.jianshu.com/p/*", + "*://*.linovelib.com/novel/*", + "*://*.wjx.cn/*", + "*://*.wjx.top/*", + "*://*.chazidian.com/*", + "*://*.juejin.cn/post/*", + "*://*.zgbk.com/ecph/*", + "*://*.wenmi.com/article/*", + "*://yuedu.baidu.com/*", + "*://www.inrrp.com.cn/*", + "*://fanyi.baidu.com/mtpe/*", + "*://www.shubaoc.com/*", + "*://blog.51cto.com/*", + "*://www.ximalaya.com/*", + "*://*.tianqi.com/*", + "*://*.xiexiebang.com/*", + "*://*.docin.com/*", + "*://*.ddwk8.cn/*", + "*://*.php.cn/*", + "*://cooco.net.cn/*", + "*://fanqienovel.com/*", + "*://*.mobiletrain.org/*", + "*://*.examcoo.com/*", + "*://*.rrdynb.com/*", + "*://*.fuwu7.com/*", + "*://*.xiangqiqipu.com/*", + "*://note.youdao.com/*", + "*://*.163.com/*", + "*://*.aipiaxi.com/*", + "*://wenku.csdn.net/*", + "*://www.kdocs.cn/*", + "*://www.xiaoyuzhoufm.com/*", + "*://*.mcmod.cn/*", + "*://*.zsxq.com/", + "*://*.volcengine.com/*", + "*://*.lyrical-nonsense.com/*", + "*://*.xueqiu.com/*", + "*://*.php.cn/*", + "*://*.51cto.com/*", + "*://*.educoder.net/*" + ], + "supportURL": "https://github.com/WindrunnerMax/TKScript/issues", + "license": "GPL License", + "installURL": "https://github.com/WindrunnerMax/TKScript", + "run-at": "document-start", + "grant": ["unsafeWindow", "GM_xmlhttpRequest"], + "connect": "res3.doc88.com" +} diff --git a/packages/copy/package.json b/packages/copy/package.json new file mode 100644 index 0000000..7f3f4fc --- /dev/null +++ b/packages/copy/package.json @@ -0,0 +1,17 @@ +{ + "name": "copy", + "version": "1.0.0", + "author": "Czy", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/WindrunnerMax/TKScript" + }, + "scripts": { + "lint:ts": "../../node_modules/typescript/bin/tsc --noEmit" + }, + "sideEffects": false, + "files": [ + "src" + ] +} diff --git a/packages/copy/src/constant/event.ts b/packages/copy/src/constant/event.ts new file mode 100644 index 0000000..5b8d279 --- /dev/null +++ b/packages/copy/src/constant/event.ts @@ -0,0 +1,22 @@ +export const DOM_STAGE = { + START: "document-start" as const, + END: "document-end" as const, +}; +export const DOM_READY = "DOMContentLoaded"; +export const DOM_LOADED = DOM_READY; +export const PAGE_LOADED = "load"; +export const MOUSE_UP = "mouseup"; +export const MOUSE_DOWN = "mousedown"; +export const MOUSE_MOVE = "mousemove"; +export const COPY = "copy"; +export const SELECT_START = "selectstart"; +export const CONTEXT_MENU = "contextmenu"; +export const KEY_DOWN = "keydown"; +export const TOUCH_START = "touchstart"; +export const TOUCH_MOVE = "touchmove"; +export const TOUCH_END = "touchend"; +export const FOCUS = "focus"; +export const BLUR = "blur"; +export const FOCUS_IN = "focusin"; +export const FOCUS_OUT = "focusout"; +export const PASTE = "paste"; diff --git a/packages/copy/src/deploy.ts b/packages/copy/src/deploy.ts new file mode 100644 index 0000000..563198a --- /dev/null +++ b/packages/copy/src/deploy.ts @@ -0,0 +1,44 @@ +import { DOM_READY, DOM_STAGE } from "./constant/event"; +import type { CopyParams } from "./utils/copy"; +import type { Website, WebsiteConfig } from "./websites"; +import websites from "./websites"; + +let siteGetSelectedText: (() => CopyParams) | null = null; + +const initWebsite = (): WebsiteConfig => { + let websiteConfig: WebsiteConfig = { + initCopyEvent: true, + runAt: DOM_STAGE.END, + captureInstance: false, + delay: 0, + }; + const mather = (regex: RegExp, website: Website) => { + if (regex.test(window.location.href)) { + if (website.config) { + websiteConfig = Object.assign(websiteConfig, website.config); + } + if (websiteConfig.runAt === DOM_STAGE.END) { + window.addEventListener(DOM_READY, () => website.init()); + } else { + website.init(); + } + if (website.getSelectedText) { + siteGetSelectedText = website.getSelectedText; + } + return true; + } + return false; + }; + websites.some(website => mather(website.regexp, website)); + return websiteConfig; +}; + +const getSelectedText = (): CopyParams => { + if (siteGetSelectedText) return siteGetSelectedText(); + if (window.getSelection) return (window.getSelection() || "").toString(); + if (document.getSelection) return (document.getSelection() || "").toString(); + if (document.selection) return document.selection.createRange().text; + return ""; +}; + +export { initWebsite, getSelectedText }; diff --git a/packages/copy/src/index.ts b/packages/copy/src/index.ts new file mode 100644 index 0000000..ef9b28f --- /dev/null +++ b/packages/copy/src/index.ts @@ -0,0 +1,26 @@ +import { initBaseEvent, initBaseStyle } from "./init"; +import { initWebsite, getSelectedText } from "./deploy"; +import instance from "./utils/instance"; +import { isEmptyContent } from "./utils/copy"; +import { MOUSE_UP } from "./constant/event"; + +(function () { + const websiteConfig = initWebsite(); + initBaseEvent(websiteConfig); + initBaseStyle(); + window.addEventListener( + MOUSE_UP, + e => { + const handler = () => { + const content = getSelectedText(); + if (isEmptyContent(content)) { + instance.hide(); + return void 0; + } + instance.onCopy(content, e); + }; + websiteConfig.delay ? setTimeout(handler, websiteConfig.delay) : handler(); + }, + websiteConfig.captureInstance + ); +})(); diff --git a/packages/copy/src/init.ts b/packages/copy/src/init.ts new file mode 100644 index 0000000..ba9df50 --- /dev/null +++ b/packages/copy/src/init.ts @@ -0,0 +1,23 @@ +import appStyle from "./styles/app.css"; +import baseStyle from "./styles/style.css"; +import { COPY, DOM_READY } from "./constant/event"; +import type { WebsiteConfig } from "./websites"; +import dom from "./utils/dom"; + +export const initBaseEvent = (websiteConfig: WebsiteConfig): void => { + window.addEventListener(DOM_READY, () => { + if (websiteConfig.initCopyEvent) { + document.oncopy = e => e.stopPropagation(); + document.body.oncopy = e => e.stopPropagation(); + document.addEventListener(COPY, e => e.stopPropagation()); + document.body.addEventListener(COPY, e => e.stopPropagation()); + } + }); +}; + +export const initBaseStyle = (): void => { + window.addEventListener(DOM_READY, () => { + dom.append("head", ``); + dom.append("head", ``); + }); +}; diff --git a/packages/copy/src/modules/17k.ts b/packages/copy/src/modules/17k.ts new file mode 100644 index 0000000..db9449a --- /dev/null +++ b/packages/copy/src/modules/17k.ts @@ -0,0 +1,12 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("17k"), + init: () => { + utils.hideButton(); + utils.enableOnCopy(".readAreaBox .p"); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/aiyuke.ts b/packages/copy/src/modules/aiyuke.ts new file mode 100644 index 0000000..d2f47cf --- /dev/null +++ b/packages/copy/src/modules/aiyuke.ts @@ -0,0 +1,12 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp(".+aiyuke.com/news/.+"), + init: function () { + utils.hideButton(); + utils.enableUserSelectByCSS(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/baiduwk.ts b/packages/copy/src/modules/baiduwk.ts new file mode 100644 index 0000000..fe790f8 --- /dev/null +++ b/packages/copy/src/modules/baiduwk.ts @@ -0,0 +1,137 @@ +import dom from "../utils/dom"; +import type { Website } from "../websites"; + +let preSelectedText = ""; +let curSelectedText = ""; + +const website: Website = { + config: { + runAt: "document-start", + }, + regexp: new RegExp("wenku.baidu.com/(view|link|aggs).*"), + init: function () { + dom.append("head", ``); + type TextData = [arg1: string, ...rest: number[]]; + type CanvasDataConstruction = { canvas: Element; data: TextData[] }; + let canvasDataGroup: CanvasDataConstruction[] = []; + const originObject = { + context2DPrototype: unsafeWindow.document.createElement("canvas").getContext("2d").__proto__, + }; + document.createElement = new Proxy(document.createElement, { + apply: function (target, thisArg, argumentsList) { + const element = Reflect.apply(target, thisArg, argumentsList); + if (argumentsList[0] === "canvas") { + const tmpData: CanvasDataConstruction = { + canvas: element, + data: [], + }; + element.getContext("2d").fillText = function (...args: TextData) { + tmpData.data.push(args); + originObject.context2DPrototype.fillText.apply(this, args); + }; + canvasDataGroup.push(tmpData); + } + return element; + }, + }); + let pageData: Record> = {}; + Object.defineProperty(unsafeWindow, "pageData", { + set: v => (pageData = v), + get: function () { + if (!pageData.vipInfo) return (pageData.vipInfo = {}); + pageData.vipInfo.global_svip_status = 1; + pageData.vipInfo.global_vip_status = 1; + pageData.vipInfo.isVip = 1; + pageData.vipInfo.isWenkuVip = 1; + return pageData; + }, + }); + + const templateCSS = [ + "", + ].join(""); + + const render = () => { + canvasDataGroup = canvasDataGroup.filter(item => item.canvas.id); + const templateText: string[] = canvasDataGroup.map((canvasData, index) => { + const computedTop = index * Number(canvasData.canvas.clientHeight); + const textItem: string[] = canvasData.data.map( + item => + `
${ + item[0] + }
` + ); + return textItem.join(""); + }); + const templateHTML = [ + "
", + "
", + "
", + "
请自行复制
", + "
关闭
", + "
", + "
", + templateText.join(""), + "
", + "
", + "
", + ].join(""); + dom.append("body", templateHTML); + dom.append("body", templateCSS); + const closeButton = document.querySelector("#copy-template-html #template-close"); + const close = () => { + dom.remove("#copy-template-html"); + dom.remove("#copy-template-css"); + closeButton && closeButton.removeEventListener("click", close); + }; + closeButton && closeButton.addEventListener("click", close); + }; + document.addEventListener("DOMContentLoaded", () => { + dom.append( + "head", + `` + ); + dom.append("body", "
复制
"); + const btn = dom.query("#copy-btn-wk"); + btn && (btn.onclick = render); + }); + }, + getSelectedText: (): string => { + if (window.getSelection && (window.getSelection() || "").toString()) { + return (window.getSelection() || "").toString(); + } + try { + const elements = unsafeWindow.document.querySelectorAll("#app > div"); + for (const item of elements) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const vue = item.__vue__; + if (vue) { + const text = vue.$store.getters["readerPlugin/selectedTextTrim"]; + text && (curSelectedText = text); + break; + } + } + } catch (error) { + console.warn("GET TEXT FAIL", error); + } + if (!curSelectedText) { + const result = /查看全部包含“([\s\S]*?)”的文档/.exec(document.body.innerHTML); + result && result[1] && (curSelectedText = result[1]); + } + if (curSelectedText && preSelectedText !== curSelectedText) { + preSelectedText = curSelectedText; + return curSelectedText; + } + return ""; + }, +}; + +export default website; diff --git a/packages/copy/src/modules/bilibili.ts b/packages/copy/src/modules/bilibili.ts new file mode 100644 index 0000000..8c0177a --- /dev/null +++ b/packages/copy/src/modules/bilibili.ts @@ -0,0 +1,12 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("bilibili"), + init: function () { + utils.hideButton(); + utils.enableOnCopyByCapture(); + }, +}; + +export default website; diff --git a/src/copy/src/modules/boke112.ts b/packages/copy/src/modules/boke112.ts similarity index 62% rename from src/copy/src/modules/boke112.ts rename to packages/copy/src/modules/boke112.ts index 1e3bb43..48ae3e9 100644 --- a/src/copy/src/modules/boke112.ts +++ b/packages/copy/src/modules/boke112.ts @@ -1,10 +1,12 @@ -import { Website } from "../websites"; +import dom from "../utils/dom"; +import utils from "../utils/event"; +import type { Website } from "../websites"; const website: Website = { - regexp: new RegExp(".+://boke112.com/post/.+"), - init: function ($) { - $("body").on("click", () => false); - const template = ` + regexp: new RegExp(".+://boke112.com/post/.+"), + init: function () { + utils.enableOnCopyByCapture(); + const template = ` `; - $("body").append(template.replace(/\s*/, " ")); - }, + dom.append("head", template); + }, }; export default website; diff --git a/packages/copy/src/modules/ciweimao.ts b/packages/copy/src/modules/ciweimao.ts new file mode 100644 index 0000000..d120dc9 --- /dev/null +++ b/packages/copy/src/modules/ciweimao.ts @@ -0,0 +1,15 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("ciweimao"), + init: function () { + utils.hideButton(); + utils.enableUserSelectByCSS(); + utils.enableOnCopy("#J_BookCnt"); + utils.enableOnContextMenu("body"); + utils.enableOnSelectStart("#J_BookCnt"); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/cnitpm.ts b/packages/copy/src/modules/cnitpm.ts new file mode 100644 index 0000000..3cf1d5a --- /dev/null +++ b/packages/copy/src/modules/cnitpm.ts @@ -0,0 +1,14 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: /cnitpm/, + init: function () { + utils.hideButton(); + window.onload = () => { + utils.removeAttributes("body", ["oncopy", "oncontextmenu", "onselectstart"]); + }; + }, +}; + +export default website; diff --git a/packages/copy/src/modules/cnki.ts b/packages/copy/src/modules/cnki.ts new file mode 100644 index 0000000..dc3f37a --- /dev/null +++ b/packages/copy/src/modules/cnki.ts @@ -0,0 +1,14 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("cnki"), + init: function () { + utils.hideButton(); + utils.enableOnContextMenuByCapture(); + utils.enableOnKeyDownByCapture(); + utils.enableOnCopyByCapture(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/common-e.ts b/packages/copy/src/modules/common-e.ts new file mode 100644 index 0000000..4afda88 --- /dev/null +++ b/packages/copy/src/modules/common-e.ts @@ -0,0 +1,16 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp(["wjx", "fanyi\\.baidu", "tianqi", "rrdynb", "fuwu7"].join("|")), + init: function () { + utils.hideButton(); + utils.enableUserSelectByCSS(); + utils.enableOnCopyByCapture(); + utils.enableOnKeyDownByCapture(); + utils.enableOnSelectStartByCapture(); + utils.enableOnContextMenuByCapture(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/common-p.ts b/packages/copy/src/modules/common-p.ts new file mode 100644 index 0000000..03b3984 --- /dev/null +++ b/packages/copy/src/modules/common-p.ts @@ -0,0 +1,20 @@ +import { DOM_STAGE } from "../constant/event"; +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + config: { + runAt: DOM_STAGE.START, + }, + regexp: new RegExp(["examcoo"].join("|")), + init: function () { + utils.hideButton(); + utils.enableUserSelectByCSS(); + utils.enableOnCopyByCapture(); + utils.enableOnKeyDownByCapture(); + utils.enableOnSelectStartByCapture(); + utils.enableOnContextMenuByCapture(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/common.ts b/packages/copy/src/modules/common.ts new file mode 100644 index 0000000..72ce29a --- /dev/null +++ b/packages/copy/src/modules/common.ts @@ -0,0 +1,66 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp( + [ + "commandlinux", + "cnki", + "ruiwen", + "oh100", + "fwsir", + "wenxm", + "unjs", + "ahsrst", + "yjbys", + "360doc", + "850500", + "jianbiaoku", + "kt250", + "kejudati", + "baibeike", + "yuque", + "cnrencai", + "kodiplayer", + "tongxiehui", + "ndPureView", + "jianshu", + "linovelib", + "chazidian", + "juejin", + "zgbk", + "wenmi", + "yuedu\\.baidu", + "inrrp", + "shubaoc", + "51cto", + "ximalaya", + "xiexiebang", + "ddwk8", + "php\\.cn", + "fanqienovel\\.com/reader", + "cooco\\.net\\.cn", + "mobiletrain", + "xiangqiqipu", + "m\\.163\\.com", + "aipiaxi", + "wenku\\.csdn\\.net", + "xiaoyuzhoufm\\.com", + "mcmod\\.cn", + "zsxq\\.com", + "volcengine\\.com", + "lyrical-nonsense\\.com", + "xueqiu\\.com", + "php\\.cn", + "51cto\\.com", + "educoder\\.net", + ].join("|") + ), + init: function () { + utils.hideButton(); + utils.enableUserSelectByCSS(); + utils.enableOnCopyByCapture(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/csdn.ts b/packages/copy/src/modules/csdn.ts new file mode 100644 index 0000000..6ffed82 --- /dev/null +++ b/packages/copy/src/modules/csdn.ts @@ -0,0 +1,13 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: /csdn/, + init: function () { + utils.hideButton(); + utils.enableOnCopyByCapture(); + utils.enableUserSelectByCSS(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/diyifanwen.ts b/packages/copy/src/modules/diyifanwen.ts new file mode 100644 index 0000000..c77f5be --- /dev/null +++ b/packages/copy/src/modules/diyifanwen.ts @@ -0,0 +1,13 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: /diyifanwen/, + init: function () { + utils.hideButton(); + utils.enableOnCopyByCapture(); + utils.enableOnKeyDownByCapture(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/doc88.ts b/packages/copy/src/modules/doc88.ts new file mode 100644 index 0000000..ed9079f --- /dev/null +++ b/packages/copy/src/modules/doc88.ts @@ -0,0 +1,45 @@ +import dom from "../utils/dom"; +import type { Website } from "../websites"; + +/*! + * 外部引用 static.doc88.com 声明 + * 此部分是在处理 doc88.com 才会加载的资源文件,此资源文件由该网站加载时提供 + */ + +let path = ""; +const website: Website = { + regexp: /.*doc88\.com\/.+/, + init: () => { + dom.append( + "body", + `` + ); + GM_xmlhttpRequest({ + method: "GET", + url: "https://res3.doc88.com/resources/js/modules/main-v2.min.js?v=3.55", + onload: function (response) { + const result = /\("#cp_textarea"\).val\(([\S]*?)\);/.exec(response.responseText); + if (result) path = result[1]; + }, + }); + window.addEventListener("load", () => { + const cpFn = unsafeWindow.copyText.toString(); + const fnResult = /'\+([\S]*?)\+"<\/textarea>/.exec(cpFn); + if (fnResult) path = fnResult[1]; + }); + }, + getSelectedText: (): string => { + let select = unsafeWindow; + path.split(".").forEach((v: string) => { + select = select[v]; + }); + if (!select) { + unsafeWindow.Config.vip = 1; + unsafeWindow.Config.logined = 1; + dom.remove("#copy-element-hide"); + } + return select; + }, +}; + +export default website; diff --git a/packages/copy/src/modules/docin.ts b/packages/copy/src/modules/docin.ts new file mode 100644 index 0000000..0e7a411 --- /dev/null +++ b/packages/copy/src/modules/docin.ts @@ -0,0 +1,24 @@ +import { PAGE_LOADED } from "../constant/event"; +import dom from "../utils/dom"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("docin.com/.*"), + config: { + initCopyEvent: false, + captureInstance: true, + delay: 100, + }, + init: function () { + window.addEventListener(PAGE_LOADED, () => dom.query("#j_select")?.click()); + dom.append("head", ""); + }, + getSelectedText: function () { + if (unsafeWindow.docinReader && unsafeWindow.docinReader.st) { + return unsafeWindow.docinReader.st; + } + return ""; + }, +}; + +export default website; diff --git a/packages/copy/src/modules/docqq.ts b/packages/copy/src/modules/docqq.ts new file mode 100644 index 0000000..d15ce3f --- /dev/null +++ b/packages/copy/src/modules/docqq.ts @@ -0,0 +1,85 @@ +import { TEXT_HTML, TEXT_PLAIN } from "../utils/copy"; +import { instance } from "../utils/instance"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: /.*docs\.qq\.com\/(doc)|(sheet)\/.+/, + config: { + initCopyEvent: false, + captureInstance: true, + delay: 100, + }, + init: function () { + window.onload = () => { + instance.disable(); + }; + }, + getSelectedText: function () { + // QQ Doc + if (unsafeWindow.pad && unsafeWindow.pad.editor && !unsafeWindow.pad.editor.isCopyable()) { + instance.enable(); + const editor = unsafeWindow.pad.editor; + if (editor.getCopyContent) { + const content = editor.getCopyContent() || {}; + const plainText: string = content.plain || ""; + const htmlText: string = content.html || ""; + return { + [TEXT_PLAIN]: plainText, + [TEXT_HTML]: htmlText, + }; + } else { + editor._docEnv.copyable = true; + editor.clipboardManager.copy(); + const plainText: string = editor.clipboardManager.customClipboard.plain || ""; + const htmlText: string = editor.clipboardManager.customClipboard.html || ""; + editor._docEnv.copyable = false; + return { + [TEXT_PLAIN]: plainText, + [TEXT_HTML]: htmlText, + }; + } + } + // QQ Sheet + const sheetStatus = unsafeWindow.SpreadsheetApp + ? unsafeWindow.SpreadsheetApp.permissions + ? unsafeWindow.SpreadsheetApp.permissions.sheetStatus + : unsafeWindow.SpreadsheetApp.sheetStatus + : null; + if ( + sheetStatus && + sheetStatus.canCopy === false && + sheetStatus.canEdit && + sheetStatus.canEdit() === false + ) { + instance.enable(); + const SpreadsheetApp = unsafeWindow.SpreadsheetApp; + const [selection] = SpreadsheetApp.view.getSelectionRanges(); + if (selection) { + const text: string[] = []; + const { startColIndex, startRowIndex, endColIndex, endRowIndex } = selection; + for (let i = startRowIndex; i <= endRowIndex; i++) { + for (let k = startColIndex; k <= endColIndex; k++) { + const cell = SpreadsheetApp.workbook.activeSheet.getCellDataAtPosition(i, k); + if (!cell) continue; + text.push(" ", cell.formattedValue?.value || cell.value || ""); + } + i !== endRowIndex && text.push("\n"); + } + const str = text.join(""); + return /^\s*$/.test(str) ? "" : str; + } + } + // Final + return ""; + }, +}; + +export default website; + +// SpreadsheetApp.feature._copyPaste.copyPasteCache.onCopy({ +// selectGridRange: SpreadsheetApp.view.getSelectionRanges()[0], +// copyType: 0, +// app: SpreadsheetApp.feature.app, +// isSelectAll: undefined, +// }); +// SpreadsheetApp.sheetStatus.workbookStatus.status.setCanCopy(true); diff --git a/packages/copy/src/modules/edu30.ts b/packages/copy/src/modules/edu30.ts new file mode 100644 index 0000000..b126bdb --- /dev/null +++ b/packages/copy/src/modules/edu30.ts @@ -0,0 +1,17 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: /.*30edu\.com\.cn\/.+/, + init: function () { + window.onload = () => { + const iframes = document.getElementsByTagName("iframe"); + if (iframes.length === 2) { + const body = iframes[1].contentWindow?.document.querySelector("body"); + body && utils.removeAttributes(body, ["oncopy", "oncontextmenu", "onselectstart"]); + } + }; + }, +}; + +export default website; diff --git a/packages/copy/src/modules/kdocs.ts b/packages/copy/src/modules/kdocs.ts new file mode 100644 index 0000000..6feb050 --- /dev/null +++ b/packages/copy/src/modules/kdocs.ts @@ -0,0 +1,27 @@ +import { DOM_STAGE } from "../constant/event"; +import type { Website } from "../websites"; + +export const kdoc: Website = { + config: { + runAt: DOM_STAGE.START, + }, + regexp: new RegExp("kdocs"), + init: function () { + const patch = () => { + unsafeWindow.APP && (unsafeWindow.APP.canCopy = () => true); + }; + if (unsafeWindow.APP) { + patch(); + } else { + let APP: unknown = undefined; + Object.defineProperty(unsafeWindow, "APP", { + configurable: false, + set: (value: unknown) => { + APP = value; + value && patch(); + }, + get: () => APP, + }); + } + }, +}; diff --git a/packages/copy/src/modules/leetcode.ts b/packages/copy/src/modules/leetcode.ts new file mode 100644 index 0000000..df70556 --- /dev/null +++ b/packages/copy/src/modules/leetcode.ts @@ -0,0 +1,16 @@ +import { PAGE_LOADED } from "../constant/event"; +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("leetcode"), + init: function () { + utils.hideButton(); + window.addEventListener(PAGE_LOADED, () => { + utils.enableOnCopy("#lc-home"); + utils.enableOnCopy("[data-layout-path='/ts0/t1']"); + }); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/mbalib.ts b/packages/copy/src/modules/mbalib.ts new file mode 100644 index 0000000..60c2f29 --- /dev/null +++ b/packages/copy/src/modules/mbalib.ts @@ -0,0 +1,13 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: /mbalib/, + init: function () { + window.onload = () => { + utils.removeAttributes("fullScreenContainer", ["oncopy", "oncontextmenu", "onselectstart"]); + }; + }, +}; + +export default website; diff --git a/packages/copy/src/modules/mihoyo.ts b/packages/copy/src/modules/mihoyo.ts new file mode 100644 index 0000000..4e2a1d5 --- /dev/null +++ b/packages/copy/src/modules/mihoyo.ts @@ -0,0 +1,14 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp(".+bbs.mihoyo.com/.+"), + init: function () { + utils.hideButton(); + utils.enableOnCopyByCapture(); + utils.enableOnSelectStartByCapture(); + utils.enableUserSelectByCSS(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/qidian.ts b/packages/copy/src/modules/qidian.ts new file mode 100644 index 0000000..cafb0a8 --- /dev/null +++ b/packages/copy/src/modules/qidian.ts @@ -0,0 +1,14 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("qidian"), + init: function () { + utils.hideButton(); + utils.enableUserSelectByCSS(); + utils.enableOnCopy(".main-read-container"); + utils.enableOnContextMenu(".main-read-container"); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/qq-slider.ts b/packages/copy/src/modules/qq-slider.ts new file mode 100644 index 0000000..c59d072 --- /dev/null +++ b/packages/copy/src/modules/qq-slider.ts @@ -0,0 +1,47 @@ +import { instance } from "../utils/instance"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: /.*docs\.qq\.com\/slide\/.+/, + config: { + initCopyEvent: false, + captureInstance: true, + runAt: "document-start", + }, + init: function () { + let webpackJsonp = unsafeWindow.webpackJsonp; + Object.defineProperty(unsafeWindow, "webpackJsonp", { + get() { + return webpackJsonp; + }, + set(newValue) { + if (newValue.push.__HOOKED__) { + return; + } + webpackJsonp = newValue; + const originPush = webpackJsonp.push; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function push(...args: any[]) { + const [, mods] = args[0]; + for (const [key, fn] of Object.entries(mods)) { + const stringifyFn = String(fn); + if (/this\.shouldResponseCopy\(/.test(stringifyFn)) { + const next = stringifyFn.replace(/this\.shouldResponseCopy\(/g, "(() => true)("); + // .replace(/this.storeManager=/g, "window.storeManager=this.storeManager=") + mods[key] = new Function(`return (${next})`)(); + } + } + // @ts-expect-error this + return originPush.call(this, ...args); + } + push.__HOOKED__ = 1; + webpackJsonp.push = push; + }, + }); + window.onload = () => { + instance.disable(); + }; + }, +}; + +export default website; diff --git a/packages/copy/src/modules/qqbook.ts b/packages/copy/src/modules/qqbook.ts new file mode 100644 index 0000000..cf8f926 --- /dev/null +++ b/packages/copy/src/modules/qqbook.ts @@ -0,0 +1,15 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("book\\.qq"), + init: function () { + utils.hideButton(); + utils.enableOnCopy("body"); + utils.enableUserSelectByCSS(); + utils.enableOnContextMenu("body"); + utils.enableOnSelectStart("body"); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/sf.ts b/packages/copy/src/modules/sf.ts new file mode 100644 index 0000000..f475e36 --- /dev/null +++ b/packages/copy/src/modules/sf.ts @@ -0,0 +1,17 @@ +import dom from "../utils/dom"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: /.*segmentfault\.com\/.+/, + init: function () { + const body = dom.query("body"); + if (body) { + body.classList.add("_sf_adjust_body"); + body.onclick = () => { + body.style.paddingRight = "0"; + }; + } + }, +}; + +export default website; diff --git a/packages/copy/src/modules/uemeds.ts b/packages/copy/src/modules/uemeds.ts new file mode 100644 index 0000000..1dc0d2e --- /dev/null +++ b/packages/copy/src/modules/uemeds.ts @@ -0,0 +1,12 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp(".+www.uemeds.cn/.+"), + init: function () { + utils.hideButton(); + utils.enableUserSelectByCSS(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/utaten.ts b/packages/copy/src/modules/utaten.ts new file mode 100644 index 0000000..f617499 --- /dev/null +++ b/packages/copy/src/modules/utaten.ts @@ -0,0 +1,13 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("utaten"), + init: function () { + utils.hideButton(); + utils.enableUserSelectByCSS(); + utils.enableOnSelectStartByCapture(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/wk.ts b/packages/copy/src/modules/wk.ts new file mode 100644 index 0000000..4ecf141 --- /dev/null +++ b/packages/copy/src/modules/wk.ts @@ -0,0 +1,16 @@ +import dom from "../utils/dom"; +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: /.*wk\.baidu\.com\/view\/.+/, + init: function () { + utils.hideButton(); + utils.enableOnSelectStartByCapture(); + window.onload = () => { + dom.attr(".sf-edu-wenku-vw-container", "style", ""); + }; + }, +}; + +export default website; diff --git a/packages/copy/src/modules/xiaohongshu.ts b/packages/copy/src/modules/xiaohongshu.ts new file mode 100644 index 0000000..e518962 --- /dev/null +++ b/packages/copy/src/modules/xiaohongshu.ts @@ -0,0 +1,13 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("xiaohongshu"), + init: function () { + utils.hideButton(); + utils.enableUserSelectByCSS(); + utils.enableOnKeyDownByCapture(); + }, +}; + +export default website; diff --git a/packages/copy/src/modules/youdao.ts b/packages/copy/src/modules/youdao.ts new file mode 100644 index 0000000..90c1f17 --- /dev/null +++ b/packages/copy/src/modules/youdao.ts @@ -0,0 +1,20 @@ +import { MOUSE_DOWN, MOUSE_MOVE } from "../constant/event"; +import utils, { stopNativePropagation } from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + config: { + initCopyEvent: false, + }, + regexp: /note\.youdao\.com\/newEditorV1\/bulb\.html.*/, + init: function () { + utils.hideButton(); + if (window.parent && window.parent.location.href.indexOf("ynoteshare") > -1) { + utils.enableUserSelectByCSS(); + document.addEventListener(MOUSE_DOWN, stopNativePropagation, true); + document.addEventListener(MOUSE_MOVE, stopNativePropagation, true); + } + }, +}; + +export default website; diff --git a/packages/copy/src/modules/zhihu.ts b/packages/copy/src/modules/zhihu.ts new file mode 100644 index 0000000..176435f --- /dev/null +++ b/packages/copy/src/modules/zhihu.ts @@ -0,0 +1,42 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: /.*zhihu\.com\/.*/, + init: function () { + utils.hideButton(); + utils.enableUserSelectByCSS(); + utils.enableOnCopyByCapture(); + + if (location.hostname === "zhuanlan.zhihu.com") { + const removeFocalPointModal: MutationCallback = mutationsList => { + for (const mutation of mutationsList) { + const addedNodes = mutation.addedNodes; + for (let i = 0; i < addedNodes.length; i++) { + const target = addedNodes[i]; + if (target.nodeType != 1) return void 0; + if ( + target instanceof HTMLDivElement && + target.querySelector("[data-focus-scope-start]") + ) { + const element = target.querySelector("[data-focus-scope-start]"); + element && + element.parentElement && + element.parentElement.textContent && + element.parentElement.textContent.indexOf("立即登录/注册") > -1 && + element.parentElement.parentElement && + element.parentElement.parentElement.removeChild(element.parentElement); + } + } + } + }; + const observer = new MutationObserver(removeFocalPointModal); + observer.observe(document, { childList: true, subtree: true }); + } + }, +}; + +export default website; + +// Force Focus `Login Button` // `focusout` Event Bubbles +// https://github.com/adobe/react-spectrum/blob/e4bc3269fa41aa096700445c6bfa9c8620545e6a/packages/%40react-aria/focus/src/FocusScope.tsx#L179 diff --git a/packages/copy/src/modules/zongheng.ts b/packages/copy/src/modules/zongheng.ts new file mode 100644 index 0000000..48692d7 --- /dev/null +++ b/packages/copy/src/modules/zongheng.ts @@ -0,0 +1,18 @@ +import utils from "../utils/event"; +import type { Website } from "../websites"; + +const website: Website = { + regexp: new RegExp("zongheng"), + init: function () { + utils.removeAttributes(".reader_box", ["style", "unselectable", "onselectstart"]); + utils.removeAttributes(".reader_main", ["style", "unselectable", "onselectstart"]); + utils.hideButton(); + utils.enableOnKeyDown("body"); + utils.enableUserSelectByCSS(); + utils.enableOnCopy(".content"); + utils.enableOnContextMenu("body"); + utils.enableOnSelectStart(".content"); + }, +}; + +export default website; diff --git a/packages/copy/src/styles/app.css b/packages/copy/src/styles/app.css new file mode 100644 index 0000000..984f567 --- /dev/null +++ b/packages/copy/src/styles/app.css @@ -0,0 +1,16 @@ +.__copy-button { + width: 60px; + height: 30px; + background: #4C98F7; + color: #fff; + position: absolute; + z-index: -1000; + opacity: 0; + display: flex; + justify-content: center; + align-items: center; + border-radius: 3px; + font-size: 13px; + cursor: pointer; + transition: opacity 0.3s; +} \ No newline at end of file diff --git a/packages/copy/src/styles/style.css b/packages/copy/src/styles/style.css new file mode 100644 index 0000000..974b1c6 --- /dev/null +++ b/packages/copy/src/styles/style.css @@ -0,0 +1,13 @@ +div[id^=reader-helper], +#sfModal, +#select-tooltip{ + display: none !important; +} + +.modal-open{ + overflow: auto !important; +} + +._sf_adjust_body{ + padding-right: 0 !important; +} \ No newline at end of file diff --git a/packages/copy/src/types/global.d.ts b/packages/copy/src/types/global.d.ts new file mode 100644 index 0000000..a938ae2 --- /dev/null +++ b/packages/copy/src/types/global.d.ts @@ -0,0 +1,20 @@ +declare interface Document { + selection: { + createRange: () => { + text: string; + }; + }; +} + +declare function GM_xmlhttpRequest(params: { + method: GET | POST; + url: string; + onload: (response: { status: number; responseText: string }) => void; +}): void; + +declare const unsafeWindow = any; + +declare module "*.css" { + const content: string; + export default content; +} diff --git a/packages/copy/src/utils/copy.ts b/packages/copy/src/utils/copy.ts new file mode 100644 index 0000000..eea6f76 --- /dev/null +++ b/packages/copy/src/utils/copy.ts @@ -0,0 +1,57 @@ +import { COPY } from "../constant/event"; +import { isString } from "./is"; + +type CopyData = { + "text/plain": string; + "text/html"?: string; +} & Record; + +export type CopyParams = CopyData | string; + +export const TEXT_PLAIN = "text/plain"; +export const TEXT_HTML = "text/html"; + +const execCopyCommand = (data: CopyData) => { + const textarea = document.createElement("textarea"); + const handler = (event: ClipboardEvent) => { + event.preventDefault(); + event.stopImmediatePropagation(); + for (const [key, value] of Object.entries(data)) { + event.clipboardData && event.clipboardData.setData(key, value); + } + }; + textarea.addEventListener(COPY, handler, true); + textarea.style.position = "fixed"; + textarea.style.left = "-999999999px"; + textarea.style.top = "-999999999px"; + textarea.value = data[TEXT_PLAIN] || " "; + document.body.appendChild(textarea); + textarea.select(); + document.execCommand("copy"); + textarea.removeEventListener(COPY, handler); + document.body.removeChild(textarea); +}; + +export const isEmptyContent = (data: CopyParams): boolean => { + if (!data) return true; + return isString(data) ? !data : !data[TEXT_PLAIN]; +}; + +export const copy = (data: CopyParams): boolean => { + const params: CopyData = isString(data) ? { [TEXT_PLAIN]: data } : data; + const plainText = params[TEXT_PLAIN]; + if (!plainText) return false; + if (navigator.clipboard && window.ClipboardItem) { + const dataItems: Record = {}; + for (const [key, value] of Object.entries(params)) { + const blob = new Blob([value], { type: key }); + dataItems[key] = blob; + } + navigator.clipboard.write([new ClipboardItem(dataItems)]).catch(() => { + execCopyCommand(params); + }); + } else { + execCopyCommand(params); + } + return true; +}; diff --git a/packages/copy/src/utils/dom.ts b/packages/copy/src/utils/dom.ts new file mode 100644 index 0000000..272765b --- /dev/null +++ b/packages/copy/src/utils/dom.ts @@ -0,0 +1,28 @@ +import { isString } from "./is"; + +export const dom = { + query: function (selector: string): null | HTMLElement { + return document.querySelector(selector); + }, + attr: function (selector: string, attr: string, value: string): void { + const dom = document.querySelector(selector); + dom && dom.setAttribute(attr, value); + }, + append: function (selector: string, content: Element | string): HTMLDivElement { + const container = document.createElement("div"); + if (isString(content)) { + container.innerHTML = content; + } else { + container.appendChild(content); + } + const targetDOM = document.querySelector(selector); + targetDOM && targetDOM.append(container); + return container; + }, + remove: function (selector: string): void { + const targetDOM = document.querySelector(selector); + targetDOM && targetDOM.remove(); + }, +}; + +export default dom; diff --git a/packages/copy/src/utils/event.ts b/packages/copy/src/utils/event.ts new file mode 100644 index 0000000..210c31e --- /dev/null +++ b/packages/copy/src/utils/event.ts @@ -0,0 +1,74 @@ +import { CONTEXT_MENU, COPY, KEY_DOWN, PAGE_LOADED, SELECT_START } from "../constant/event"; +import instance from "./instance"; +import { isString } from "./is"; + +export const stopNativePropagation = (event: Event): void => { + // event.stopImmediatePropagation(); // 即停且阻止该元素在此事件绑定之后的`on`同类事件触发 + event.stopPropagation(); // 阻止该元素继续冒泡后的`on`同类事件触发 +}; + +export const event = { + hideButton: (): void => { + instance.disable(); + }, + showButton: (): void => { + instance.enable(); + }, + removeAttributes: (selector: string | HTMLElement, attr: string[] = []): void => { + const dom = isString(selector) ? document.querySelector(selector) : selector; + dom && attr.forEach(item => dom.removeAttribute(item)); + }, + enableUserSelectByCSS: (): void => { + const css = "*{user-select: auto !important;-webkit-user-select: auto !important;}"; + const style = document.createElement("style"); + style.innerText = css; + const head = document.getElementsByTagName("head")[0]; + if (head) { + head.appendChild(style); + } else { + window.addEventListener(PAGE_LOADED, () => + document.getElementsByTagName("head")[0].appendChild(style) + ); + } + }, + enableOnSelectStart: (selector: string): void => { + const dom = document.querySelector(selector); + dom && dom.addEventListener(SELECT_START, stopNativePropagation); + }, + enableOnContextMenu: (selector: string): void => { + const dom = document.querySelector(selector); + dom && dom.addEventListener(CONTEXT_MENU, stopNativePropagation); + }, + enableOnCopy: (selector: string): void => { + const dom = document.querySelector(selector); + dom && dom.addEventListener(COPY, stopNativePropagation); + }, + enableOnKeyDown: (selector: string): void => { + const dom = document.querySelector(selector) as HTMLDivElement; + dom && + dom.addEventListener(KEY_DOWN, (e: KeyboardEvent) => { + if (e.key === "c" && e.ctrlKey) return e.stopPropagation(); + }); + }, + enableOnSelectStartByCapture: (): void => { + window.addEventListener(SELECT_START, stopNativePropagation, true); + document.addEventListener(SELECT_START, stopNativePropagation, true); + }, + enableOnContextMenuByCapture: (): void => { + window.addEventListener(CONTEXT_MENU, stopNativePropagation, true); + document.addEventListener(CONTEXT_MENU, stopNativePropagation, true); + }, + enableOnCopyByCapture: (): void => { + window.addEventListener(COPY, stopNativePropagation, true); + document.addEventListener(COPY, stopNativePropagation, true); + }, + enableOnKeyDownByCapture: (): void => { + document.addEventListener( + KEY_DOWN, + e => e.ctrlKey && e.key.toLocaleUpperCase() === "C" && e.stopPropagation(), + true + ); + }, +}; + +export default event; diff --git a/packages/copy/src/utils/helper.ts b/packages/copy/src/utils/helper.ts new file mode 100644 index 0000000..6c1a755 --- /dev/null +++ b/packages/copy/src/utils/helper.ts @@ -0,0 +1,174 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-nocheck + +// =========================================================================== // + +/** + * Scan Object + */ +const weakSet = new WeakSet(); +const pathRouter = ["root"]; +const regexp = /以熔体流动速率/; +const log = console.table; + +const isKeywords = (key, value) => { + return ( + value instanceof Node || + value instanceof Window || + key.includes("_react") || + key.includes("cssRule") || + key.includes("previousSibling") || + key.includes("nextSibling") || + key.includes("previousElementSibling") || + key.includes("nextElementSibling") + ); +}; + +const deepScanObject = (origin, deep, maxDeep) => { + if (deep > maxDeep || weakSet.has(origin) || ArrayBuffer.isView(origin)) return; + if (origin instanceof Map) origin = [...origin.entries()]; + for (const _item in origin) { + const currentPath = pathRouter.join("/") + "/" + _item; + try { + const item = String(_item); + const value = origin[item]; + if (isKeywords(item, value)) continue; + if (value && typeof value === "object") { + regexp.test(item) && log(currentPath, "===>", value); + if (weakSet.has(value)) continue; + pathRouter.push(item); + deepScanObject(value, deep + 1, maxDeep); + weakSet.add(value); + pathRouter.pop(); + } else if (regexp.test(item) || regexp.test(String(value))) { + if (typeof value === "function") continue; + log(currentPath, "===>", value); + } + } catch (e) { + log("warn", "--->", e); + } + } +}; + +deepScanObject.toString = () => ""; +log("start"); +deepScanObject(window, 0, 10); +log("finish"); + +// =========================================================================== // + +/** + * Read Clipboard + */ +setTimeout(() => { + navigator.clipboard.read().then(res => { + for (const item of res) { + const types = item.types; + for (const type of types) { + item.getType(type).then(data => { + const reader = new FileReader(); + reader.readAsText(data, "utf-8"); + reader.onload = () => { + console.info(type, reader.result); + }; + }); + } + } + }); +}, 2000); + +// =========================================================================== // + +/** + * Remove Listeners + */ +const removeAllEventListeners = (element, ancestor = false) => { + const listeners = getEventListeners(element); + Object.keys(listeners).forEach(event => { + listeners[event].forEach(listener => { + element.removeEventListener(event, listener.listener, { + capture: listener.useCapture, + once: listener.once, + passive: listener.passive, + }); + }); + }); + ancestor && element === document && window && removeAllEventListeners(window, ancestor); + ancestor && + element && + element.parentNode && + removeAllEventListeners(element.parentNode, ancestor); +}; +removeAllEventListeners($0, true); + +const elements = [...document.querySelectorAll("*")]; +for (const element of elements) { + element instanceof HTMLElement && removeAllEventListeners(element); +} + +// =========================================================================== // + +/** + * Remove Attributes + */ +const elements = [...document.querySelectorAll("*")]; +for (const element of elements) { + if (element instanceof HTMLElement) { + const attrs = element.getAttributeNames(); + attrs.forEach(item => element.removeAttribute(item)); + } +} + +// =========================================================================== // + +/** + * Hook Function Call + */ +let index = 0; +const log = window.console.log; +(function reset() { + index = 0; + setTimeout(reset, 3000); +})(); +const native = [Array.prototype.slice, Object.prototype.toString, Object.prototype.hasOwnProperty]; +Function.prototype.call = function (dynamic, ...args) { + if ( + !dynamic || + typeof dynamic !== "object" || + native.includes(this) || + !args.length || + dynamic.nodeType + ) { + return Reflect.apply(this, dynamic, args); + } + index++; + if (index < 30) { + log("__dynamic", dynamic); + log("__args", args); + log("__this", this); + } + return Reflect.apply(this, dynamic, args); +}; + +// =========================================================================== // + +/** + * Read Clipboard On Paste + */ +const input = document.createElement("input"); +input.style.position = "fixed"; +input.style.top = "100px"; +input.style.right = "10px"; +input.style.zIndex = "999999"; +input.style.width = "200px"; +input.placeholder = "Read Clipboard On Paste"; +input.addEventListener("paste", event => { + const clipboardData = event.clipboardData || window.clipboardData; + for (const item of clipboardData.items) { + console.log(`%c${item.type}`, "background-color: #165DFF; color: #fff; padding: 3px 5px;"); + console.log(item.kind === "file" ? item.getAsFile() : clipboardData.getData(item.type)); + } +}); +document.body.appendChild(input); + +// =========================================================================== // diff --git a/packages/copy/src/utils/instance.ts b/packages/copy/src/utils/instance.ts new file mode 100644 index 0000000..d528b93 --- /dev/null +++ b/packages/copy/src/utils/instance.ts @@ -0,0 +1,77 @@ +import type { CopyParams } from "./copy"; +import { copy } from "./copy"; + +class Instance { + private readonly id = "__copy"; + private readonly className = "__copy-button"; + private isReadyToHidden = false; + private dom: null | HTMLDivElement = null; + + public enable = (): void => { + const dom = this.getInstance(); + dom.style.display = "flex"; + }; + + public disable = (): void => { + const dom = this.getInstance(); + dom.style.display = "none"; + }; + + public destroy = (): void => { + const el = this.getInstance(); + el.remove(); + this.dom = null; + }; + + private init = (name?: string) => { + const container = document.createElement("div"); + container.id = this.id; + container.className = this.className; + container.innerText = name || "复制"; + container.addEventListener("mouseup", e => e.stopPropagation(), true); + container.addEventListener("mousedown", e => e.stopPropagation(), true); + this.dom = container; + document.body.appendChild(this.dom); + }; + + public getInstance = (): HTMLDivElement => { + if (this.dom === null) { + this.init(); + } + return this.dom; + }; + + public show = (event: MouseEvent): void => { + if (this.isReadyToHidden) return void 0; + const dom = this.getInstance(); + dom.style.left = `${event.pageX + 30}px`; + dom.style.top = `${event.pageY}px`; + dom.style.opacity = "1"; + dom.style.zIndex = "1000"; + }; + + public hide = (keep: number | false = 350): void => { + const dom = this.getInstance(); + dom.style.opacity = "0"; + if (keep) { + this.isReadyToHidden = true; + setTimeout(() => { + dom.style.zIndex = "-10000"; + this.isReadyToHidden = false; + }, keep); + } + }; + + public onCopy = (content: CopyParams, event: MouseEvent): void => { + const dom = this.getInstance(); + this.show(event); + dom.onclick = () => { + copy(content); + this.hide(); + }; + }; +} + +export const instance = new Instance(); + +export default instance; diff --git a/packages/copy/src/utils/is.ts b/packages/copy/src/utils/is.ts new file mode 100644 index 0000000..02ead35 --- /dev/null +++ b/packages/copy/src/utils/is.ts @@ -0,0 +1,25 @@ +const opt = Object.prototype.toString; + +export const isEmptyValue = (value: unknown): value is undefined | null => { + return value === null || value === void 0; +}; + +export function isObject(value: unknown): value is Record { + return opt.call(value) === "[object Object]"; +} + +export function isArray(value: unknown): value is unknown[] { + return opt.call(value) === "[object Array]"; +} + +export function isNumber(value: unknown): value is number { + return opt.call(value) === "[object Number]"; +} + +export function isPlainNumber(value: unknown): value is number { + return /^(-|\+)?\d+(\.\d+)?$/.test(String(value)); +} + +export function isString(value: unknown): value is string { + return opt.call(value) === "[object String]"; +} diff --git a/src/copy/src/websites.ts b/packages/copy/src/websites.ts similarity index 51% rename from src/copy/src/websites.ts rename to packages/copy/src/websites.ts index b81b236..905a4e7 100644 --- a/src/copy/src/websites.ts +++ b/packages/copy/src/websites.ts @@ -1,10 +1,11 @@ +import type { CopyParams } from "./utils/copy"; import doc88 from "./modules/doc88"; import sf from "./modules/sf"; import wk from "./modules/wk"; import zhihu from "./modules/zhihu"; -import zhihuReader from "./modules/zhihu-reader"; import edu30 from "./modules/edu30"; import docqq from "./modules/docqq"; +import qqSlider from "./modules/qq-slider"; import boke112 from "./modules/boke112"; import diyifanwen from "./modules/diyifanwen"; import mbalib from "./modules/mbalib"; @@ -21,43 +22,62 @@ import utaten from "./modules/utaten"; import baiduwk from "./modules/baiduwk"; import xiaohongshu from "./modules/xiaohongshu"; import leetcode from "./modules/leetcode"; +import csdn from "./modules/csdn"; +import bilibili from "./modules/bilibili"; +import cnki from "./modules/cnki"; +import docin from "./modules/docin"; +import youdao from "./modules/youdao"; import common from "./modules/common"; +import commonEnhance from "./modules/common-e"; +import commonPreLoad from "./modules/common-p"; +import { kdoc } from "./modules/kdocs"; export interface WebsiteConfig { - initCopyEvent?: boolean; + initCopyEvent?: boolean; + runAt?: "document-start" | "document-end"; + captureInstance?: boolean; + delay?: number; } export interface Website { - config?: WebsiteConfig; - regexp: RegExp; - init: ($: JQueryStatic) => void; - getSelectedText?: () => string; + config?: WebsiteConfig; + regexp: RegExp; + init: () => void; + getSelectedText?: () => CopyParams; } const websites: Website[] = [ - doc88, - sf, - wk, - zhihu, - zhihuReader, - edu30, - docqq, - boke112, - diyifanwen, - mbalib, - cnitpm, - mihoyo, - uemeds, - aiyuke, - qidian, - zongheng, - k17, - ciweimao, - qqbook, - utaten, - baiduwk, - xiaohongshu, - leetcode, - common, + sf, + wk, + zhihu, + edu30, + qqSlider, + docqq, + boke112, + diyifanwen, + mbalib, + cnitpm, + mihoyo, + uemeds, + aiyuke, + qidian, + zongheng, + k17, + ciweimao, + qqbook, + utaten, + baiduwk, + xiaohongshu, + doc88, + leetcode, + csdn, + bilibili, + cnki, + docin, + youdao, + kdoc, + common, + commonEnhance, + commonPreLoad, ]; export default websites; diff --git a/packages/copy/tsconfig.json b/packages/copy/tsconfig.json new file mode 100644 index 0000000..8432a29 --- /dev/null +++ b/packages/copy/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["./src/**/*.ts", "./src/**/*.tsx"] +} diff --git a/packages/devtools/README.md b/packages/devtools/README.md new file mode 100644 index 0000000..5a50873 --- /dev/null +++ b/packages/devtools/README.md @@ -0,0 +1,3 @@ +# 移除 DevTools 拦截器 + +移除调试器拦截器,防止浏览器 DevTools 被拦截。 diff --git a/packages/devtools/meta.json b/packages/devtools/meta.json new file mode 100644 index 0000000..c7c2d2f --- /dev/null +++ b/packages/devtools/meta.json @@ -0,0 +1,13 @@ +{ + "name": "Remove Debugger Interceptor", + "namespace": "https://github.com/WindrunnerMax/TKScript", + "version": "1.0.0", + "description": "移除调试器拦截器", + "author": "Czy", + "match": ["http://*/*", "https://*/*"], + "supportURL": "https://github.com/WindrunnerMax/TKScript/issues", + "license": "GPL License", + "installURL": "https://github.com/WindrunnerMax/TKScript", + "run-at": "document-start", + "grant": [ "unsafeWindow"] +} diff --git a/packages/devtools/package.json b/packages/devtools/package.json new file mode 100644 index 0000000..03d6456 --- /dev/null +++ b/packages/devtools/package.json @@ -0,0 +1,17 @@ +{ + "name": "devtools", + "version": "1.0.0", + "author": "Czy", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/WindrunnerMax/TKScript" + }, + "scripts": { + "lint:ts": "../../node_modules/typescript/bin/tsc --noEmit" + }, + "sideEffects": false, + "files": [ + "src" + ] +} diff --git a/packages/devtools/src/global.d.ts b/packages/devtools/src/global.d.ts new file mode 100644 index 0000000..0d64821 --- /dev/null +++ b/packages/devtools/src/global.d.ts @@ -0,0 +1,4 @@ +declare const unsafeWindow = window; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type Any = any; diff --git a/packages/devtools/src/index.ts b/packages/devtools/src/index.ts new file mode 100644 index 0000000..ce9b06f --- /dev/null +++ b/packages/devtools/src/index.ts @@ -0,0 +1,44 @@ +let isHooked = false; + +const InitLog = unsafeWindow.console.log; +const InitSetInterval = unsafeWindow.setInterval; +const InitCloseWindow = unsafeWindow.close; +const InitFunctionConstructor = unsafeWindow.Function.prototype.constructor; + +(unsafeWindow).logger = InitLog; + +function hookedFunctionConstructor(...args: unknown[]) { + if (args[0] == "debugger") { + return function () { + isHooked = true; + }; + } + return InitFunctionConstructor(...args); +} +unsafeWindow.Function.prototype.constructor = hookedFunctionConstructor; + +function hookedSetInterval( + callback: (...args: TArgs) => void, + ms?: number, + ...args: TArgs +) { + if (callback && callback.toString()) { + const funString = callback.toString() as string; + if ( + funString.includes("debugger") || + funString.includes("window.close") || + /\.ondevtool/i.test(funString) + ) { + isHooked = true; + return -1; + } + } + return InitSetInterval(callback, ms, ...args); +} +unsafeWindow.setInterval = hookedSetInterval as typeof setInterval; + +function hookedCloseWindow() { + if (isHooked) return void 0; + InitCloseWindow(); +} +unsafeWindow.close = hookedCloseWindow; diff --git a/packages/devtools/tsconfig.json b/packages/devtools/tsconfig.json new file mode 100644 index 0000000..8432a29 --- /dev/null +++ b/packages/devtools/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["./src/**/*.ts", "./src/**/*.tsx"] +} diff --git a/packages/expansion/README.md b/packages/expansion/README.md new file mode 100644 index 0000000..f6381b8 --- /dev/null +++ b/packages/expansion/README.md @@ -0,0 +1,3 @@ +# 自动展开阅读全文 + +展开阅读全文,用于`CSDN`、知乎。 diff --git a/packages/expansion/expansion.user.js b/packages/expansion/expansion.user.js new file mode 100644 index 0000000..4a5b76e --- /dev/null +++ b/packages/expansion/expansion.user.js @@ -0,0 +1,26 @@ +// ==UserScript== +// @name 自动阅读全文 +// @namespace https://github.com/WindrunnerMax/TKScript +// @version 1.0 +// @description try to take over the world! +// @author Czy +// @match https://blog.csdn.net/* +// @match https://www.zhihu.com/* +// @grant none +// ==/UserScript== + +function show(dom) { + dom[0] ? dom[0].click() : ""; +} + +(function () { + "use strict"; + + /* CSDN 展开阅读全文 */ + show(document.getElementsByClassName("btn-readmore")); + + /* 知乎 查看全部回答 */ + setTimeout(() => { + show(document.getElementsByClassName("QuestionMainAction ViewAll-QuestionMainAction")); + }, 1000); +})(); diff --git a/packages/expansion/package.json b/packages/expansion/package.json new file mode 100644 index 0000000..d673cbe --- /dev/null +++ b/packages/expansion/package.json @@ -0,0 +1,10 @@ +{ + "name": "expansion", + "version": "1.0.0", + "author": "Czy", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/WindrunnerMax/TKScript" + } +} diff --git a/packages/force-copy/.gitignore b/packages/force-copy/.gitignore new file mode 100644 index 0000000..f78cb99 --- /dev/null +++ b/packages/force-copy/.gitignore @@ -0,0 +1,2 @@ +build +build-gecko diff --git a/packages/force-copy/README.md b/packages/force-copy/README.md new file mode 100644 index 0000000..540990b --- /dev/null +++ b/packages/force-copy/README.md @@ -0,0 +1,31 @@ +# Force Copy + +Force Copy professionally circumvents limitations pertaining to Web Copying, Keyboard Usage, and Right-click Functionalities, facilitating an unhindered browsing experience. + +## Install + +* [Firefox Add-Ons](https://addons.mozilla.org/en-US/firefox/addon/force-copy/) +* [Chrome Web Store](https://chrome.google.com/webstore/detail/force-copy/cceclgeciefpanebkfkogecbjjchmico) +* [GitHub Releases](https://github.com/WindrunnerMax/TKScript/releases) + +## Release + +```bash +$ pnpm install +$ pnpm run build # Chromium +$ pnpm run build:gecko # Gecko +``` + +## Notice + + + +All functions of the extension are turned off by default. When you need it, click the extension program and select the corresponding module to start it. + +⭐ Start means that the domain name remains open. Even if the page is closed, it will still remain started the next time it is opened. +⭐ Once means that it will only take effect in the current Tab page. After closing the Tab page, it will remain closed the next time it is opened. Note that refreshing the page will not turn off the function. This is useful in many situations, especially in rich text editor websites. + +Open source address: https://github.com/WindrunnerMax/TKScript. + + + diff --git a/packages/force-copy/package.json b/packages/force-copy/package.json new file mode 100644 index 0000000..6899a84 --- /dev/null +++ b/packages/force-copy/package.json @@ -0,0 +1,49 @@ +{ + "name": "force-copy", + "version": "1.0.12", + "author": "Czy", + "license": "MIT", + "sideEffects": false, + "scripts": { + "dev": "cross-env NODE_ENV=development rspack build --watch", + "build": "rm -rf build && rspack build", + "dev:rollup": "cross-env NODE_ENV=development rollup -wc", + "dev:gecko": "cross-env NODE_ENV=development PLATFORM=gecko rspack build --watch", + "build:gecko": "rm -rf build-gecko && cross-env PLATFORM=gecko rspack build", + "build:zip": "mkdir -p .zip && rm -f .zip/chromium.zip && cd build && zip -r ../.zip/chromium.zip .", + "build:zip:gecko": "mkdir -p .zip && rm -f .zip/gecko.zip && cd build-gecko && zip -r ../.zip/gecko.zip .", + "lint:ts": "../../node_modules/typescript/bin/tsc --noEmit" + }, + "repository": { + "type": "git", + "url": "git://github.com/WindrunnerMax/TKScript" + }, + "dependencies": { + "@arco-design/web-react": "2.50.0", + "copy": "workspace: *", + "copy-currency": "workspace: *", + "laser-utils": "0.0.5-beta.0", + "react": "17.0.2", + "react-dom": "17.0.2" + }, + "devDependencies": { + "@rspack/cli": "0.2.5", + "@rspack/plugin-html": "0.2.5", + "@types/chrome": "0.0.287", + "@types/react": "17.0.2", + "@types/react-dom": "17.0.2", + "less": "3.0.0", + "less-loader": "6.0.0", + "sass": "1.52.3", + "sass-loader": "13.3.2", + "ts-node": "10.9.1" + }, + "lint-staged": { + "*.{js,ts,jsx,tsx}": [ + "eslint --fix" + ], + "*.{css,scss,less}": [ + "stylelint --fix" + ] + } +} diff --git a/packages/force-copy/public/locales/en/messages.json b/packages/force-copy/public/locales/en/messages.json new file mode 100644 index 0000000..21d9da7 --- /dev/null +++ b/packages/force-copy/public/locales/en/messages.json @@ -0,0 +1,5 @@ +{ + "name": { + "message": "Force Copy" + } +} diff --git a/packages/force-copy/public/locales/zh_cn/messages.json b/packages/force-copy/public/locales/zh_cn/messages.json new file mode 100644 index 0000000..21d9da7 --- /dev/null +++ b/packages/force-copy/public/locales/zh_cn/messages.json @@ -0,0 +1,5 @@ +{ + "name": { + "message": "Force Copy" + } +} diff --git a/packages/force-copy/public/misc/brick.png b/packages/force-copy/public/misc/brick.png new file mode 100644 index 0000000..406c226 Binary files /dev/null and b/packages/force-copy/public/misc/brick.png differ diff --git a/packages/force-copy/public/misc/favicon.dark.png b/packages/force-copy/public/misc/favicon.dark.png new file mode 100644 index 0000000..4710df0 Binary files /dev/null and b/packages/force-copy/public/misc/favicon.dark.png differ diff --git a/packages/force-copy/public/misc/poster.png b/packages/force-copy/public/misc/poster.png new file mode 100644 index 0000000..86c0fec Binary files /dev/null and b/packages/force-copy/public/misc/poster.png differ diff --git a/packages/force-copy/public/popup.html b/packages/force-copy/public/popup.html new file mode 100644 index 0000000..cf957dc --- /dev/null +++ b/packages/force-copy/public/popup.html @@ -0,0 +1,13 @@ + + + + + + POPUP + + + +
+ + + diff --git a/packages/force-copy/public/static/favicon.128.png b/packages/force-copy/public/static/favicon.128.png new file mode 100644 index 0000000..62e5fa4 Binary files /dev/null and b/packages/force-copy/public/static/favicon.128.png differ diff --git a/packages/force-copy/public/static/favicon.png b/packages/force-copy/public/static/favicon.png new file mode 100644 index 0000000..8c8e249 Binary files /dev/null and b/packages/force-copy/public/static/favicon.png differ diff --git a/packages/force-copy/rspack.config.js b/packages/force-copy/rspack.config.js new file mode 100644 index 0000000..f4e1532 --- /dev/null +++ b/packages/force-copy/rspack.config.js @@ -0,0 +1,105 @@ +const path = require("path"); +const { FilesPlugin } = require("./script/files"); +const { ReloadPlugin } = require("./script/reload"); +const { ManifestPlugin } = require("./script/manifest"); +const { WrapperCodePlugin } = require("./script/wrapper"); +const { default: HtmlPlugin } = require("@rspack/plugin-html"); +const { getUniqueId, IS_DEV, IS_GECKO } = require("./script/utils/node"); + +const folder = IS_GECKO ? "build-gecko" : "build"; +const EVENT_TYPE = IS_DEV ? "EVENT_TYPE" : getUniqueId(); +const INJECT_FILE = IS_DEV ? "INJECT_FILE" : getUniqueId(); + +process.env.EVENT_TYPE = EVENT_TYPE; +process.env.INJECT_FILE = INJECT_FILE; +process.env.PLATFORM = process.env.PLATFORM || "chromium"; + +/** + * @type {import("@rspack/cli").Configuration} + */ +module.exports = { + context: __dirname, + entry: { + popup: "./src/popup/index.tsx", + content: "./src/content/index.ts", + worker: "./src/worker/index.ts", + [INJECT_FILE]: "./src/inject/index.ts", + }, + plugins: [ + new HtmlPlugin({ + filename: "popup.html", + template: "./public/popup.html", + inject: false, + }), + new FilesPlugin(), + new ReloadPlugin(), + new ManifestPlugin(), + new WrapperCodePlugin(), + ], + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, + builtins: { + define: { + "__DEV__": JSON.stringify(IS_DEV), + "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV), + "process.env.PLATFORM": JSON.stringify(process.env.PLATFORM), + "process.env.EVENT_TYPE": JSON.stringify(process.env.EVENT_TYPE), + "process.env.INJECT_FILE": JSON.stringify(process.env.INJECT_FILE), + }, + pluginImport: [ + { + libraryName: "@arco-design/web-react", + customName: "@arco-design/web-react/es/{{ member }}", + style: true, + }, + ], + }, + module: { + rules: [ + { test: /\.svg$/, type: "asset" }, + { + test: /\.(m|module).scss$/, + use: [{ loader: "sass-loader" }], + type: "css/module", + }, + { + test: /\.less$/, + use: [ + { + loader: "less-loader", + options: { + lessOptions: { + javascriptEnabled: true, + importLoaders: true, + localIdentName: "[name]__[hash:base64:5]", + }, + }, + }, + ], + type: "css", + }, + { + test: /\.(jsx?|tsx?)$/, + use: [ + { + loader: "./script/if-def", + options: { + // debug: true, + }, + }, + ], + }, + ], + }, + output: { + publicPath: "/", + filename: "[name].js", + path: path.resolve(__dirname, folder), + }, + devtool: false, +}; + +// https://www.rspack.dev/ diff --git a/packages/force-copy/script/files/index.js b/packages/force-copy/script/files/index.js new file mode 100644 index 0000000..5428292 --- /dev/null +++ b/packages/force-copy/script/files/index.js @@ -0,0 +1,43 @@ +const thread = require("child_process"); +const path = require("path"); +const fs = require("fs/promises"); +const { IS_GECKO } = require("../utils/node"); + +const exec = command => { + return new Promise((resolve, reject) => { + thread.exec(command, (err, stdout) => { + if (err) reject(err); + resolve(stdout); + }); + }); +}; + +exports.FilesPlugin = class FilesPlugin { + constructor() { + const folder = IS_GECKO ? "build-gecko" : "build"; + fs.mkdir(`${folder}/static`, { recursive: true }); + fs.mkdir(`${folder}/_locales`, { recursive: true }); + } + + apply(compiler) { + compiler.hooks.make.tap("FilesPlugin", compilation => { + const resources = path.resolve("public/static"); + !compilation.contextDependencies.has(resources) && + compilation.contextDependencies.add(resources); + }); + + compiler.hooks.done.tapPromise("FilesPlugin", () => { + const locales = path.resolve("public/locales"); + const resources = path.resolve("public/static"); + + const folder = IS_GECKO ? "build-gecko" : "build"; + const localesTarget = path.resolve(`${folder}/_locales`); + const resourcesTarget = path.resolve(`${folder}/static`); + + return Promise.all([ + exec(`cp -r ${locales}/* ${localesTarget}`), + exec(`cp -r ${resources}/* ${resourcesTarget}`), + ]); + }); + } +}; diff --git a/packages/force-copy/script/if-def/if-def.code-snippets b/packages/force-copy/script/if-def/if-def.code-snippets new file mode 100644 index 0000000..e8e7dd2 --- /dev/null +++ b/packages/force-copy/script/if-def/if-def.code-snippets @@ -0,0 +1,8 @@ +{ + "if-def-code-snippet": { + "scope": "javascript,typescript,javascriptreact,typescriptreact", + "prefix": "#IFDEF", + "body": ["// #IFDEF ${1:PLATFORM}", "$0", "// #ENDIF"], + "description": "IFDEF --- ENDIF" + } +} diff --git a/packages/force-copy/script/if-def/index.js b/packages/force-copy/script/if-def/index.js new file mode 100644 index 0000000..fbc381d --- /dev/null +++ b/packages/force-copy/script/if-def/index.js @@ -0,0 +1,103 @@ +const path = require("path"); +const fs = require("fs"); + +// 条件编译: process.env.PLATFORM 的深层次嵌套 +// #IFDEF #ENDIF: C/C++ 预处理指令 平台层面扩展性 + +/** + * @this {import("@rspack/core").LoaderContext} + * @param {string} source + * @returns {string} + */ +function IfDefineLoader(source) { + // 检查参数配置 + /** @type {boolean} */ + const debug = this.query.debug || false; + /** @type {(string|RegExp)[]} */ + const include = this.query.include || [path.resolve("src")]; + /** @type {(string|RegExp)[]} */ + const exclude = this.query.exclude || [/node_modules/]; + /** @type {string} */ + const envKey = this.query.platform || "PLATFORM"; + + // 过滤资源路径 + let hit = false; + const resourcePath = this.resourcePath; + for (const includeConfig of include) { + const verified = + includeConfig instanceof RegExp + ? includeConfig.test(resourcePath) + : resourcePath.startsWith(includeConfig); + if (verified) { + hit = true; + break; + } + } + for (const excludeConfig of exclude) { + const verified = + excludeConfig instanceof RegExp + ? excludeConfig.test(resourcePath) + : resourcePath.startsWith(excludeConfig); + if (verified) { + hit = false; + break; + } + } + if (debug && hit) { + console.log("if-def-loader hit path", resourcePath); + } + if (!hit) return source; + + // 迭代时控制该行是否命中预处理条件 + const platform = (process.env[envKey] || "").toLowerCase(); + let terser = false; + let revised = false; + let terserIndex = -1; + /** @type {number[]} */ + const stack = []; + const lines = source.split("\n"); + const target = lines.map((line, index) => { + // 去掉首尾的空白 去掉行首注释符号与空白符(可选) + const code = line.trim().replace(/^\/\/\s*/, ""); + // 检查预处理指令起始 #IFDEF 只会置 true + if (/^#IFDEF/.test(code)) { + stack.push(index); + // 如果是 true 继续即可 + if (terser) return ""; + const match = code.replace("#IFDEF", "").trim(); + const group = match.split("|").map(item => item.trim().toLowerCase()); + if (group.indexOf(platform) === -1) { + terser = true; + revised = true; + terserIndex = index; + } + return ""; + } + // 检查预处理指令结束 #IFDEF 只会置 false + if (/^#ENDIF$/.test(code)) { + const index = stack.pop(); + // 额外的 #ENDIF 忽略 + if (index === undefined) return ""; + if (index === terserIndex) { + terser = false; + terserIndex = -1; + } + return ""; + } + // 如果命中预处理条件则擦除 + if (terser) return ""; + return line; + }); + + // 测试文件复写 + if (debug && revised) { + // rm -rf ./**/*.log + console.log("if-def-loader revise path", resourcePath); + fs.writeFile(resourcePath + ".log", target.join("\n"), () => null); + } + + // 返回处理结果 + return target.join("\n"); +} + +module.exports = IfDefineLoader; diff --git a/packages/force-copy/script/if-def/package.json b/packages/force-copy/script/if-def/package.json new file mode 100644 index 0000000..1a48dc5 --- /dev/null +++ b/packages/force-copy/script/if-def/package.json @@ -0,0 +1,32 @@ +{ + "name": "if-def-processor", + "version": "1.0.3", + "files": [ + "index.js", + "*.code-snippets" + ], + "main": "index.js", + "sideEffects": false, + "author": "Czy", + "license": "MIT", + "description": "Rspack/Webpack if-def predefined syntax loader", + "scripts": { + "publish:main": "npm publish --registry=https://registry.npmjs.org/", + "publish:test": "npm publish --registry=https://registry.npmjs.org/ --dry-run" + }, + "bugs": { + "url": "https://github.com/WindrunnerMax/TKScript/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/WindrunnerMax/TKScript" + }, + "homepage": "https://github.com/WindrunnerMax/TKScript", + "keywords": [ + "if-def", + "rspack", + "loader" + ], + "dependencies": {}, + "devDependencies": {} +} diff --git a/packages/force-copy/script/manifest/index.js b/packages/force-copy/script/manifest/index.js new file mode 100644 index 0000000..90c80a0 --- /dev/null +++ b/packages/force-copy/script/manifest/index.js @@ -0,0 +1,29 @@ +const path = require("path"); +const tsNode = require("ts-node"); +const fs = require("fs"); +const { promisify, IS_GECKO } = require("../utils/node"); + +const writeFile = promisify(fs.writeFile); + +exports.ManifestPlugin = class ManifestPlugin { + constructor() { + tsNode.register(); + this.manifest = path.resolve(`src/manifest/index.ts`); + } + + apply(compiler) { + compiler.hooks.make.tap("ManifestPlugin", compilation => { + const manifest = this.manifest; + !compilation.fileDependencies.has(manifest) && compilation.fileDependencies.add(manifest); + }); + + compiler.hooks.done.tapPromise("ManifestPlugin", () => { + delete require.cache[require.resolve(this.manifest)]; + const manifest = require(this.manifest); + const version = require(path.resolve("package.json")).version; + manifest.version = version; + const folder = IS_GECKO ? "build-gecko" : "build"; + return writeFile(path.resolve(`${folder}/manifest.json`), JSON.stringify(manifest, null, 2)); + }); + } +}; diff --git a/packages/force-copy/script/reload/index.js b/packages/force-copy/script/reload/index.js new file mode 100644 index 0000000..1726b38 --- /dev/null +++ b/packages/force-copy/script/reload/index.js @@ -0,0 +1,29 @@ +const { IS_DEV } = require("../utils/node"); +const WebSocketServer = require("ws").Server; + +/** + * @type {import("ws").WebSocket | null} + */ +let wsClient = null; + +exports.ReloadPlugin = class ReloadPlugin { + constructor() { + if (IS_DEV) { + try { + const server = new WebSocketServer({ port: 3333 }); + server.on("connection", client => { + wsClient && wsClient.close(); + wsClient = client; + console.log("Client Connected"); + }); + } catch (error) { + console.log("Auto Reload Server Error", error); + } + } + } + apply(compiler) { + compiler.hooks.afterDone.tap("ReloadPlugin", () => { + wsClient && wsClient.send("reload-app"); + }); + } +}; diff --git a/packages/force-copy/script/utils/node.js b/packages/force-copy/script/utils/node.js new file mode 100644 index 0000000..391509c --- /dev/null +++ b/packages/force-copy/script/utils/node.js @@ -0,0 +1,31 @@ +const IS_DEV = process.env.NODE_ENV === "development"; +const IS_PROD = process.env.NODE_ENV === "production"; +const IS_GECKO = process.env.PLATFORM === "gecko"; +const IS_CHROMIUM = process.env.PLATFORM ? process.env.PLATFORM === "chromium" : true; +const CHARTS = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm0123456789"; + +exports.IS_DEV = IS_DEV; +exports.IS_PROD = IS_PROD; +exports.IS_GECKO = IS_GECKO; +exports.IS_CHROMIUM = IS_CHROMIUM; + +const getUniqueId = (len = 10) => { + const chars = new Array(len - 1).fill(""); + return ( + CHARTS[Math.floor(Math.random() * 52)] + + chars.map(() => CHARTS[Math.floor(Math.random() * CHARTS.length)]).join("") + ); +}; + +const promisify = fn => { + return (...args) => + new Promise((resolve, reject) => { + fn(...args, (err, res) => { + if (err) reject(err); + else resolve(res); + }); + }); +}; + +exports.promisify = promisify; +exports.getUniqueId = getUniqueId; diff --git a/packages/force-copy/script/wrapper/index.js b/packages/force-copy/script/wrapper/index.js new file mode 100644 index 0000000..d2038aa --- /dev/null +++ b/packages/force-copy/script/wrapper/index.js @@ -0,0 +1,49 @@ +const { IS_CHROMIUM } = require("../utils/node"); +const crypto = require("crypto"); + +exports.WrapperCodePlugin = class WrapperCodePlugin { + constructor(options) { + this.options = options || {}; + } + apply(compiler) { + if (IS_CHROMIUM) return void 0; + compiler.hooks.emit.tapAsync("WrapperCodePlugin", (compilation, done) => { + const injectKey = process.env.INJECT_FILE + ".js"; + const injectFile = compilation.assets[injectKey]; + const workerKey = "worker.js"; + const workerFile = compilation.assets[workerKey]; + if (injectFile) { + // 处理 Inject Script + const buffer = injectFile.source(); + const code = buffer.toString("utf-8"); + const source = `window.${process.env.INJECT_FILE}=function(){${code}}`; + compilation.assets[injectKey] = { + source() { + return source; + }, + size() { + return this.source().length; + }, + }; + // 处理 Worker Script + if (workerFile) { + const workerBuffer = workerFile.source(); + const workerCode = workerBuffer.toString("utf-8"); + const hash = crypto.createHash("sha256"); + hash.update(`;(function(){${code}})();`); + const hashed = hash.digest("base64"); + const nonCSP = workerCode.replace("${CSP-HASH}", hashed); + compilation.assets[workerKey] = { + source() { + return nonCSP; + }, + size() { + return this.source().length; + }, + }; + } + } + done(); + }); + } +}; diff --git a/packages/force-copy/src/bridge/content-inject/constant.ts b/packages/force-copy/src/bridge/content-inject/constant.ts new file mode 100644 index 0000000..4377329 --- /dev/null +++ b/packages/force-copy/src/bridge/content-inject/constant.ts @@ -0,0 +1,2 @@ +export const MARK = "CI" as const; +export const EVENT_TYPE = process.env.EVENT_TYPE || "EVENT_TYPE_CI"; diff --git a/packages/force-copy/src/bridge/content-inject/index.ts b/packages/force-copy/src/bridge/content-inject/index.ts new file mode 100644 index 0000000..468a93d --- /dev/null +++ b/packages/force-copy/src/bridge/content-inject/index.ts @@ -0,0 +1,33 @@ +import { decodeJSON, encodeJSON, isUndefined } from "laser-utils"; +import type { CIRequestType } from "./request"; +import { CONTENT_TO_INJECT_REQUEST } from "./request"; +import { EVENT_TYPE, MARK } from "./constant"; + +export class CIBridge { + public static readonly REQUEST = CONTENT_TO_INJECT_REQUEST; + + static postToInject(data: CIRequestType) { + window.dispatchEvent(new CustomEvent(EVENT_TYPE, { detail: encodeJSON(data) })); + } + + static onContentMessage(cb: (data: CIRequestType) => void) { + const handler = (event: CustomEvent) => { + const data = decodeJSON(event.detail); + if (data && data.type && !isUndefined(data.payload)) { + cb(data); + } + }; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + window.addEventListener(EVENT_TYPE, handler); + return () => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + window.removeEventListener(EVENT_TYPE, handler); + }; + } + + static isCIRequestType(data: CIRequestType): data is CIRequestType { + return data && data.type && data.type.endsWith(`__${MARK}__`); + } +} diff --git a/packages/force-copy/src/bridge/content-inject/request.ts b/packages/force-copy/src/bridge/content-inject/request.ts new file mode 100644 index 0000000..c753c91 --- /dev/null +++ b/packages/force-copy/src/bridge/content-inject/request.ts @@ -0,0 +1,36 @@ +import type { Reflex, Object } from "@/utils/types"; +import { MARK } from "./constant"; + +const CI_REQUEST_ENUM = [ + "COPY_TYPE", + "KEYBOARD_TYPE", + "CONTEXT_MENU_TYPE", + "DEBUG_MOUSE_EVENT", + "DEBUG_FOCUS_EVENT", + "DEBUG_EDITABLE", + "DEBUG_PASTE", +] as const; + +export const CONTENT_TO_INJECT_REQUEST = CI_REQUEST_ENUM.reduce( + (acc, cur) => ({ ...acc, [cur]: `__${cur}__${MARK}__` }), + {} as { [K in typeof CI_REQUEST_ENUM[number]]: `__${K}__${typeof MARK}__` } +); + +export const CI_EXECUTION_ENUM = { + START: "START", + CLOSE: "CLOSE", +} as const; + +export type CIExecutionType = Object.Values; + +export type EventMap = { + [CONTENT_TO_INJECT_REQUEST.COPY_TYPE]: CIExecutionType; + [CONTENT_TO_INJECT_REQUEST.KEYBOARD_TYPE]: CIExecutionType; + [CONTENT_TO_INJECT_REQUEST.CONTEXT_MENU_TYPE]: CIExecutionType; + [CONTENT_TO_INJECT_REQUEST.DEBUG_MOUSE_EVENT]: null; + [CONTENT_TO_INJECT_REQUEST.DEBUG_FOCUS_EVENT]: null; + [CONTENT_TO_INJECT_REQUEST.DEBUG_EDITABLE]: null; + [CONTENT_TO_INJECT_REQUEST.DEBUG_PASTE]: null; +}; + +export type CIRequestType = Reflex.Tuple; diff --git a/packages/force-copy/src/bridge/content-worker/constant.ts b/packages/force-copy/src/bridge/content-worker/constant.ts new file mode 100644 index 0000000..54af075 --- /dev/null +++ b/packages/force-copy/src/bridge/content-worker/constant.ts @@ -0,0 +1 @@ +export const MARK = "CW" as const; diff --git a/packages/force-copy/src/bridge/content-worker/index.ts b/packages/force-copy/src/bridge/content-worker/index.ts new file mode 100644 index 0000000..4ac1846 --- /dev/null +++ b/packages/force-copy/src/bridge/content-worker/index.ts @@ -0,0 +1,37 @@ +import { cross } from "@/utils/global"; +import type { CWRequestType } from "./request"; +import { CONTENT_TO_WORKER_REQUEST } from "./request"; +import { MARK } from "./constant"; + +export class CWBridge { + public static readonly REQUEST = CONTENT_TO_WORKER_REQUEST; + + static async postToWorker(data: CWRequestType) { + return new Promise(resolve => { + if (cross.runtime.id) { + cross.runtime.sendMessage(data).then(resolve); + } else { + resolve(null); + } + }); + } + + static onContentMessage(cb: (data: CWRequestType, sender: chrome.runtime.MessageSender) => null) { + const handler = ( + message: CWRequestType, + sender: chrome.runtime.MessageSender, + sendResponse: (response?: null) => void + ) => { + const rtn = cb(message, sender); + sendResponse(rtn || null); + }; + cross.runtime.onMessage.addListener(handler); + return () => { + cross.runtime.onMessage.removeListener(handler); + }; + } + + static isCWRequestType(data: CWRequestType): data is CWRequestType { + return data && data.type && data.type.endsWith(`__${MARK}__`); + } +} diff --git a/packages/force-copy/src/bridge/content-worker/request.ts b/packages/force-copy/src/bridge/content-worker/request.ts new file mode 100644 index 0000000..dacdc7a --- /dev/null +++ b/packages/force-copy/src/bridge/content-worker/request.ts @@ -0,0 +1,15 @@ +import type { Reflex } from "@/utils/types"; +import { MARK } from "./constant"; + +const CW_REQUEST_TYPE = ["RELOAD", "SET_BADGE"] as const; +export const CONTENT_TO_WORKER_REQUEST = CW_REQUEST_TYPE.reduce( + (acc, cur) => ({ ...acc, [cur]: `__${cur}__${MARK}__` }), + {} as { [K in typeof CW_REQUEST_TYPE[number]]: `__${K}__${typeof MARK}__` } +); + +type EventMap = { + [CONTENT_TO_WORKER_REQUEST.RELOAD]: null; + [CONTENT_TO_WORKER_REQUEST.SET_BADGE]: number; +}; + +export type CWRequestType = Reflex.Tuple; diff --git a/packages/force-copy/src/bridge/popup-content/constant.ts b/packages/force-copy/src/bridge/popup-content/constant.ts new file mode 100644 index 0000000..ef56b95 --- /dev/null +++ b/packages/force-copy/src/bridge/popup-content/constant.ts @@ -0,0 +1 @@ +export const MARK = "PC" as const; diff --git a/packages/force-copy/src/bridge/popup-content/index.ts b/packages/force-copy/src/bridge/popup-content/index.ts new file mode 100644 index 0000000..0531e6f --- /dev/null +++ b/packages/force-copy/src/bridge/popup-content/index.ts @@ -0,0 +1,55 @@ +import { cross } from "@/utils/global"; +import { isEmptyValue } from "laser-utils"; +import { logger } from "@/utils/logger"; +import { URL_MATCH } from "@/utils/constant"; +import type { PCRequestType } from "./request"; +import { POPUP_TO_CONTENT_REQUEST } from "./request"; +import type { PCResponseType } from "./response"; +import { MARK } from "./constant"; + +export class PCBridge { + public static readonly REQUEST = POPUP_TO_CONTENT_REQUEST; + + static async postToContent(data: PCRequestType) { + return new Promise(resolve => { + cross.tabs + .query({ active: true, currentWindow: true }) + .then(tabs => { + const tab = tabs[0]; + const tabId = tab && tab.id; + const tabURL = tab && tab.url; + if (tabURL && !URL_MATCH.some(match => new RegExp(match).test(tabURL))) { + resolve(null); + return void 0; + } + if (!isEmptyValue(tabId)) { + cross.tabs.sendMessage(tabId, data).then(resolve); + } else { + resolve(null); + } + }) + .catch(error => { + logger.warning("Send Message Error", error); + }); + }); + } + + static onPopupMessage(cb: (data: PCRequestType) => void | PCResponseType) { + const handler = ( + request: PCRequestType, + _: chrome.runtime.MessageSender, + sendResponse: (response: PCResponseType | null) => void + ) => { + const response = cb(request); + response && response.type === request.type && sendResponse(response); + }; + cross.runtime.onMessage.addListener(handler); + return () => { + cross.runtime.onMessage.removeListener(handler); + }; + } + + static isPCRequestType(data: PCRequestType): data is PCRequestType { + return data && data.type && data.type.endsWith(`__${MARK}__`); + } +} diff --git a/packages/force-copy/src/bridge/popup-content/request.ts b/packages/force-copy/src/bridge/popup-content/request.ts new file mode 100644 index 0000000..ebcc989 --- /dev/null +++ b/packages/force-copy/src/bridge/popup-content/request.ts @@ -0,0 +1,31 @@ +import type { Reflex } from "@/utils/types"; +import { MARK } from "./constant"; + +const PC_REQUEST_TYPE = [ + "COPY_TYPE", + "KEYBOARD_TYPE", + "CONTEXT_MENU_TYPE", + "QUERY_STATE", + "DEBUG_MOUSE_EVENT", + "DEBUG_FOCUS_EVENT", + "DEBUG_EDITABLE", + "DEBUG_PASTE_EVENT", +] as const; + +export const POPUP_TO_CONTENT_REQUEST = PC_REQUEST_TYPE.reduce( + (acc, cur) => ({ ...acc, [cur]: `__${cur}__${MARK}__` }), + {} as { [K in typeof PC_REQUEST_TYPE[number]]: `__${K}__${typeof MARK}__` } +); + +type EventMap = { + [POPUP_TO_CONTENT_REQUEST.COPY_TYPE]: { checked: boolean; once: boolean }; + [POPUP_TO_CONTENT_REQUEST.KEYBOARD_TYPE]: { checked: boolean; once: boolean }; + [POPUP_TO_CONTENT_REQUEST.CONTEXT_MENU_TYPE]: { checked: boolean; once: boolean }; + [POPUP_TO_CONTENT_REQUEST.QUERY_STATE]: null; + [POPUP_TO_CONTENT_REQUEST.DEBUG_MOUSE_EVENT]: null; + [POPUP_TO_CONTENT_REQUEST.DEBUG_FOCUS_EVENT]: null; + [POPUP_TO_CONTENT_REQUEST.DEBUG_EDITABLE]: null; + [POPUP_TO_CONTENT_REQUEST.DEBUG_PASTE_EVENT]: null; +}; + +export type PCRequestType = Reflex.Tuple; diff --git a/packages/force-copy/src/bridge/popup-content/response.ts b/packages/force-copy/src/bridge/popup-content/response.ts new file mode 100644 index 0000000..7734325 --- /dev/null +++ b/packages/force-copy/src/bridge/popup-content/response.ts @@ -0,0 +1,19 @@ +import type { Reflex, Object } from "@/utils/types"; +import type { POPUP_TO_CONTENT_REQUEST } from "./request"; + +export const PC_QUERY_STATE_ENUM = { + COPY: "COPY", + MENU: "MENU", + KEYBOARD: "KEYBOARD", + COPY_ONCE: "COPY_ONCE", + MENU_ONCE: "MENU_ONCE", + KEYBOARD_ONCE: "KEYBOARD_ONCE", +} as const; + +export type PCQueryStateType = Object.Values; + +type EventMap = { + [POPUP_TO_CONTENT_REQUEST.QUERY_STATE]: { [K in PCQueryStateType]: boolean }; +}; + +export type PCResponseType = Reflex.Tuple; diff --git a/packages/force-copy/src/bridge/popup-worker/constant.ts b/packages/force-copy/src/bridge/popup-worker/constant.ts new file mode 100644 index 0000000..63c7021 --- /dev/null +++ b/packages/force-copy/src/bridge/popup-worker/constant.ts @@ -0,0 +1 @@ +export const MARK = "PW" as const; diff --git a/packages/force-copy/src/bridge/popup-worker/index.ts b/packages/force-copy/src/bridge/popup-worker/index.ts new file mode 100644 index 0000000..0daea7f --- /dev/null +++ b/packages/force-copy/src/bridge/popup-worker/index.ts @@ -0,0 +1,37 @@ +import { cross } from "@/utils/global"; +import type { PWRequestType } from "./request"; +import { POPUP_TO_WORKER_REQUEST } from "./request"; +import { MARK } from "./constant"; + +export class PWBridge { + public static readonly REQUEST = POPUP_TO_WORKER_REQUEST; + + static async postToWorker(data: PWRequestType) { + return new Promise(resolve => { + if (cross.runtime.id) { + cross.runtime.sendMessage(data).then(resolve); + } else { + resolve(null); + } + }); + } + + static onPopupMessage(cb: (data: PWRequestType, sender: chrome.runtime.MessageSender) => null) { + const handler = ( + message: PWRequestType, + sender: chrome.runtime.MessageSender, + sendResponse: (response?: null) => void + ) => { + const rtn = cb(message, sender); + sendResponse(rtn || null); + }; + cross.runtime.onMessage.addListener(handler); + return () => { + cross.runtime.onMessage.removeListener(handler); + }; + } + + static isPWRequestType(data: PWRequestType): data is PWRequestType { + return data && data.type && data.type.endsWith(`__${MARK}__`); + } +} diff --git a/packages/force-copy/src/bridge/popup-worker/request.ts b/packages/force-copy/src/bridge/popup-worker/request.ts new file mode 100644 index 0000000..ac4d0c9 --- /dev/null +++ b/packages/force-copy/src/bridge/popup-worker/request.ts @@ -0,0 +1,17 @@ +import type { Reflex } from "@/utils/types"; +import { MARK } from "./constant"; + +const PW_REQUEST_TYPE = ["RELOAD", "__"] as const; +export const POPUP_TO_WORKER_REQUEST = PW_REQUEST_TYPE.reduce( + (acc, cur) => ({ ...acc, [cur]: `__${cur}__${MARK}__` }), + {} as { [K in typeof PW_REQUEST_TYPE[number]]: `__${K}__${typeof MARK}__` } +); + +export type PWRequestMap = { + [POPUP_TO_WORKER_REQUEST.RELOAD]: null; + [POPUP_TO_WORKER_REQUEST.__]: null; +}; + +export type PWRequestType = Reflex.Tuple; + +export type PWRequestArgs = Reflex.Array; diff --git a/packages/force-copy/src/bridge/worker-content/constant.ts b/packages/force-copy/src/bridge/worker-content/constant.ts new file mode 100644 index 0000000..780e4c0 --- /dev/null +++ b/packages/force-copy/src/bridge/worker-content/constant.ts @@ -0,0 +1 @@ +export const MARK = "WC" as const; diff --git a/packages/force-copy/src/bridge/worker-content/index.ts b/packages/force-copy/src/bridge/worker-content/index.ts new file mode 100644 index 0000000..a9412a5 --- /dev/null +++ b/packages/force-copy/src/bridge/worker-content/index.ts @@ -0,0 +1,55 @@ +import { isEmptyValue } from "laser-utils"; + +import { URL_MATCH } from "@/utils/constant"; +import { cross } from "@/utils/global"; +import { logger } from "@/utils/logger"; +import type { WCRequestType } from "./request"; +import { POPUP_TO_CONTENT_REQUEST } from "./request"; +import { MARK } from "./constant"; + +export class WCBridge { + public static readonly REQUEST = POPUP_TO_CONTENT_REQUEST; + + static async postToContent(data: WCRequestType) { + return new Promise(resolve => { + cross.tabs + .query({ active: true, currentWindow: true }) + .then(tabs => { + const tab = tabs[0]; + const tabId = tab && tab.id; + const tabURL = tab && tab.url; + if (tabURL && !URL_MATCH.some(match => new RegExp(match).test(tabURL))) { + resolve(null); + return void 0; + } + if (!isEmptyValue(tabId)) { + cross.tabs.sendMessage(tabId, data).then(resolve); + } else { + resolve(null); + } + }) + .catch(error => { + logger.warning("Send Message Error", error); + }); + }); + } + + static onWorkerMessage(cb: (data: WCRequestType) => void | null) { + const handler = ( + message: WCRequestType, + _: chrome.runtime.MessageSender, + sendResponse: (response?: void) => void + ) => { + const rtn = cb(message); + rtn && sendResponse(rtn); + }; + cross.runtime.onMessage.addListener(handler); + return () => { + cross.runtime.onMessage.removeListener(handler); + }; + } + + static isWCRequestType(data: WCRequestType): data is WCRequestType { + return data && data.type && data.type.endsWith(`__${MARK}__`); + } +} diff --git a/packages/force-copy/src/bridge/worker-content/request.ts b/packages/force-copy/src/bridge/worker-content/request.ts new file mode 100644 index 0000000..13acb06 --- /dev/null +++ b/packages/force-copy/src/bridge/worker-content/request.ts @@ -0,0 +1,14 @@ +import type { Reflex } from "@/utils/types"; +import { MARK } from "./constant"; + +const WC_REQUEST_TYPE = ["DATA", "__"] as const; +export const POPUP_TO_CONTENT_REQUEST = WC_REQUEST_TYPE.reduce( + (acc, cur) => ({ ...acc, [cur]: `__${cur}__${MARK}__` }), + {} as { [K in typeof WC_REQUEST_TYPE[number]]: `__${K}__${typeof MARK}__` } +); + +type EventMap = { + [POPUP_TO_CONTENT_REQUEST.DATA]: string; +}; + +export type WCRequestType = Reflex.Tuple; diff --git a/packages/force-copy/src/content/channel/popup.ts b/packages/force-copy/src/content/channel/popup.ts new file mode 100644 index 0000000..9b9670b --- /dev/null +++ b/packages/force-copy/src/content/channel/popup.ts @@ -0,0 +1,95 @@ +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import { isInIframe } from "@/utils/is"; +import { logger } from "@/utils/logger"; +import { Storage } from "laser-utils"; +import { CI_EXECUTION_ENUM } from "@/bridge/content-inject/request"; +import type { PCRequestType } from "@/bridge/popup-content/request"; +import { POPUP_TO_CONTENT_REQUEST } from "@/bridge/popup-content/request"; +import { CIBridge } from "@/bridge/content-inject"; +import { CONTENT_TO_INJECT_REQUEST } from "@/bridge/content-inject/request"; +import { PC_QUERY_STATE_ENUM } from "@/bridge/popup-content/response"; +import { PCBridge } from "@/bridge/popup-content"; + +export const onPopupMessage = (data: PCRequestType) => { + logger.info("Content Receive Popup Message", location.host, data); + switch (data.type) { + case POPUP_TO_CONTENT_REQUEST.COPY_TYPE: { + CIBridge.postToInject({ + type: CONTENT_TO_INJECT_REQUEST.COPY_TYPE, + payload: data.payload.checked ? CI_EXECUTION_ENUM.START : CI_EXECUTION_ENUM.CLOSE, + }); + if (!data.payload.once) { + Storage.local.set(COPY_TYPE, data.payload.checked); + } else { + Storage.session.set(COPY_TYPE, data.payload.checked); + } + break; + } + case POPUP_TO_CONTENT_REQUEST.KEYBOARD_TYPE: { + CIBridge.postToInject({ + type: CONTENT_TO_INJECT_REQUEST.KEYBOARD_TYPE, + payload: data.payload.checked ? CI_EXECUTION_ENUM.START : CI_EXECUTION_ENUM.CLOSE, + }); + if (!data.payload.once) { + Storage.local.set(KEYBOARD_TYPE, data.payload.checked); + } else { + Storage.session.set(KEYBOARD_TYPE, data.payload.checked); + } + break; + } + case POPUP_TO_CONTENT_REQUEST.CONTEXT_MENU_TYPE: { + CIBridge.postToInject({ + type: CONTENT_TO_INJECT_REQUEST.CONTEXT_MENU_TYPE, + payload: data.payload.checked ? CI_EXECUTION_ENUM.START : CI_EXECUTION_ENUM.CLOSE, + }); + if (!data.payload.once) { + Storage.local.set(CONTEXT_MENU_TYPE, data.payload.checked); + } else { + Storage.session.set(CONTEXT_MENU_TYPE, data.payload.checked); + } + break; + } + case POPUP_TO_CONTENT_REQUEST.QUERY_STATE: { + if (isInIframe) break; + return { + type: data.type, + payload: { + [PC_QUERY_STATE_ENUM.COPY]: !!Storage.local.get(COPY_TYPE), + [PC_QUERY_STATE_ENUM.MENU]: !!Storage.local.get(CONTEXT_MENU_TYPE), + [PC_QUERY_STATE_ENUM.KEYBOARD]: !!Storage.local.get(KEYBOARD_TYPE), + [PC_QUERY_STATE_ENUM.COPY_ONCE]: !!Storage.session.get(COPY_TYPE), + [PC_QUERY_STATE_ENUM.MENU_ONCE]: !!Storage.session.get(CONTEXT_MENU_TYPE), + [PC_QUERY_STATE_ENUM.KEYBOARD_ONCE]: !!Storage.session.get(KEYBOARD_TYPE), + }, + }; + } + case PCBridge.REQUEST.DEBUG_MOUSE_EVENT: { + CIBridge.postToInject({ + type: CIBridge.REQUEST.DEBUG_MOUSE_EVENT, + payload: null, + }); + break; + } + case PCBridge.REQUEST.DEBUG_FOCUS_EVENT: { + CIBridge.postToInject({ + type: CIBridge.REQUEST.DEBUG_FOCUS_EVENT, + payload: null, + }); + break; + } + case PCBridge.REQUEST.DEBUG_EDITABLE: { + CIBridge.postToInject({ + type: CIBridge.REQUEST.DEBUG_EDITABLE, + payload: null, + }); + break; + } + case PCBridge.REQUEST.DEBUG_PASTE_EVENT: { + CIBridge.postToInject({ + type: CIBridge.REQUEST.DEBUG_PASTE, + payload: null, + }); + break; + } + } +}; diff --git a/packages/force-copy/src/content/index.ts b/packages/force-copy/src/content/index.ts new file mode 100644 index 0000000..0ae4314 --- /dev/null +++ b/packages/force-copy/src/content/index.ts @@ -0,0 +1,18 @@ +import { PCBridge } from "@/bridge/popup-content"; +import { onReceiveReloadMsg } from "../utils/reload"; +import { onPopupMessage } from "./channel/popup"; +import { LOG_LEVEL, logger } from "@/utils/logger"; +import { initializeWorker } from "./runtime/initialize"; +import { isInIframe } from "@/utils/is"; +import { importInjectScript } from "./runtime/script"; + +(() => { + if (__DEV__) { + !isInIframe && onReceiveReloadMsg(); + logger.setLevel(LOG_LEVEL.INFO); + } + logger.info("Content Script Loaded"); + importInjectScript(); + !isInIframe && initializeWorker(); + PCBridge.onPopupMessage(onPopupMessage); +})(); diff --git a/packages/force-copy/src/content/runtime/initialize.ts b/packages/force-copy/src/content/runtime/initialize.ts new file mode 100644 index 0000000..734956d --- /dev/null +++ b/packages/force-copy/src/content/runtime/initialize.ts @@ -0,0 +1,17 @@ +import { CWBridge } from "@/bridge/content-worker"; +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import { Storage } from "laser-utils"; + +export const initializeWorker = () => { + Promise.resolve().then(() => { + const badge = [ + Storage.local.get(COPY_TYPE), + Storage.local.get(CONTEXT_MENU_TYPE), + Storage.local.get(KEYBOARD_TYPE), + Storage.session.get(COPY_TYPE), + Storage.session.get(CONTEXT_MENU_TYPE), + Storage.session.get(KEYBOARD_TYPE), + ].filter(Boolean).length; + CWBridge.postToWorker({ type: CWBridge.REQUEST.SET_BADGE, payload: badge }); + }); +}; diff --git a/packages/force-copy/src/content/runtime/script.ts b/packages/force-copy/src/content/runtime/script.ts new file mode 100644 index 0000000..f10de40 --- /dev/null +++ b/packages/force-copy/src/content/runtime/script.ts @@ -0,0 +1,39 @@ +export const importInjectScript = () => { + const fn = window[process.env.INJECT_FILE as unknown as number] as unknown as () => void; + // #IFDEF GECKO + if (fn && document instanceof XMLDocument === false) { + const script = document.createElementNS("http://www.w3.org/1999/xhtml", "script"); + script.setAttribute("type", "text/javascript"); + // 这里的内容需要跟 WrapperCodePlugin 的 HASH 计算保持一致 + const code = `;(${fn.toString()})();`; + script.innerText = code; + document.documentElement.appendChild(script); + // 在这里仅移除 script 标签, 但不会删除 window 上的属性 + // 保证注入重试, inject 幂等且 content 处于隔离环境不会受到影响 + script.remove(); + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts + const unsafeWindow = window.wrappedJSObject; + const signal = process.env.EVENT_TYPE; + // 此时说明页面中的脚本没有被注入 尝试以 blob 的形式注入 + if (unsafeWindow && !unsafeWindow[signal]) { + const blob = new Blob([code], { type: "application/javascript" }); + const url = URL.createObjectURL(blob); + const script = document.createElementNS("http://www.w3.org/1999/xhtml", "script"); + script.setAttribute("type", "text/javascript"); + // 实际上这里是异步的引入 不能完全保证 document_start 的时机 + (script).src = url; + document.documentElement.appendChild(script); + script.onload = () => { + script.remove(); + // 如果仍然不存在 尝试在 Content Script 中执行 + // 在 Content Script 中执行可以保证 DOM 事件类型的处理 + !unsafeWindow[signal] && fn(); + }; + script.onerror = () => { + script.remove(); + !unsafeWindow[signal] && fn(); + }; + } + } + // #ENDIF +}; diff --git a/packages/force-copy/src/inject/channel/content.ts b/packages/force-copy/src/inject/channel/content.ts new file mode 100644 index 0000000..1d60150 --- /dev/null +++ b/packages/force-copy/src/inject/channel/content.ts @@ -0,0 +1,57 @@ +import type { WebSite } from "../types/website"; +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import { logger } from "@/utils/logger"; +import { DOM_STAGE } from "copy/src/constant/event"; +import type { CIRequestType } from "@/bridge/content-inject/request"; +import { CI_EXECUTION_ENUM, CONTENT_TO_INJECT_REQUEST } from "@/bridge/content-inject/request"; +import { CIBridge } from "@/bridge/content-inject"; +import { EventBus, EVENTS_ENUM } from "../utils/bus"; +import { stopNativePropagation } from "../utils/events"; + +export const onContentMessage = (handler: WebSite) => { + return (data: CIRequestType) => { + logger.info("Inject Receive Content Message", location.host, data); + switch (data.type) { + case CONTENT_TO_INJECT_REQUEST.COPY_TYPE: { + data.payload === CI_EXECUTION_ENUM.START + ? handler.start(COPY_TYPE, DOM_STAGE.END) + : handler.close(COPY_TYPE); + break; + } + case CONTENT_TO_INJECT_REQUEST.KEYBOARD_TYPE: { + data.payload === CI_EXECUTION_ENUM.START + ? handler.start(KEYBOARD_TYPE, DOM_STAGE.END) + : handler.close(KEYBOARD_TYPE); + break; + } + case CONTENT_TO_INJECT_REQUEST.CONTEXT_MENU_TYPE: { + data.payload === CI_EXECUTION_ENUM.START + ? handler.start(CONTEXT_MENU_TYPE, DOM_STAGE.END) + : handler.close(CONTEXT_MENU_TYPE); + break; + } + case CIBridge.REQUEST.DEBUG_MOUSE_EVENT: { + EventBus.on(EVENTS_ENUM.MOUSE_DOWN_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.MOUSE_UP_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.MOUSE_MOVE_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.TOUCH_START_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.TOUCH_MOVE_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.TOUCH_END_CAPTURE, stopNativePropagation); + break; + } + case CIBridge.REQUEST.DEBUG_FOCUS_EVENT: { + EventBus.on(EVENTS_ENUM.FOCUS_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.BLUR_CAPTURE, stopNativePropagation); + break; + } + case CIBridge.REQUEST.DEBUG_EDITABLE: { + document.body.contentEditable = "true"; + break; + } + case CIBridge.REQUEST.DEBUG_PASTE: { + EventBus.on(EVENTS_ENUM.PASTE_CAPTURE, stopNativePropagation); + break; + } + } + }; +}; diff --git a/packages/force-copy/src/inject/index.ts b/packages/force-copy/src/inject/index.ts new file mode 100644 index 0000000..22ff25f --- /dev/null +++ b/packages/force-copy/src/inject/index.ts @@ -0,0 +1,43 @@ +import type { State } from "./types/state"; +import { Storage } from "laser-utils"; +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import { websites } from "./modules"; +import { initBaseEvents } from "./utils/events"; +import { CIBridge } from "@/bridge/content-inject"; +import { onContentMessage } from "./channel/content"; +import { LOG_LEVEL, logger } from "@/utils/logger"; +import { DOM_STAGE } from "copy/src/constant/event"; + +(async (): Promise => { + if (__DEV__) { + logger.setLevel(LOG_LEVEL.INFO); + } + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + if (window[process.env.EVENT_TYPE]) { + logger.info("Inject Script Already Loaded"); + return void 0; + } + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + window[process.env.EVENT_TYPE] = true; + logger.info("Inject Script Loaded"); + // 初始化事件 + initBaseEvents(); + // 初始化状态 + const state: State = { + COPY: !!Storage.local.get(COPY_TYPE) || !!Storage.session.get(COPY_TYPE), + KEYBOARD: + !!Storage.local.get(KEYBOARD_TYPE) || !!Storage.session.get(KEYBOARD_TYPE), + CONTEXT_MENU: + !!Storage.local.get(CONTEXT_MENU_TYPE) || + !!Storage.session.get(CONTEXT_MENU_TYPE), + }; + const handler = websites.find(item => item.regexp.test(location.href)) || websites.slice(-1)[0]; + if (!handler) return void 0; + handler.init && handler.init(state); + state.COPY && handler.start(COPY_TYPE, DOM_STAGE.START); + state.KEYBOARD && handler.start(KEYBOARD_TYPE, DOM_STAGE.START); + state.CONTEXT_MENU && handler.start(CONTEXT_MENU_TYPE, DOM_STAGE.START); + CIBridge.onContentMessage(onContentMessage(handler)); +})(); diff --git a/packages/force-copy/src/inject/modules/basic.ts b/packages/force-copy/src/inject/modules/basic.ts new file mode 100644 index 0000000..1580e69 --- /dev/null +++ b/packages/force-copy/src/inject/modules/basic.ts @@ -0,0 +1,36 @@ +import { styles } from "copy-currency/src/utils"; +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import type { WebSite } from "../types/website"; +import { EVENTS_ENUM, EventBus } from "../utils/bus"; +import { onCopyKeyboardHandler, stopNativePropagation } from "../utils/events"; +import { STYLE_ID, AUTO_USER_SELECT, AUTO_SELECTION } from "../utils/styles"; + +export const Basic: WebSite = { + regexp: /.*/, + start(type) { + if (type === COPY_TYPE) { + styles.insertCSS(STYLE_ID, AUTO_USER_SELECT + AUTO_SELECTION); + EventBus.on(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.on(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.TOUCH_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.on(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, + close(type) { + if (type === COPY_TYPE) { + styles.removeCSS(STYLE_ID); + EventBus.off(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.off(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + EventBus.off(EVENTS_ENUM.TOUCH_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.off(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, +}; diff --git a/packages/force-copy/src/inject/modules/doc88.ts b/packages/force-copy/src/inject/modules/doc88.ts new file mode 100644 index 0000000..23b6088 --- /dev/null +++ b/packages/force-copy/src/inject/modules/doc88.ts @@ -0,0 +1,116 @@ +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import type { WebSite } from "../types/website"; +import { EVENTS_ENUM, EventBus } from "../utils/bus"; +import { styles } from "copy-currency/src/utils"; +import { onCopyKeyboardHandler, stopNativePropagation } from "../utils/events"; +import instance from "copy/src/utils/instance"; +import { ALLOW_PAINT, AUTO_USER_SELECT, COPY_BUTTON_STYLE, STYLE_ID } from "../utils/styles"; +import { logger } from "@/utils/logger"; +import { isString } from "laser-utils"; +import { delayExecute } from "../utils/delay"; +import { PAGE_LOADED } from "copy/src/constant/event"; + +let isMouseDown = false; +let preSelectedText = ""; +let curSelectedText = ""; + +const onMouseDownCapture = () => { + isMouseDown = true; + instance.hide(false); +}; +const onMouseUpCapture = () => { + isMouseDown = false; +}; +const init = () => { + try { + // @ts-expect-error global + window.Config && (window.Config.vip = 1) && (window.Config.logined = 1); + const hook = () => { + // @ts-expect-error global + const api = window.Core.Annotation.api; + const keys = Object.keys(api).filter(key => isString(api[key])); + const duplication: Record = {}; + keys.forEach(key => { + duplication[key] = api[key]; + Object.defineProperty(api, key, { + set: function (value) { + duplication[key] = value; + !isMouseDown && (curSelectedText = value); + !isMouseDown && logger.info("TEXT SETTER", value); + return true; + }, + get: function () { + return duplication[key]; + }, + }); + }); + }; + // @ts-expect-error global + if (window.Core) { + hook(); + // @ts-expect-error global + } else if (window.Core === null) { + delayExecute(PAGE_LOADED).then(hook); + } else { + let Core: unknown = undefined; + Object.defineProperty(window, "Core", { + configurable: true, + set: (value: unknown) => { + Core = value; + value && hook(); + }, + get: () => Core, + }); + } + } catch (error) { + logger.warning("INIT TEXT ERROR", error); + } +}; + +const onMouseUp = (event: MouseEvent) => { + logger.info("SELECT", curSelectedText); + if (curSelectedText && preSelectedText !== curSelectedText) { + instance.onCopy(curSelectedText, event); + instance.show(event); + } + preSelectedText = curSelectedText; +}; + +export const Doc88: WebSite = { + regexp: /www\.doc88\.com/, + start(type) { + if (type === COPY_TYPE) { + init(); + styles.insertCSS( + STYLE_ID, + AUTO_USER_SELECT + ALLOW_PAINT + COPY_BUTTON_STYLE + "#left-menu{display:none !important;} " + ); + EventBus.on(EVENTS_ENUM.MOUSE_UP_BUBBLE, onMouseUp); + EventBus.on(EVENTS_ENUM.MOUSE_UP_CAPTURE, onMouseUpCapture); + EventBus.on(EVENTS_ENUM.MOUSE_DOWN_CAPTURE, onMouseDownCapture); + EventBus.on(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.on(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.on(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, + close(type) { + if (type === COPY_TYPE) { + instance.destroy(); + styles.removeCSS(STYLE_ID); + EventBus.off(EVENTS_ENUM.MOUSE_UP_BUBBLE, onMouseUp); + EventBus.off(EVENTS_ENUM.MOUSE_UP_CAPTURE, onMouseUpCapture); + EventBus.off(EVENTS_ENUM.MOUSE_DOWN_CAPTURE, onMouseDownCapture); + EventBus.off(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.off(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.off(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, +}; diff --git a/packages/force-copy/src/inject/modules/docin.ts b/packages/force-copy/src/inject/modules/docin.ts new file mode 100644 index 0000000..5ced361 --- /dev/null +++ b/packages/force-copy/src/inject/modules/docin.ts @@ -0,0 +1,73 @@ +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import type { WebSite } from "../types/website"; +import { EVENTS_ENUM, EventBus } from "../utils/bus"; +import { styles } from "copy-currency/src/utils"; +import { onCopyKeyboardHandler, stopNativePropagation } from "../utils/events"; +import instance from "copy/src/utils/instance"; +import { ALLOW_PAINT, AUTO_USER_SELECT, COPY_BUTTON_STYLE, STYLE_ID } from "../utils/styles"; +import { logger } from "@/utils/logger"; +import { delayExecute } from "../utils/delay"; +import { PAGE_LOADED } from "copy/src/constant/event"; + +let preSelectedText = ""; +let curSelectedText = ""; + +const init = () => { + const el = document.querySelector("#j_select"); + el && el.click(); +}; + +const onMouseDown = () => { + instance.hide(false); +}; + +const onMouseUp = (event: MouseEvent) => { + const handler = () => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + curSelectedText = window.docinReader?.st || ""; + logger.info("SELECT", curSelectedText); + if (curSelectedText && preSelectedText !== curSelectedText) { + instance.onCopy(curSelectedText, event); + } + preSelectedText = curSelectedText; + }; + setTimeout(handler, 100); +}; + +export const DocIn: WebSite = { + regexp: /www\.docin\.com/, + start(type) { + if (type === COPY_TYPE) { + delayExecute(PAGE_LOADED).then(init); + styles.insertCSS( + STYLE_ID, + AUTO_USER_SELECT + ALLOW_PAINT + COPY_BUTTON_STYLE + ".copy-tips{display:none !important;} " + ); + EventBus.on(EVENTS_ENUM.MOUSE_UP_CAPTURE, onMouseUp); + EventBus.on(EVENTS_ENUM.MOUSE_DOWN_CAPTURE, onMouseDown); + EventBus.on(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.on(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.on(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, + close(type) { + if (type === COPY_TYPE) { + instance.destroy(); + styles.removeCSS(STYLE_ID); + EventBus.off(EVENTS_ENUM.MOUSE_UP_CAPTURE, onMouseUp); + EventBus.off(EVENTS_ENUM.MOUSE_DOWN_CAPTURE, onMouseDown); + EventBus.off(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.off(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.off(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, +}; diff --git a/packages/force-copy/src/inject/modules/index.ts b/packages/force-copy/src/inject/modules/index.ts new file mode 100644 index 0000000..74e3605 --- /dev/null +++ b/packages/force-copy/src/inject/modules/index.ts @@ -0,0 +1,10 @@ +import type { WebSite } from "../types/website"; +import { Basic } from "./basic"; +import { Doc88 } from "./doc88"; +import { DocIn } from "./docin"; +import { QQDoc } from "./qq-doc"; +import { QQPpt } from "./qq-ppt"; +import { Wenku } from "./wenku"; +import { Zhihu } from "./zhihu"; + +export const websites: WebSite[] = [Wenku, Doc88, QQDoc, DocIn, Zhihu, QQPpt, Basic]; diff --git a/packages/force-copy/src/inject/modules/qq-doc.ts b/packages/force-copy/src/inject/modules/qq-doc.ts new file mode 100644 index 0000000..9750f17 --- /dev/null +++ b/packages/force-copy/src/inject/modules/qq-doc.ts @@ -0,0 +1,91 @@ +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import type { WebSite } from "../types/website"; +import { EVENTS_ENUM, EventBus } from "../utils/bus"; +import { styles } from "copy-currency/src/utils"; +import { onCopyKeyboardHandler, stopNativePropagation } from "../utils/events"; +import instance from "copy/src/utils/instance"; +import { ALLOW_PAINT, AUTO_USER_SELECT, COPY_BUTTON_STYLE, STYLE_ID } from "../utils/styles"; +import { logger } from "@/utils/logger"; +import { TEXT_HTML, TEXT_PLAIN } from "copy/src/utils/copy"; + +const onMouseDown = () => { + instance.hide(false); +}; + +const onMouseUp = (event: MouseEvent) => { + // QQ Doc + if (window.pad && window.pad.editor && !window.pad.editor.isCopyable()) { + const editor = window.pad.editor; + if (editor.getCopyContent) { + const content = editor.getCopyContent() || {}; + const plainText: string | undefined = content.plain; + const htmlText: string = content.html || ""; + logger.info("SELECT", plainText); + if (plainText) { + return instance.onCopy({ [TEXT_PLAIN]: plainText, [TEXT_HTML]: htmlText }, event); + } + } + } + // QQ Sheet + if ( + window.SpreadsheetApp && + window.SpreadsheetApp.permissions && + window.SpreadsheetApp.permissions.sheetStatus && + window.SpreadsheetApp.permissions.sheetStatus.canCopy === false && + window.SpreadsheetApp.permissions.sheetStatus.canEdit && + window.SpreadsheetApp.permissions.sheetStatus.canEdit() === false + ) { + const SpreadsheetApp = window.SpreadsheetApp; + const [selection] = SpreadsheetApp.view.getSelectionRanges(); + if (selection) { + const text: string[] = []; + const { startColIndex, startRowIndex, endColIndex, endRowIndex } = selection; + for (let i = startRowIndex; i <= endRowIndex; i++) { + for (let k = startColIndex; k <= endColIndex; k++) { + const cell = SpreadsheetApp.workbook.activeSheet.getCellDataAtPosition(i, k); + if (!cell) continue; + text.push(" ", cell.formattedValue?.value || cell.value || ""); + } + i !== endRowIndex && text.push("\n"); + } + const str = text.join(""); + logger.info("SELECT", str); + return instance.onCopy(/^\s*$/.test(str) ? "" : str, event); + } + } + // Final + return instance.hide(false); +}; + +export const QQDoc: WebSite = { + regexp: /docs?\.(weixin\.)?qq\.com\/(doc)|(sheet)\/.+/, + start(type) { + if (type === COPY_TYPE) { + styles.insertCSS(STYLE_ID, AUTO_USER_SELECT + ALLOW_PAINT + COPY_BUTTON_STYLE); + EventBus.on(EVENTS_ENUM.MOUSE_UP_BUBBLE, onMouseUp); + EventBus.on(EVENTS_ENUM.MOUSE_DOWN_CAPTURE, onMouseDown); + EventBus.on(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.on(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.on(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, + close(type) { + if (type === COPY_TYPE) { + instance.destroy(); + styles.removeCSS(STYLE_ID); + EventBus.off(EVENTS_ENUM.MOUSE_UP_BUBBLE, onMouseUp); + EventBus.off(EVENTS_ENUM.MOUSE_DOWN_CAPTURE, onMouseDown); + EventBus.off(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.off(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.off(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, +}; diff --git a/packages/force-copy/src/inject/modules/qq-ppt.ts b/packages/force-copy/src/inject/modules/qq-ppt.ts new file mode 100644 index 0000000..b4852b3 --- /dev/null +++ b/packages/force-copy/src/inject/modules/qq-ppt.ts @@ -0,0 +1,70 @@ +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import type { WebSite } from "../types/website"; +import { EVENTS_ENUM, EventBus } from "../utils/bus"; +import { styles } from "copy-currency/src/utils"; +import { stopNativePropagation } from "../utils/events"; +import instance from "copy/src/utils/instance"; +import { ALLOW_PAINT, AUTO_USER_SELECT, STYLE_ID } from "../utils/styles"; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const win: any = window; + +export const QQPpt: WebSite = { + regexp: /docs?\.(weixin\.)?qq\.com\/slide\/.+/, + init() { + let webpackJsonp = win.webpackJsonp; + Object.defineProperty(win, "webpackJsonp", { + get() { + return webpackJsonp; + }, + set(newValue) { + if (newValue.push.__HOOKED__) { + return; + } + webpackJsonp = newValue; + const originPush = webpackJsonp.push; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function push(...args: any[]) { + const [, mods] = args[0]; + for (const [key, fn] of Object.entries(mods)) { + const stringifyFn = String(fn); + if (/this\.shouldResponseCopy\(/.test(stringifyFn)) { + const payload = + "((...args) => window.__CAN_COPY === undefined " + + "? this.shouldResponseCopy(...args) " + + ": window.__CAN_COPY)("; + const next = stringifyFn.replace(/this\.shouldResponseCopy\(/g, payload); + mods[key] = new Function(`return (${next})`)(); + } + } + // @ts-expect-error this + return originPush.call(this, ...args); + } + push.__HOOKED__ = 1; + webpackJsonp.push = push; + }, + }); + }, + start(type) { + if (type === COPY_TYPE) { + win.__CAN_COPY = true; + styles.insertCSS(STYLE_ID, AUTO_USER_SELECT + ALLOW_PAINT); + } else if (type === KEYBOARD_TYPE) { + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.on(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, + close(type) { + if (type === COPY_TYPE) { + win.__CAN_COPY = undefined; + instance.destroy(); + styles.removeCSS(STYLE_ID); + EventBus.off(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.off(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, +}; diff --git a/packages/force-copy/src/inject/modules/wenku.ts b/packages/force-copy/src/inject/modules/wenku.ts new file mode 100644 index 0000000..321eccf --- /dev/null +++ b/packages/force-copy/src/inject/modules/wenku.ts @@ -0,0 +1,80 @@ +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import type { WebSite } from "../types/website"; +import { EVENTS_ENUM, EventBus } from "../utils/bus"; +import { styles } from "copy-currency/src/utils"; +import { onCopyKeyboardHandler, stopNativePropagation } from "../utils/events"; +import instance from "copy/src/utils/instance"; +import { ALLOW_PAINT, AUTO_USER_SELECT, COPY_BUTTON_STYLE, STYLE_ID } from "../utils/styles"; +import { logger } from "@/utils/logger"; + +let preSelectedText = ""; +let curSelectedText = ""; + +const onMouseDown = () => { + instance.hide(false); +}; +const onMouseUp = (event: MouseEvent) => { + try { + const elements = document.querySelectorAll("#app > div"); + for (const item of elements) { + // @ts-expect-error __vue__ + const vue = item.__vue__; + if (vue) { + const text = vue.$store.getters["readerPlugin/selectedTextTrim"]; + text && (curSelectedText = text); + break; + } + } + } catch (error) { + logger.warning("GET TEXT FAIL", error); + } + if (!curSelectedText) { + const result = /查看全部包含“([\s\S]*?)”的文档/.exec(document.body.innerHTML); + result && result[1] && (curSelectedText = result[1]); + } + logger.info("SELECT", curSelectedText); + if (curSelectedText && preSelectedText !== curSelectedText) { + instance.onCopy(curSelectedText, event); + } + preSelectedText = curSelectedText; +}; + +export const Wenku: WebSite = { + regexp: /wenku\.baidu\.com/, + start(type) { + if (type === COPY_TYPE) { + // instance.init("Copy"); + styles.insertCSS( + STYLE_ID, + AUTO_USER_SELECT + + ALLOW_PAINT + + COPY_BUTTON_STYLE + + "#reader-helper{display:none !important;} " + ); + EventBus.on(EVENTS_ENUM.MOUSE_UP_BUBBLE, onMouseUp); + EventBus.on(EVENTS_ENUM.MOUSE_DOWN_CAPTURE, onMouseDown); + EventBus.on(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.on(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.on(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, + close(type) { + if (type === COPY_TYPE) { + instance.destroy(); + styles.removeCSS(STYLE_ID); + EventBus.off(EVENTS_ENUM.MOUSE_UP_BUBBLE, onMouseUp); + EventBus.off(EVENTS_ENUM.MOUSE_DOWN_CAPTURE, onMouseDown); + EventBus.off(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.off(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.off(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, +}; diff --git a/packages/force-copy/src/inject/modules/zhihu.ts b/packages/force-copy/src/inject/modules/zhihu.ts new file mode 100644 index 0000000..e32d1dc --- /dev/null +++ b/packages/force-copy/src/inject/modules/zhihu.ts @@ -0,0 +1,70 @@ +import { CONTEXT_MENU_TYPE, COPY_TYPE, KEYBOARD_TYPE } from "@/utils/constant"; +import type { WebSite } from "../types/website"; +import { EVENTS_ENUM, EventBus } from "../utils/bus"; +import { styles } from "copy-currency/src/utils"; +import { onCopyKeyboardHandler, stopNativePropagation } from "../utils/events"; +import { ALLOW_PAINT, AUTO_USER_SELECT, STYLE_ID } from "../utils/styles"; +import { delayExecute } from "../utils/delay"; +import { DOM_LOADED } from "copy/src/constant/event"; + +const init = () => { + if (location.hostname === "zhuanlan.zhihu.com") { + const elements = document.querySelectorAll("[data-focus-scope-start]"); + elements.forEach(node => { + if ((node.textContent || "").indexOf("立即登录/注册") > -1) { + node.parentElement ? node.parentElement.remove() : node.remove(); + } + }); + const removeFocalPointModal: MutationCallback = mutationsList => { + for (const mutation of mutationsList) { + const addedNodes = mutation.addedNodes; + for (let i = 0; i < addedNodes.length; i++) { + const target = addedNodes[i]; + if (target.nodeType != 1) return void 0; + if ( + target instanceof HTMLDivElement && + target.querySelector("[data-focus-scope-start]") + ) { + const element = target.querySelector("[data-focus-scope-start]"); + element && + element.parentElement && + (element.parentElement.textContent || "").indexOf("立即登录/注册") > -1 && + element.parentElement.parentElement && + element.parentElement.parentElement.removeChild(element.parentElement); + } + } + } + }; + const observer = new MutationObserver(removeFocalPointModal); + observer.observe(document, { childList: true, subtree: true }); + } +}; + +export const Zhihu: WebSite = { + regexp: /zhuanlan\.zhihu\.com/, + start(type) { + if (type === COPY_TYPE) { + delayExecute(DOM_LOADED).then(init); + styles.insertCSS(STYLE_ID, AUTO_USER_SELECT + ALLOW_PAINT); + EventBus.on(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.on(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.on(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.on(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, + close(type) { + if (type === COPY_TYPE) { + styles.removeCSS(STYLE_ID); + EventBus.off(EVENTS_ENUM.COPY_CAPTURE, stopNativePropagation); + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, onCopyKeyboardHandler); + EventBus.off(EVENTS_ENUM.SELECT_START_CAPTURE, stopNativePropagation); + } else if (type === KEYBOARD_TYPE) { + EventBus.off(EVENTS_ENUM.KEY_BOARD_CAPTURE, stopNativePropagation); + } else if (type === CONTEXT_MENU_TYPE) { + EventBus.off(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, stopNativePropagation); + } + }, +}; diff --git a/packages/force-copy/src/inject/types/global.d.ts b/packages/force-copy/src/inject/types/global.d.ts new file mode 100644 index 0000000..017f376 --- /dev/null +++ b/packages/force-copy/src/inject/types/global.d.ts @@ -0,0 +1,6 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +declare interface Window { + pad?: any; + wrappedJSObject?: any; + SpreadsheetApp?: any; +} diff --git a/packages/force-copy/src/inject/types/state.ts b/packages/force-copy/src/inject/types/state.ts new file mode 100644 index 0000000..18a9dfb --- /dev/null +++ b/packages/force-copy/src/inject/types/state.ts @@ -0,0 +1,5 @@ +export type State = { + COPY: boolean; + KEYBOARD: boolean; + CONTEXT_MENU: boolean; +}; diff --git a/packages/force-copy/src/inject/types/website.ts b/packages/force-copy/src/inject/types/website.ts new file mode 100644 index 0000000..9049708 --- /dev/null +++ b/packages/force-copy/src/inject/types/website.ts @@ -0,0 +1,15 @@ +import type { ActionType } from "@/utils/constant"; +import type { State } from "./state"; +import type { DOM_STAGE } from "copy/src/constant/event"; +import type { Object } from "@/utils/types"; + +export type WebSite = { + /** 链接匹配正则 */ + regexp: RegExp; + /** 初始化必须执行 */ + init?: (state: State) => void; + /** 启动时执行 初始启动/被动启动 */ + start: (type: ActionType, when: Object.Values) => void; + /** 关闭时执行 被动关闭 */ + close: (type: ActionType) => void; +}; diff --git a/packages/force-copy/src/inject/utils/bus.ts b/packages/force-copy/src/inject/utils/bus.ts new file mode 100644 index 0000000..63413b6 --- /dev/null +++ b/packages/force-copy/src/inject/utils/bus.ts @@ -0,0 +1,60 @@ +import type { ActionType } from "@/utils/constant"; +import { EventBus as AbstractEventBus } from "laser-utils"; + +const EVENTS_TYPE = [ + "MOUSE_UP_CAPTURE", + "MOUSE_DOWN_CAPTURE", + "MOUSE_UP_BUBBLE", + "MOUSE_DOWN_BUBBLE", + "DOM_LOADED", + "PAGE_LOADED", + "OPEN_ACTION", + "CLOSE_ACTION", + "OPEN_ONCE_ACTION", + "COPY_CAPTURE", + "KEY_BOARD_CAPTURE", + "CONTEXT_MENU_CAPTURE", + "SELECT_START_CAPTURE", + "TOUCH_START_CAPTURE", + "FOCUS_CAPTURE", + "BLUR_CAPTURE", + "MOUSE_MOVE_CAPTURE", + "TOUCH_MOVE_CAPTURE", + "TOUCH_END_CAPTURE", + "PASTE_CAPTURE", +] as const; + +export const EVENTS_ENUM = EVENTS_TYPE.reduce( + (acc, cur) => ({ ...acc, [cur]: `__${cur}__` }), + {} as { [K in typeof EVENTS_TYPE[number]]: `__${K}__` } +); + +interface EventBusParams { + [EVENTS_ENUM.MOUSE_UP_CAPTURE]: MouseEvent; + [EVENTS_ENUM.MOUSE_DOWN_CAPTURE]: MouseEvent; + [EVENTS_ENUM.MOUSE_UP_BUBBLE]: MouseEvent; + [EVENTS_ENUM.MOUSE_DOWN_BUBBLE]: MouseEvent; + [EVENTS_ENUM.MOUSE_MOVE_CAPTURE]: MouseEvent; + [EVENTS_ENUM.DOM_LOADED]: Event; + [EVENTS_ENUM.PAGE_LOADED]: Event; + [EVENTS_ENUM.OPEN_ACTION]: ActionType; + [EVENTS_ENUM.CLOSE_ACTION]: ActionType; + [EVENTS_ENUM.OPEN_ONCE_ACTION]: ActionType; + [EVENTS_ENUM.COPY_CAPTURE]: Event; + [EVENTS_ENUM.KEY_BOARD_CAPTURE]: KeyboardEvent; + [EVENTS_ENUM.CONTEXT_MENU_CAPTURE]: Event; + [EVENTS_ENUM.SELECT_START_CAPTURE]: Event; + [EVENTS_ENUM.TOUCH_START_CAPTURE]: TouchEvent; + [EVENTS_ENUM.FOCUS_CAPTURE]: FocusEvent; + [EVENTS_ENUM.BLUR_CAPTURE]: FocusEvent; + [EVENTS_ENUM.TOUCH_MOVE_CAPTURE]: TouchEvent; + [EVENTS_ENUM.TOUCH_END_CAPTURE]: TouchEvent; + [EVENTS_ENUM.PASTE_CAPTURE]: ClipboardEvent; +} + +declare module "laser-utils/dist/es/event-bus" { + // eslint-disable-next-line @typescript-eslint/no-empty-interface + interface EventBusType extends EventBusParams {} +} + +export const EventBus = new AbstractEventBus(); diff --git a/packages/force-copy/src/inject/utils/delay.ts b/packages/force-copy/src/inject/utils/delay.ts new file mode 100644 index 0000000..2a3fd93 --- /dev/null +++ b/packages/force-copy/src/inject/utils/delay.ts @@ -0,0 +1,26 @@ +import { DOM_READY, PAGE_LOADED } from "copy/src/constant/event"; +import { EVENTS_ENUM, EventBus } from "./bus"; + +export const delayExecute = ( + when: typeof DOM_READY | typeof PAGE_LOADED = PAGE_LOADED, + delayMax: number | false = 6000 +) => { + const delayWithEvent = new Promise(r => { + const resolve = () => r(); + if (when === DOM_READY) { + if (document.readyState !== "loading") { + resolve(); + } else { + EventBus.once(EVENTS_ENUM.DOM_LOADED, resolve); + } + return void 0; + } + if (document.readyState === "complete") { + resolve(); + } else { + EventBus.once(EVENTS_ENUM.PAGE_LOADED, resolve); + } + }); + const delayWithTimeout = delayMax && new Promise(resolve => setTimeout(resolve, delayMax)); + return Promise.race([delayWithEvent, delayWithTimeout].filter(Boolean)); +}; diff --git a/packages/force-copy/src/inject/utils/events.ts b/packages/force-copy/src/inject/utils/events.ts new file mode 100644 index 0000000..20b694c --- /dev/null +++ b/packages/force-copy/src/inject/utils/events.ts @@ -0,0 +1,60 @@ +import { + BLUR, + CONTEXT_MENU, + COPY, + DOM_READY, + FOCUS, + FOCUS_IN, + FOCUS_OUT, + KEY_DOWN, + MOUSE_DOWN, + MOUSE_MOVE, + MOUSE_UP, + PAGE_LOADED, + SELECT_START, + TOUCH_END, + TOUCH_MOVE, + TOUCH_START, +} from "copy/src/constant/event"; +import { EVENTS_ENUM, EventBus } from "./bus"; + +export const initBaseEvents = () => { + window.addEventListener(MOUSE_UP, e => EventBus.emit(EVENTS_ENUM.MOUSE_UP_BUBBLE, e)); + window.addEventListener(MOUSE_DOWN, e => EventBus.emit(EVENTS_ENUM.MOUSE_DOWN_BUBBLE, e)); + window.addEventListener(MOUSE_UP, e => EventBus.emit(EVENTS_ENUM.MOUSE_UP_CAPTURE, e), true); + window.addEventListener(MOUSE_DOWN, e => EventBus.emit(EVENTS_ENUM.MOUSE_DOWN_CAPTURE, e), true); + window.addEventListener(COPY, e => EventBus.emit(EVENTS_ENUM.COPY_CAPTURE, e), true); + window.addEventListener(KEY_DOWN, e => EventBus.emit(EVENTS_ENUM.KEY_BOARD_CAPTURE, e), true); + window.addEventListener( + CONTEXT_MENU, + e => EventBus.emit(EVENTS_ENUM.CONTEXT_MENU_CAPTURE, e), + true + ); + window.addEventListener( + SELECT_START, + e => EventBus.emit(EVENTS_ENUM.SELECT_START_CAPTURE, e), + true + ); + window.addEventListener( + TOUCH_START, + e => EventBus.emit(EVENTS_ENUM.TOUCH_START_CAPTURE, e), + true + ); + window.addEventListener(DOM_READY, e => EventBus.emit(EVENTS_ENUM.DOM_LOADED, e), true); + window.addEventListener(PAGE_LOADED, e => EventBus.emit(EVENTS_ENUM.PAGE_LOADED, e), true); + window.addEventListener(FOCUS, e => EventBus.emit(EVENTS_ENUM.FOCUS_CAPTURE, e), true); + window.addEventListener(FOCUS_IN, e => EventBus.emit(EVENTS_ENUM.FOCUS_CAPTURE, e), true); + window.addEventListener(BLUR, e => EventBus.emit(EVENTS_ENUM.BLUR_CAPTURE, e), true); + window.addEventListener(FOCUS_OUT, e => EventBus.emit(EVENTS_ENUM.FOCUS_CAPTURE, e), true); + window.addEventListener(MOUSE_MOVE, e => EventBus.emit(EVENTS_ENUM.MOUSE_MOVE_CAPTURE, e), true); + window.addEventListener(TOUCH_MOVE, e => EventBus.emit(EVENTS_ENUM.TOUCH_MOVE_CAPTURE, e), true); + window.addEventListener(TOUCH_END, e => EventBus.emit(EVENTS_ENUM.TOUCH_END_CAPTURE, e), true); +}; + +export const stopNativePropagation = (event: Event) => event.stopImmediatePropagation(); + +export const onCopyKeyboardHandler = (e: KeyboardEvent) => { + if ((e.ctrlKey || e.metaKey) && e.key.toLocaleUpperCase() === "C") { + stopNativePropagation(e); + } +}; diff --git a/packages/force-copy/src/inject/utils/styles.ts b/packages/force-copy/src/inject/utils/styles.ts new file mode 100644 index 0000000..9a6d08b --- /dev/null +++ b/packages/force-copy/src/inject/utils/styles.ts @@ -0,0 +1,29 @@ +export const STYLE_ID = "__FORCE_COPY_STYLE__"; + +export const COPY_BUTTON_STYLE = + ".__copy-button {width: 60px; height: 30px; background: #4C98F7;color: #fff;position: absolute;" + + "z-index: -1000;opacity: 0;display: flex;justify-content: center;align-items: center;border-radius: 3px;" + + "font-size: 13px;cursor: pointer;transition: opacity 0.3s;} "; + +// https://developer.mozilla.org/zh-CN/docs/Web/CSS/user-select +export const AUTO_USER_SELECT = + "*, html body * :not(input):not(textarea)" + + "{user-select: auto !important;-webkit-user-select: auto !important;} "; + +// https://developer.mozilla.org/zh-CN/docs/Web/CSS/@media +export const ALLOW_PAINT = "@media print{body{display:block !important;}} "; + +// https://developer.mozilla.org/en-US/docs/Web/CSS/unset +// https://developer.mozilla.org/zh-CN/docs/Web/CSS/::selection +// https://stackoverflow.com/questions/33448213/how-to-reset-background-color-of-selection +export const AUTO_SELECTION = + ":not(input):not(textarea)::selection {" + + " color: inherit !important;" + + " background-color: #BEDAFF !important;" + + " background-color: highlight !important;" + + "} " + + ":not(input):not(textarea)::-moz-selection {" + + " color: inherit !important;" + + " background-color: #BEDAFF !important;" + + " background-color: highlight !important;" + + "} "; diff --git a/packages/force-copy/src/manifest/index.ts b/packages/force-copy/src/manifest/index.ts new file mode 100644 index 0000000..e4eb265 --- /dev/null +++ b/packages/force-copy/src/manifest/index.ts @@ -0,0 +1,69 @@ +import type { Manifest } from "./types"; +import { __URL_MATCH__ } from "./types"; + +// Chromium +const __MANIFEST__: Manifest = { + manifest_version: 3, + name: "Force Copy", + version: "0.0.0", + description: "Force Copy Everything", + default_locale: "en", + icons: { + 32: "static/favicon.128.png", + 96: "static/favicon.128.png", + 128: "static/favicon.128.png", + }, + action: { + default_popup: "popup.html", + default_icon: "static/favicon.128.png", + }, + content_scripts: [ + { + matches: [...__URL_MATCH__], + js: ["./content.js"], + run_at: "document_start", + all_frames: true, + }, + ], + web_accessible_resources: [ + { + resources: ["static/*", process.env.INJECT_FILE + ".js"], + matches: [""], + }, + ], + background: { + service_worker: "worker.js", + }, + host_permissions: [...__URL_MATCH__], + permissions: ["activeTab", "tabs", "scripting", "management"], + minimum_chrome_version: "88.0", +}; + +// Gecko +if (process.env.PLATFORM === "gecko") { + __MANIFEST__.manifest_version = 2; + __MANIFEST__.browser_action = __MANIFEST__.action; + __MANIFEST__.content_scripts = [ + { + matches: [...__URL_MATCH__], + js: [process.env.INJECT_FILE + ".js", "./content.js"], + run_at: "document_start", + all_frames: true, + }, + ]; + __MANIFEST__.background = { + scripts: [__MANIFEST__.background.service_worker as string], + }; + __MANIFEST__.permissions = ["activeTab", "tabs", "webRequest", "management", ...__URL_MATCH__]; + __MANIFEST__.browser_specific_settings = { + gecko: { strict_min_version: "91.1.0" }, + gecko_android: { strict_min_version: "91.1.0" }, + }; + + delete __MANIFEST__.action; + delete __MANIFEST__.host_permissions; + delete __MANIFEST__.minimum_chrome_version; + delete __MANIFEST__.web_accessible_resources; +} + +module.exports = __MANIFEST__; diff --git a/packages/force-copy/src/manifest/types.ts b/packages/force-copy/src/manifest/types.ts new file mode 100644 index 0000000..040e7c2 --- /dev/null +++ b/packages/force-copy/src/manifest/types.ts @@ -0,0 +1,52 @@ +export type Manifest = { + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json + manifest_version: number; + name: string; + version: string; + description: string; + default_locale: string; + icons: Record; + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts + content_scripts?: { + matches: string[]; + js: string[]; + run_at: string; + all_frames: boolean; + }[]; + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions + permissions: string[]; + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/background + background: { + service_worker?: string; + scripts?: string[]; + }; + // ====== Chromium ====== + action?: { + default_popup: string; + default_icon: string; + }; + web_accessible_resources?: { + resources: string[]; + matches: string[]; + }[]; + host_permissions?: string[]; + minimum_chrome_version?: string; + // ====================== + // ====== Gecko ====== + browser_action?: { + default_popup: string; + default_icon: string; + }; + browser_specific_settings?: { + gecko: { + strict_min_version: string; + }; + gecko_android: { + strict_min_version: string; + }; + }; + // =================== +}; + +// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns +export const __URL_MATCH__ = ["https://*/*", "http://*/*", "file://*/*"]; diff --git a/packages/force-copy/src/popup/components/app/index.module.scss b/packages/force-copy/src/popup/components/app/index.module.scss new file mode 100644 index 0000000..2487ce7 --- /dev/null +++ b/packages/force-copy/src/popup/components/app/index.module.scss @@ -0,0 +1,17 @@ +body { + user-select: none; + background-color: var(--color-bg-3); +} + +.container { + padding: 10px; + width: 270px; + color: var(--color-text-1); +} + +.hr { + margin: 5px 0; + height: 1px; + background-color: var(--color-border-3); + width: 100%; +} diff --git a/packages/force-copy/src/popup/components/app/index.tsx b/packages/force-copy/src/popup/components/app/index.tsx new file mode 100644 index 0000000..2492e44 --- /dev/null +++ b/packages/force-copy/src/popup/components/app/index.tsx @@ -0,0 +1,24 @@ +import type { FC } from "react"; +import styles from "./index.module.scss"; +import { cs } from "laser-utils"; +import { I18n } from "../../i18n"; +import { cross } from "@/utils/global"; +import { Console } from "../console"; +import { Header } from "../header"; +import { Footer } from "../footer"; + +// https://www.rfc-editor.org/rfc/rfc9110.html#name-language-tags +// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n +const i18n = new I18n(cross.i18n.getUILanguage()); + +export const App: FC = () => { + return ( +
+
+
+ +
+
+
+ ); +}; diff --git a/packages/force-copy/src/popup/components/console/index.module.scss b/packages/force-copy/src/popup/components/console/index.module.scss new file mode 100644 index 0000000..28f6c9b --- /dev/null +++ b/packages/force-copy/src/popup/components/console/index.module.scss @@ -0,0 +1,13 @@ +.console { + position: relative; + > div { + margin: 10px 5px; + display: flex; + align-items: center; + } +} + +.switch { + display: flex; + justify-content: center; +} diff --git a/packages/force-copy/src/popup/components/console/index.tsx b/packages/force-copy/src/popup/components/console/index.tsx new file mode 100644 index 0000000..ef0b06b --- /dev/null +++ b/packages/force-copy/src/popup/components/console/index.tsx @@ -0,0 +1,148 @@ +import type { FC } from "react"; +import { useLayoutEffect, useState } from "react"; +import styles from "./index.module.scss"; +import { PCBridge } from "@/bridge/popup-content"; +import type { I18n } from "../../i18n"; +import { setBadgeNumber as setNextBadgeNumber } from "../../utils/badge"; +import { PC_QUERY_STATE_ENUM } from "@/bridge/popup-content/response"; +import { Grid, Switch } from "@arco-design/web-react"; + +const Row = Grid.Row; +const Col = Grid.Col; + +export const Console: FC<{ + i18n: I18n; +}> = props => { + const { i18n } = props; + const [copyState, setCopyState] = useState(false); + const [copyStateOnce, setCopyStateOnce] = useState(false); + const [menuState, setMenuState] = useState(false); + const [menuStateOnce, setMenuStateOnce] = useState(false); + const [keydownState, setKeydownState] = useState(false); + const [keydownStateOnce, setKeydownStateOnce] = useState(false); + + const onSwitchChange = ( + type: + | typeof PCBridge.REQUEST.COPY_TYPE + | typeof PCBridge.REQUEST.KEYBOARD_TYPE + | typeof PCBridge.REQUEST.CONTEXT_MENU_TYPE, + checked: boolean, + once = false + ) => { + PCBridge.postToContent({ type: type, payload: { checked, once } }); + setNextBadgeNumber(checked); + }; + + useLayoutEffect(() => { + const mapper: Record = { + [PC_QUERY_STATE_ENUM.COPY]: setCopyState, + [PC_QUERY_STATE_ENUM.MENU]: setMenuState, + [PC_QUERY_STATE_ENUM.KEYBOARD]: setKeydownState, + [PC_QUERY_STATE_ENUM.COPY_ONCE]: setCopyStateOnce, + [PC_QUERY_STATE_ENUM.MENU_ONCE]: setMenuStateOnce, + [PC_QUERY_STATE_ENUM.KEYBOARD_ONCE]: setKeydownStateOnce, + }; + PCBridge.postToContent({ + type: PCBridge.REQUEST.QUERY_STATE, + payload: null, + }).then(res => { + if (res && res.type === PCBridge.REQUEST.QUERY_STATE) { + for (const [key, value] of Object.entries(res.payload)) { + const handler = mapper[key]; + handler && handler(value); + } + } + }); + }, []); + + return ( +
+ + + {i18n.t("Captain.Modules")} + + + {i18n.t("Captain.Start")} + + + {i18n.t("Captain.Once")} + + + + + {i18n.t("Operation.Copy")} + + + { + setCopyState(v); + onSwitchChange(PCBridge.REQUEST.COPY_TYPE, v); + }} + /> + + + { + setCopyStateOnce(v); + onSwitchChange(PCBridge.REQUEST.COPY_TYPE, v, true); + }} + /> + + + + + {i18n.t("Operation.Keyboard")} + + + { + setKeydownState(v); + onSwitchChange(PCBridge.REQUEST.KEYBOARD_TYPE, v); + }} + /> + + + { + setKeydownStateOnce(v); + onSwitchChange(PCBridge.REQUEST.KEYBOARD_TYPE, v, true); + }} + /> + + + + + {i18n.t("Operation.ContextMenu")} + + + { + setMenuState(v); + onSwitchChange(PCBridge.REQUEST.CONTEXT_MENU_TYPE, v); + }} + /> + + + { + setMenuStateOnce(v); + onSwitchChange(PCBridge.REQUEST.CONTEXT_MENU_TYPE, v, true); + }} + /> + + +
+ ); +}; diff --git a/packages/force-copy/src/popup/components/footer/index.module.scss b/packages/force-copy/src/popup/components/footer/index.module.scss new file mode 100644 index 0000000..d10a2cf --- /dev/null +++ b/packages/force-copy/src/popup/components/footer/index.module.scss @@ -0,0 +1,38 @@ +.footer { + padding: 3px 5px 0; + display: flex; + align-items: center; + font-size: 12px; + justify-content: end; + + > a, + div { + cursor: pointer; + color: var(--color-text-1); + margin-left: 7px; + display: flex; + align-items: center; + text-decoration: none; + + > svg { + margin-right: 3px; + } + } + + :global { + .arco-icon-question-circle, + .arco-icon-experiment, + .arco-icon-refresh { + font-size: 14px; + } + + .arco-icon-question-circle, + .arco-icon-refresh { + margin-left: -2px; + } + + .arco-icon-experiment { + margin-right: 2px; + } + } +} diff --git a/packages/force-copy/src/popup/components/footer/index.tsx b/packages/force-copy/src/popup/components/footer/index.tsx new file mode 100644 index 0000000..b8b0f4a --- /dev/null +++ b/packages/force-copy/src/popup/components/footer/index.tsx @@ -0,0 +1,49 @@ +import styles from "./index.module.scss"; +import type { FC } from "react"; +import type { I18n } from "@/popup/i18n"; +import { + IconExperiment, + IconGithub, + IconQuestionCircle, + IconRefresh, +} from "@arco-design/web-react/icon"; +import { cross } from "@/utils/global"; +import { Trigger } from "@arco-design/web-react"; +import { Tools } from "../tools"; + +export const Footer: FC<{ + i18n: I18n; +}> = props => { + const { i18n } = props; + + return ( + + ); +}; diff --git a/packages/force-copy/src/popup/components/header/index.module.scss b/packages/force-copy/src/popup/components/header/index.module.scss new file mode 100644 index 0000000..9d4fc68 --- /dev/null +++ b/packages/force-copy/src/popup/components/header/index.module.scss @@ -0,0 +1,12 @@ +.captain { + align-items: center; + display: flex; + + img { + height: 20px; + margin-right: 5px; + width: 20px; + } + + padding-bottom: 3px; +} diff --git a/packages/force-copy/src/popup/components/header/index.tsx b/packages/force-copy/src/popup/components/header/index.tsx new file mode 100644 index 0000000..6a08f2a --- /dev/null +++ b/packages/force-copy/src/popup/components/header/index.tsx @@ -0,0 +1,17 @@ +import { cs } from "laser-utils"; +import styles from "./index.module.scss"; +import type { FC } from "react"; +import type { I18n } from "@/popup/i18n"; + +export const Header: FC<{ + i18n: I18n; +}> = props => { + const { i18n } = props; + + return ( +
+ + {i18n.t("Title")} +
+ ); +}; diff --git a/packages/force-copy/src/popup/components/tools/index.module.scss b/packages/force-copy/src/popup/components/tools/index.module.scss new file mode 100644 index 0000000..fd65090 --- /dev/null +++ b/packages/force-copy/src/popup/components/tools/index.module.scss @@ -0,0 +1,11 @@ +$box-shadow: 0 0 4px var(--color-border-2); + +.container { + background-color: var(--color-bg-4); + padding: 10px; + + border: 1px solid var(--color-border-2); + border-radius: 4px; + box-shadow: $box-shadow; + +} diff --git a/packages/force-copy/src/popup/components/tools/index.tsx b/packages/force-copy/src/popup/components/tools/index.tsx new file mode 100644 index 0000000..f190c89 --- /dev/null +++ b/packages/force-copy/src/popup/components/tools/index.tsx @@ -0,0 +1,72 @@ +import { Button, Grid } from "@arco-design/web-react"; +import styles from "./index.module.scss"; +import type { FC } from "react"; +import type { I18n } from "@/popup/i18n"; +import { PCBridge } from "@/bridge/popup-content"; + +const GridItem = Grid.GridItem; + +export const Tools: FC<{ + i18n: I18n; +}> = props => { + const { i18n } = props; + + return ( +
+ + + + + + + + + + + + + + +
+ ); +}; diff --git a/packages/force-copy/src/popup/hooks/use-memoized-fn.ts b/packages/force-copy/src/popup/hooks/use-memoized-fn.ts new file mode 100644 index 0000000..88418a9 --- /dev/null +++ b/packages/force-copy/src/popup/hooks/use-memoized-fn.ts @@ -0,0 +1,25 @@ +import { useMemo, useRef } from "react"; + +type noop = (this: unknown, ...args: unknown[]) => never; + +type PickFunction = ( + this: ThisParameterType, + ...args: Parameters +) => ReturnType; + +export const useMemoizedFn = (fn: T) => { + const fnRef = useRef(fn); + + // why not write `fnRef.current = fn`? + // https://github.com/alibaba/hooks/issues/728 + fnRef.current = useMemo(() => fn, [fn]); + + const memoizedFn = useRef>(); + if (!memoizedFn.current) { + memoizedFn.current = function (this, ...args) { + return fnRef.current.apply(this, args); + }; + } + + return memoizedFn.current as T; +}; diff --git a/packages/force-copy/src/popup/i18n/en.ts b/packages/force-copy/src/popup/i18n/en.ts new file mode 100644 index 0000000..1cd6155 --- /dev/null +++ b/packages/force-copy/src/popup/i18n/en.ts @@ -0,0 +1,25 @@ +export const en = { + Title: "Force Copy", + Captain: { + Modules: "Modules", + Start: "Start", + Once: "Once", + }, + Operation: { + Copy: "Copy", + Keyboard: "Keyboard", + ContextMenu: "ContextMenu", + }, + Information: { + Tools: "Tools", + GitHub: "GitHub", + Help: "Help", + Reload: "Reload", + }, + Tools: { + MouseEvent: "MouseEvent", + FocusEvent: "FocusEvent", + Editable: "Editable", + PasteEvent: "PasteEvent", + }, +}; diff --git a/packages/force-copy/src/popup/i18n/index.ts b/packages/force-copy/src/popup/i18n/index.ts new file mode 100644 index 0000000..c7f3bd7 --- /dev/null +++ b/packages/force-copy/src/popup/i18n/index.ts @@ -0,0 +1,53 @@ +import { isString } from "laser-utils"; +import type { ConfigBlock, I18nTypes } from "./types"; +import { en } from "./en"; +import { zh } from "./zh"; + +const cache: Record = {}; + +export class I18n { + private config: I18nTypes; + private language: string; + constructor(language: string) { + this.language = language.toLowerCase(); + this.config = I18n.getFullConfig(this.language); + } + + public t = (key: keyof I18nTypes, defaultValue = "") => { + return this.config[key] || defaultValue || key; + }; + + public get p(): typeof en { + if (this.language.startsWith("zh")) { + return zh; + } + return en; + } + + private static getFullConfig = (lang: string) => { + if (cache[lang]) return cache[lang]; + let config; + if (lang.startsWith("zh")) { + config = this.generateFlattenConfig(zh); + } else { + config = this.generateFlattenConfig(en); + } + cache[lang] = config; + return config; + }; + + private static generateFlattenConfig = (config: ConfigBlock): I18nTypes => { + const target: Record = {}; + const dfs = (obj: ConfigBlock, prefix: string[]) => { + for (const [key, value] of Object.entries(obj)) { + if (isString(value)) { + target[[...prefix, key].join(".")] = value; + } else { + dfs(value, [...prefix, key]); + } + } + }; + dfs(config, []); + return target as I18nTypes; + }; +} diff --git a/packages/force-copy/src/popup/i18n/types.ts b/packages/force-copy/src/popup/i18n/types.ts new file mode 100644 index 0000000..d41a0a9 --- /dev/null +++ b/packages/force-copy/src/popup/i18n/types.ts @@ -0,0 +1,15 @@ +import type { en } from "./en"; + +export type DefaultI18nConfig = typeof en; + +export type ConfigBlock = { + [key: string]: string | ConfigBlock; +}; + +type FlattenKeys = Key extends string + ? T[Key] extends ConfigBlock + ? `${Key}.${FlattenKeys}` + : `${Key}` + : never; + +export type I18nTypes = Record, string>; diff --git a/packages/force-copy/src/popup/i18n/zh.ts b/packages/force-copy/src/popup/i18n/zh.ts new file mode 100644 index 0000000..1c6cb46 --- /dev/null +++ b/packages/force-copy/src/popup/i18n/zh.ts @@ -0,0 +1,18 @@ +import { en } from "./en"; +import type { DefaultI18nConfig } from "./types"; + +export const zh: DefaultI18nConfig = { + Title: "Force Copy", + Captain: { + Modules: "模块", + Start: "启动", + Once: "仅本次", + }, + Operation: { + Copy: "解除复制限制", + Keyboard: "解除键盘限制", + ContextMenu: "解除右键限制", + }, + Information: en.Information, + Tools: en.Tools, +}; diff --git a/packages/force-copy/src/popup/index.tsx b/packages/force-copy/src/popup/index.tsx new file mode 100644 index 0000000..0552bf8 --- /dev/null +++ b/packages/force-copy/src/popup/index.tsx @@ -0,0 +1,14 @@ +import ReactDOM from "react-dom"; +import { App } from "./components/app"; +import { LOG_LEVEL, logger } from "@/utils/logger"; + +if (__DEV__) { + logger.setLevel(LOG_LEVEL.INFO); +} + +const darkThemeMatch = window.matchMedia("(prefers-color-scheme: dark)"); +if (darkThemeMatch.matches) { + document.body.setAttribute("arco-theme", "dark"); +} + +ReactDOM.render(, document.getElementById("root")); diff --git a/packages/force-copy/src/popup/utils/badge.ts b/packages/force-copy/src/popup/utils/badge.ts new file mode 100644 index 0000000..1041cdc --- /dev/null +++ b/packages/force-copy/src/popup/utils/badge.ts @@ -0,0 +1,25 @@ +import { cross } from "@/utils/global"; + +export const setBadgeNumber = (checked: boolean) => { + cross.tabs + .query({ active: true, currentWindow: true }) + .then(tabs => { + const tab = tabs[0]; + const tabId = tab && tab.id; + return tabId; + }) + .then(tabId => { + if (tabId) { + let action: typeof cross.action | typeof cross.browserAction = cross.action; + // #IFDEF GECKO + action = cross.browserAction; + // #ENDIF + action.getBadgeText({ tabId }).then(text => { + const badge = Number(text) || 0; + const next = badge + (checked ? 1 : -1); + action.setBadgeText({ text: next <= 0 ? "" : String(next), tabId }); + action.setBadgeBackgroundColor({ color: "#4e5969", tabId }); + }); + } + }); +}; diff --git a/packages/force-copy/src/types/global.d.ts b/packages/force-copy/src/types/global.d.ts new file mode 100644 index 0000000..2a1c33c --- /dev/null +++ b/packages/force-copy/src/types/global.d.ts @@ -0,0 +1,16 @@ +declare module "*.scss" { + const content: Record; + export default content; +} + +declare const __DEV__: boolean; +declare const browser: typeof chrome | undefined; + +declare namespace NodeJS { + interface ProcessEnv { + NODE_ENV: "development" | "production"; + PLATFORM: "chromium" | "gecko"; + EVENT_TYPE: string; + INJECT_FILE: string; + } +} diff --git a/packages/force-copy/src/utils/constant.ts b/packages/force-copy/src/utils/constant.ts new file mode 100644 index 0000000..a46d4f8 --- /dev/null +++ b/packages/force-copy/src/utils/constant.ts @@ -0,0 +1,6 @@ +export const COPY_TYPE = "__COPY__"; +export const KEYBOARD_TYPE = "__KEYBOARD_TYPE__"; +export const CONTEXT_MENU_TYPE = "__CONTEXT_MENU_TYPE__"; +export const URL_MATCH = ["https://*/*", "http://*/*", "file://*/*"]; + +export type ActionType = typeof COPY_TYPE | typeof KEYBOARD_TYPE | typeof CONTEXT_MENU_TYPE; diff --git a/packages/force-copy/src/utils/global.ts b/packages/force-copy/src/utils/global.ts new file mode 100644 index 0000000..f1276c5 --- /dev/null +++ b/packages/force-copy/src/utils/global.ts @@ -0,0 +1,9 @@ +let env = chrome; + +// #IFDEF GECKO +if (typeof browser !== "undefined") { + env = browser; +} +// #ENDIF + +export const cross = env; diff --git a/packages/force-copy/src/utils/is.ts b/packages/force-copy/src/utils/is.ts new file mode 100644 index 0000000..2f845e6 --- /dev/null +++ b/packages/force-copy/src/utils/is.ts @@ -0,0 +1 @@ +export const isInIframe = self !== top; diff --git a/packages/force-copy/src/utils/logger.ts b/packages/force-copy/src/utils/logger.ts new file mode 100644 index 0000000..0c5c63b --- /dev/null +++ b/packages/force-copy/src/utils/logger.ts @@ -0,0 +1,47 @@ +const _global: typeof globalThis = (() => { + if (typeof globalThis !== "undefined") return globalThis; // ES2020 + if (typeof window !== "undefined") return window; // Browser + if (typeof global !== "undefined") return global; // Node + if (typeof self !== "undefined") return self; // Worker + return Function("return this")(); // Fallback +})(); + +export const log = _global.console.log; +export const warn = _global.console.warn; +export const error = _global.console.error; +export const trace = _global.console.trace; +export const LOG_LEVEL = { INFO: 0, WARNING: 1, ERROR: 2, DISABLE: 3 }; + +class Logger { + public constructor(private level: number) {} + + public setLevel(level: typeof LOG_LEVEL[keyof typeof LOG_LEVEL]) { + this.level = level; + } + + public info(...args: unknown[]) { + if (this.level <= LOG_LEVEL.INFO) { + log("FC Log:", ...args); + } + } + + public trace(...args: unknown[]) { + if (this.level <= LOG_LEVEL.INFO) { + trace("FC Trace:", ...args); + } + } + + public warning(...args: unknown[]) { + if (this.level <= LOG_LEVEL.WARNING) { + warn("FC Warning:", ...args); + } + } + + public error(...args: unknown[]) { + if (this.level <= LOG_LEVEL.ERROR) { + error("FC Error:", ...args); + } + } +} + +export const logger = new Logger(LOG_LEVEL.DISABLE); diff --git a/packages/force-copy/src/utils/reload.ts b/packages/force-copy/src/utils/reload.ts new file mode 100644 index 0000000..82bf0a6 --- /dev/null +++ b/packages/force-copy/src/utils/reload.ts @@ -0,0 +1,30 @@ +import { CWBridge } from "@/bridge/content-worker"; +import { cross } from "./global"; +import { logger } from "./logger"; + +export const RELOAD_APP = "RELOAD_APP"; + +export const onReceiveReloadMsg = () => { + if (__DEV__) { + try { + const ws = new WebSocket("ws://localhost:3333"); + // 收到消息即重载 + ws.onmessage = () => { + try { + CWBridge.postToWorker({ type: CWBridge.REQUEST.RELOAD, payload: null }); + } catch (error) { + logger.warning("SEND MESSAGE ERROR", error); + } + }; + } catch (error) { + logger.warning("CONNECT ERROR", error); + } + } +}; + +export const reloadApp = (msg: unknown) => { + if (__DEV__ && msg === RELOAD_APP) { + cross.runtime.reload(); + logger.warning("RELOAD SUCCESS"); + } +}; diff --git a/packages/force-copy/src/utils/types.ts b/packages/force-copy/src/utils/types.ts new file mode 100644 index 0000000..b906952 --- /dev/null +++ b/packages/force-copy/src/utils/types.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-namespace */ + +export namespace Object { + export type KeyType = string | number | symbol; + + export type Keys> = keyof T; + + export type Values> = T[keyof T]; +} + +export namespace Array { + export type Values = T[number]; +} + +export namespace String { + export type Map = { [P in T]: P }; +} + +export namespace Reflex { + type _Array> = T extends string + ? [type: T, payload: unknown extends M[T] ? null : M[T]] + : never; + + export type Array> = _Array, M>; + + type _Map> = { + [P in T]: { type: P; payload: unknown extends M[P] ? never : M[P] }; + }; + + export type Tuple> = Object.Values<_Map, M>>; +} diff --git a/packages/force-copy/src/worker/channel/content.ts b/packages/force-copy/src/worker/channel/content.ts new file mode 100644 index 0000000..b5ed2cf --- /dev/null +++ b/packages/force-copy/src/worker/channel/content.ts @@ -0,0 +1,29 @@ +import { CWBridge } from "@/bridge/content-worker"; +import type { CWRequestType } from "@/bridge/content-worker/request"; +import { cross } from "@/utils/global"; +import { logger } from "@/utils/logger"; +import { RELOAD_APP, reloadApp } from "@/utils/reload"; + +export const onContentMessage = (data: CWRequestType, sender: chrome.runtime.MessageSender) => { + logger.info("Worker Receive Content Message", data); + switch (data.type) { + case CWBridge.REQUEST.RELOAD: { + reloadApp(RELOAD_APP); + break; + } + case CWBridge.REQUEST.SET_BADGE: { + const { payload } = data; + if (payload && sender.tab && sender.tab.id) { + const tabId = sender.tab.id; + let action: typeof cross.action | typeof cross.browserAction = cross.action; + // #IFDEF GECKO + action = cross.browserAction; + // #ENDIF + action.setBadgeText({ text: payload.toString(), tabId }); + action.setBadgeBackgroundColor({ color: "#4e5969", tabId }); + } + break; + } + } + return null; +}; diff --git a/packages/force-copy/src/worker/index.ts b/packages/force-copy/src/worker/index.ts new file mode 100644 index 0000000..abd5656 --- /dev/null +++ b/packages/force-copy/src/worker/index.ts @@ -0,0 +1,14 @@ +import { LOG_LEVEL, logger } from "@/utils/logger"; +import { importWorkerScript } from "./runtime/script"; +import { CWBridge } from "@/bridge/content-worker"; +import { onContentMessage } from "./channel/content"; +import { initializeEvents } from "./runtime/initialize"; + +(() => { + if (__DEV__) { + logger.setLevel(LOG_LEVEL.INFO); + } + initializeEvents(); + importWorkerScript(); + CWBridge.onContentMessage(onContentMessage); +})(); diff --git a/packages/force-copy/src/worker/runtime/initialize.ts b/packages/force-copy/src/worker/runtime/initialize.ts new file mode 100644 index 0000000..0d2f5ae --- /dev/null +++ b/packages/force-copy/src/worker/runtime/initialize.ts @@ -0,0 +1,53 @@ +import { URL_MATCH } from "@/utils/constant"; +import { cross } from "@/utils/global"; +import { logger } from "@/utils/logger"; +import { NOOP } from "../utils/constant"; + +export const initializeEvents = () => { + const onSetup = () => { + logger.info("Register Inject Scripts On Setup"); + cross.tabs.query({}).then(tabs => { + for (const tab of tabs) { + const tabId = tab && tab.id; + const tabURL = tab && tab.url; + if (!tabId || !tabURL) continue; + if (!URL_MATCH.some(match => new RegExp(match).test(tabURL))) { + continue; + } + // #IFDEF CHROMIUM + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/scripting/executeScript + cross.scripting.executeScript({ + target: { tabId: tabId, allFrames: true }, + files: ["content.js"], + injectImmediately: true, + }); + cross.scripting.executeScript({ + target: { tabId: tabId, allFrames: true }, + files: [process.env.INJECT_FILE + ".js"], + injectImmediately: true, + world: "MAIN", + }); + // #ENDIF + // #IFDEF GECKO + // https://developer.mozilla.org/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript + cross.tabs + .executeScript(tabId, { + allFrames: true, + file: process.env.INJECT_FILE + ".js", + }) + .catch(NOOP); + cross.tabs + .executeScript(tabId, { + allFrames: true, + file: "content.js", + }) + .catch(NOOP); + // #ENDIF + } + }); + }; + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onInstalled + cross.runtime.onInstalled.addListener(onSetup); + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/management/onEnabled + cross.management.onEnabled.addListener(onSetup); +}; diff --git a/packages/force-copy/src/worker/runtime/script.ts b/packages/force-copy/src/worker/runtime/script.ts new file mode 100644 index 0000000..6e0c3e8 --- /dev/null +++ b/packages/force-copy/src/worker/runtime/script.ts @@ -0,0 +1,127 @@ +import { URL_MATCH } from "@/utils/constant"; +import { cross } from "@/utils/global"; +import { logger } from "@/utils/logger"; +import { CODE_PREFIX, CODE_SUFFIX } from "../utils/constant"; + +export const importWorkerScript = () => { + // #IFDEF CHROMIUM + // https://bugs.chromium.org/p/chromium/issues/detail?id=634381 + // https://stackoverflow.com/questions/75495191/chrome-extension-manifest-v3-how-to-use-window-addeventlistener + if (cross.scripting && cross.scripting.registerContentScripts) { + logger.info("Register Inject Scripts By Scripting API"); + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/scripting/registerContentScripts + cross.scripting + .registerContentScripts([ + { + matches: [...URL_MATCH], + runAt: "document_start", + world: "MAIN", + allFrames: true, + js: [process.env.INJECT_FILE + ".js"], + id: process.env.INJECT_FILE, + }, + ]) + .catch(err => { + logger.warning("Register Inject Scripts Failed", err); + }); + } else { + logger.info("Register Inject Scripts By Tabs API"); + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/onUpdated + cross.tabs.onUpdated.addListener((_, changeInfo, tab) => { + if (changeInfo.status == "loading") { + const tabId = tab && tab.id; + const tabURL = tab && tab.url; + if (tabURL && !URL_MATCH.some(match => new RegExp(match).test(tabURL))) { + return void 0; + } + if (tabId && cross.scripting) { + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/scripting/executeScript + cross.scripting.executeScript({ + target: { tabId: tabId, allFrames: true }, + files: [process.env.INJECT_FILE + ".js"], + injectImmediately: true, + }); + } + } + }); + } + // #ENDIF + + // #IFDEF GECKO + logger.info("Register Inject Scripts By Content Script Inline Code"); + // 使用 cross.tabs.executeScript 得到的 Window 是 Content Window + // 此时就必须要使用 Inject Script 的方式才能正常注入脚本 + // 然而这种方式就会受到 Content Security Policy 策略的限制 + // https://github.com/violentmonkey/violentmonkey/issues/1001 + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onHeadersReceived + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onResponseStarted + cross.webRequest.onResponseStarted.addListener( + res => { + if (!res.responseHeaders) return void 0; + if (res.type !== "main_frame" && res.type !== "sub_frame") { + return void 0; + } + for (let i = 0; i < res.responseHeaders.length; i++) { + const responseHeaderName = res.responseHeaders[i].name.toLowerCase(); + // 仅处理 CSP 的问题 + if (responseHeaderName !== "content-security-policy") continue; + const value = res.responseHeaders[i].value || ""; + // CSP 不支持多个 nonce, 但可以配置多个 sha-hash + // 这里的 hash 会在编译时计算并替换资源 'sha256-${CSP-HASH}' + // 但对 CSP 策略修改存在问题, 这里仅读取并尝试注入, 而不直接增加 hash + // 例如 'self' => ok / 'self'+'hash' => error 宽松到严格结构问题 + // 此外即使覆盖原有的响应头, 扩展的 CSP 总是更倾向于更加严格的模式 + // 在实际测试中, 仅有完全抹除标头时, 才可以实际解决多个扩展冲突的问题 + // ... + // 存在 CSP 时尝试直接在 Content Script 中执行 + let code = [ + `if (window["${process.env.INJECT_FILE}"] && document instanceof XMLDocument === false) {`, + ` window["${process.env.INJECT_FILE}"]();`, + `};`, + ].join("\n"); + // 如果存在 blob: 的配置 尝试以 blob src 的形式注入 + if (/script-src[- \w']+blob:/.test(value)) { + code = [ + CODE_PREFIX, + `script.src = URL.createObjectURL(new Blob([code]));`, + CODE_SUFFIX, + ].join("\n"); + } + // 如果存在 nonce 的配置 则会尝试以 nonce 的形式注入 + const nonce = /'nonce-([-+/=\w]+)'/.exec(value); + if (nonce && nonce[1]) { + code = [ + CODE_PREFIX, + `script.nonce = "${nonce[1]}";`, + `script.innerText = code;`, + CODE_SUFFIX, + ].join("\n"); + } + const onUpdate = (_: number, changeInfo: chrome.tabs.TabChangeInfo) => { + if (changeInfo.status !== "loading") return void 0; + // https://developer.mozilla.org/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript + cross.tabs + .executeScript(res.tabId, { + allFrames: false, + code: code, + runAt: "document_start", + frameId: res.frameId, + }) + .catch(err => { + if (__DEV__) logger.warning("Inject Script", err); + }); + cross.tabs.onUpdated.removeListener(onUpdate); + }; + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/onUpdated + // @ts-expect-error filter params + cross.tabs.onUpdated.addListener(onUpdate, { tabId: res.tabId }); + } + // onHeadersReceived 仅读取响应头而不修改 + return void 0; + }, + { urls: URL_MATCH, types: ["main_frame", "sub_frame"] }, + ["responseHeaders"] + ); + // #ENDIF +}; diff --git a/packages/force-copy/src/worker/utils/constant.ts b/packages/force-copy/src/worker/utils/constant.ts new file mode 100644 index 0000000..766e417 --- /dev/null +++ b/packages/force-copy/src/worker/utils/constant.ts @@ -0,0 +1,14 @@ +export const CODE_PREFIX = [ + `if (window["${process.env.INJECT_FILE}"] && document instanceof XMLDocument === false) {`, + ` const script = document.createElementNS("http://www.w3.org/1999/xhtml", "script");`, + ` script.setAttribute("type", "text/javascript");`, + ` const code = \`;(\${window["${process.env.INJECT_FILE}"].toString()})();\`;`, +].join("\n"); + +export const CODE_SUFFIX = [ + ` document.documentElement.appendChild(script);`, + ` script.remove();`, + `}`, +].join("\n"); + +export const NOOP = () => null; diff --git a/packages/force-copy/tsconfig.json b/packages/force-copy/tsconfig.json new file mode 100644 index 0000000..4141fb9 --- /dev/null +++ b/packages/force-copy/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["./src/**/*.ts", "./src/**/*.tsx"] +} diff --git a/packages/site-director/README.md b/packages/site-director/README.md new file mode 100644 index 0000000..6f179bc --- /dev/null +++ b/packages/site-director/README.md @@ -0,0 +1,3 @@ +# 跳转链接直达 + +跳转链接直达,自动跳转链接的中间页面,用于谷歌、知乎、`CSDN`、简书。 diff --git a/packages/site-director/meta.json b/packages/site-director/meta.json new file mode 100644 index 0000000..7519517 --- /dev/null +++ b/packages/site-director/meta.json @@ -0,0 +1,22 @@ +{ + "name": "🔥🔥🔥跳转链接直达🔥🔥🔥", + "namespace": "https://github.com/WindrunnerMax/TKScript", + "version": "1.3.3", + "description": "跳转链接直达,去掉确定跳转链接页面,用于谷歌、知乎、CSDN、简书", + "author": "Czy", + "match": [ + "*://*.google.com/*", + "*://*.google.com.cn/*", + "*://*.google.com.hk/*", + "*://link.zhihu.com/*", + "*://link.csdn.net/*", + "*://link.juejin.cn/*", + "*://www.jianshu.com/go-wild/*", + "*://mail.qq.com/cgi-bin/readtemplate/*" + ], + "license": "MIT License", + "supportURL": "https://github.com/WindrunnerMax/TKScript/issues", + "installURL": "https://github.com/WindrunnerMax/TKScript", + "grant": ["unsafeWindow", "GM_xmlhttpRequest"], + "run-at": "document-start" +} diff --git a/packages/site-director/package.json b/packages/site-director/package.json new file mode 100644 index 0000000..717098a --- /dev/null +++ b/packages/site-director/package.json @@ -0,0 +1,10 @@ +{ + "name": "site-director", + "version": "1.0.0", + "author": "Czy", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/WindrunnerMax/TKScript" + } +} diff --git a/packages/site-director/src/index.ts b/packages/site-director/src/index.ts new file mode 100644 index 0000000..e1c723c --- /dev/null +++ b/packages/site-director/src/index.ts @@ -0,0 +1,13 @@ +import type { Website } from "./websites"; +import websites from "./websites"; + +((): void => { + const mather = (regex: RegExp, website: Website) => { + if (regex.test(window.location.href)) { + website.init(); + return true; + } + return false; + }; + websites.some(website => mather(website.regexp, website)); +})(); diff --git a/packages/site-director/src/modules/csdn.ts b/packages/site-director/src/modules/csdn.ts new file mode 100644 index 0000000..8b2f184 --- /dev/null +++ b/packages/site-director/src/modules/csdn.ts @@ -0,0 +1,17 @@ +import type { Website } from "../websites"; + +const website: Website = { + regexp: /csdn/, + init: function () { + const result = /.*link.csdn.net\/\?target=(.*)/.exec(location.href); + if (result) { + const url = decodeURIComponent(result[1]); + if (url) { + console.log(url); + location.href = url; + } + } + }, +}; + +export default website; diff --git a/packages/site-director/src/modules/google.ts b/packages/site-director/src/modules/google.ts new file mode 100644 index 0000000..2463b41 --- /dev/null +++ b/packages/site-director/src/modules/google.ts @@ -0,0 +1,14 @@ +import type { Website } from "../websites"; + +const website: Website = { + regexp: /google/, + init: function () { + const isScholar = window.location.host.startsWith("scholar"); + const selector = isScholar ? "#gs_bdy_ccl .gs_rt a" : "#res a"; + document.addEventListener("DOMContentLoaded", () => + document.querySelectorAll(selector).forEach(item => item.setAttribute("target", "_blank")) + ); + }, +}; + +export default website; diff --git a/packages/site-director/src/modules/jianshu.ts b/packages/site-director/src/modules/jianshu.ts new file mode 100644 index 0000000..918b60c --- /dev/null +++ b/packages/site-director/src/modules/jianshu.ts @@ -0,0 +1,16 @@ +import type { Website } from "../websites"; + +const website: Website = { + regexp: /jianshu/, + init: function () { + const result = /.*jianshu.com\/go-wild.*url=(.*)/.exec(location.href); + if (result) { + const url = decodeURIComponent(result[1]); + if (url) { + location.href = url; + } + } + }, +}; + +export default website; diff --git a/packages/site-director/src/modules/juejin.ts b/packages/site-director/src/modules/juejin.ts new file mode 100644 index 0000000..729fa12 --- /dev/null +++ b/packages/site-director/src/modules/juejin.ts @@ -0,0 +1,13 @@ +import type { Website } from "../websites"; + +const website: Website = { + regexp: /link\.juejin/, + init: function () { + const result = new URL(location.href).searchParams.get("target"); + if (result) { + location.href = decodeURIComponent(result); + } + }, +}; + +export default website; diff --git a/packages/site-director/src/modules/qq-mail.ts b/packages/site-director/src/modules/qq-mail.ts new file mode 100644 index 0000000..9fa4e63 --- /dev/null +++ b/packages/site-director/src/modules/qq-mail.ts @@ -0,0 +1,13 @@ +import type { Website } from "../websites"; + +const website: Website = { + regexp: /mail\.qq/, + init: function () { + const result = new URL(location.href).searchParams.get("gourl"); + if (result) { + location.href = decodeURIComponent(result); + } + }, +}; + +export default website; diff --git a/packages/site-director/src/modules/zhihu.ts b/packages/site-director/src/modules/zhihu.ts new file mode 100644 index 0000000..7529d21 --- /dev/null +++ b/packages/site-director/src/modules/zhihu.ts @@ -0,0 +1,17 @@ +import type { Website } from "../websites"; + +const website: Website = { + regexp: /link\.zhihu/, + init: function () { + const result = /.*link.zhihu.com\/\?target=(.*)/.exec(location.href); + if (result) { + const url = decodeURIComponent(result[1]); + if (url) { + console.log(url); + location.href = url; + } + } + }, +}; + +export default website; diff --git a/src/site-director/src/style.css b/packages/site-director/src/style.css similarity index 100% rename from src/site-director/src/style.css rename to packages/site-director/src/style.css diff --git a/packages/site-director/src/utils.ts b/packages/site-director/src/utils.ts new file mode 100644 index 0000000..5ef7e44 --- /dev/null +++ b/packages/site-director/src/utils.ts @@ -0,0 +1,9 @@ +export default { + directByBlockEvent: function (event: Event): void { + event.stopPropagation(); + event.preventDefault(); + }, + directByCapture: function (el: Element): void { + el.addEventListener("click", e => this.directByBlockEvent(e)); + }, +}; diff --git a/packages/site-director/src/websites.ts b/packages/site-director/src/websites.ts new file mode 100644 index 0000000..4f1d4d4 --- /dev/null +++ b/packages/site-director/src/websites.ts @@ -0,0 +1,15 @@ +import google from "./modules/google"; +import zhihu from "./modules/zhihu"; +import csdn from "./modules/csdn"; +import jianshu from "./modules/jianshu"; +import qqMail from "./modules/qq-mail"; +import juejin from "./modules/juejin"; + +export interface Website { + regexp: RegExp; + init: () => void; +} + +const websites: Website[] = [google, zhihu, csdn, jianshu, qqMail, juejin]; + +export default websites; diff --git a/packages/water-mark/README.md b/packages/water-mark/README.md new file mode 100644 index 0000000..d51fe2f --- /dev/null +++ b/packages/water-mark/README.md @@ -0,0 +1,3 @@ +# 移除页面水印 + +独立适配模式,移除常见网页的水印。 diff --git a/packages/water-mark/meta.json b/packages/water-mark/meta.json new file mode 100644 index 0000000..2769c08 --- /dev/null +++ b/packages/water-mark/meta.json @@ -0,0 +1,21 @@ +{ + "name": { + "default": "🔥🔥🔥移除页面水印🔥🔥🔥", + "en": "Remove Page Watermark", + "zh": "🔥🔥🔥移除页面水印🔥🔥🔥" + }, + "namespace": "https://github.com/WindrunnerMax/TKScript", + "version": "1.0.7", + "description": { + "default": "移除常见网页的水印", + "en": "Remove watermarks from common web pages", + "zh": "移除常见网页的水印" + }, + "author": "Czy", + "match": ["http://*/*", "https://*/*"], + "supportURL": "https://github.com/WindrunnerMax/TKScript/issues", + "license": "GPL License", + "installURL": "https://github.com/WindrunnerMax/TKScript", + "run-at": "document-start", + "grant": ["GM_addStyle", "unsafeWindow"] +} diff --git a/packages/water-mark/package.json b/packages/water-mark/package.json new file mode 100644 index 0000000..564407b --- /dev/null +++ b/packages/water-mark/package.json @@ -0,0 +1,17 @@ +{ + "name": "water-mark", + "version": "1.0.0", + "author": "Czy", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/WindrunnerMax/TKScript" + }, + "scripts": { + "lint:ts": "../../node_modules/typescript/bin/tsc --noEmit" + }, + "sideEffects": false, + "files": [ + "src" + ] +} diff --git a/packages/water-mark/src/index.ts b/packages/water-mark/src/index.ts new file mode 100644 index 0000000..13a60f7 --- /dev/null +++ b/packages/water-mark/src/index.ts @@ -0,0 +1,6 @@ +import { basic } from "./modules/basic"; +import type { Website } from "./types/website"; + +const websites: Website[] = [basic]; +const web = websites.find(item => item.regexp.test(location.href)); +web && web.init(); diff --git a/packages/water-mark/src/modules/basic.ts b/packages/water-mark/src/modules/basic.ts new file mode 100644 index 0000000..ff575ed --- /dev/null +++ b/packages/water-mark/src/modules/basic.ts @@ -0,0 +1,48 @@ +import type { Website } from "../types/website"; +import { FALLBACK_CLASS, OPACITY_BACKGROUND_PROPERTY, OPACITY_PROPERTY } from "../utils/constant"; +import { inspectWaterMarkDOM } from "../utils/dom"; +import { injectCSSEarly } from "../utils/styles"; + +export const basic: Website = { + regexp: /.*/, + init: () => { + const observer = MutationObserver.prototype.observe; + MutationObserver.prototype.observe = function (target, options) { + inspectWaterMarkDOM(target); + target.childNodes.forEach(inspectWaterMarkDOM); + observer.call(this, target, options); + }; + const _MutationObserver = MutationObserver; + const getMutationCallback = (callback: MutationCallback) => { + return (records: MutationRecord[], observer: MutationObserver) => { + let isMatchedWaterMarkDOM = false; + for (const record of records) { + if (inspectWaterMarkDOM(record.target) && !isMatchedWaterMarkDOM) { + isMatchedWaterMarkDOM = true; + } + } + !isMatchedWaterMarkDOM && callback(records, observer); + }; + }; + unsafeWindow.MutationObserver = class extends _MutationObserver { + constructor(callback: MutationCallback) { + super(getMutationCallback(callback)); + } + }; + const PRESET_CLASSES = [`.${FALLBACK_CLASS}`].join(","); + injectCSSEarly(`${PRESET_CLASSES}{${OPACITY_PROPERTY}}`); + const PRESET_BACKGROUND = [ + `div[id*="watermark"]`, + `div[id*="WaterMark"]`, + `div[id*="Watermark"]`, + `div[class*="watermark"]`, + `div[class*="WaterMark"]`, + `div[class*="Watermark"]`, + `div[style*="pointer-events"][style*="background: url"]`, + `div[style*="pointer-events"][style*="background-image: url"]`, + `div[style*="pointer-events"][style*="background:url"]`, + `div[style*="pointer-events"][style*="background-image:url"]`, + ].join(","); + injectCSSEarly(`${PRESET_BACKGROUND}{${OPACITY_BACKGROUND_PROPERTY}}`); + }, +}; diff --git a/packages/water-mark/src/types/global.d.ts b/packages/water-mark/src/types/global.d.ts new file mode 100644 index 0000000..78f54b5 --- /dev/null +++ b/packages/water-mark/src/types/global.d.ts @@ -0,0 +1,8 @@ +declare const unsafeWindow = any; + +declare module "*.css" { + const content: string; + export default content; +} + +declare const GM_addStyle: (css: string) => void; diff --git a/packages/water-mark/src/types/website.ts b/packages/water-mark/src/types/website.ts new file mode 100644 index 0000000..16c4615 --- /dev/null +++ b/packages/water-mark/src/types/website.ts @@ -0,0 +1,4 @@ +export type Website = { + regexp: RegExp; + init: () => void; +}; diff --git a/packages/water-mark/src/utils/constant.ts b/packages/water-mark/src/utils/constant.ts new file mode 100644 index 0000000..710e471 --- /dev/null +++ b/packages/water-mark/src/utils/constant.ts @@ -0,0 +1,15 @@ +export const FALLBACK_CLASS = "__WATERMARK__"; + +export const OPACITY_PROPERTY = [ + "opacity: 0 !important;", + "visibility: hidden !important;", + "transform: translate(-999999px, -999999px) !important;", +].join(""); + +export const OPACITY_BACKGROUND_PROPERTY = [ + "background: transparent !important;", + "background-color: transparent !important;", + "background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0)) !important;", +].join(""); + +export const NOOP = () => null; diff --git a/packages/water-mark/src/utils/dom.ts b/packages/water-mark/src/utils/dom.ts new file mode 100644 index 0000000..d094ce3 --- /dev/null +++ b/packages/water-mark/src/utils/dom.ts @@ -0,0 +1,22 @@ +import { FALLBACK_CLASS } from "./constant"; + +export const inspectWaterMarkDOM = (node: Node) => { + if (node instanceof HTMLElement === false) { + return false; + } + if (node.classList.contains(FALLBACK_CLASS)) { + return true; + } + if (!node.hasAttribute("style") || node.style.pointerEvents !== "none") { + return false; + } + if (node instanceof HTMLImageElement && node.src && node.src.startsWith("data:")) { + !node.classList.contains(FALLBACK_CLASS) && node.classList.add(FALLBACK_CLASS); + return true; + } + if (node.style.background.startsWith("url") || node.style.backgroundImage.startsWith("url")) { + !node.classList.contains(FALLBACK_CLASS) && node.classList.add(FALLBACK_CLASS); + return true; + } + return false; +}; diff --git a/packages/water-mark/src/utils/styles.ts b/packages/water-mark/src/utils/styles.ts new file mode 100644 index 0000000..073b359 --- /dev/null +++ b/packages/water-mark/src/utils/styles.ts @@ -0,0 +1,21 @@ +import { styles } from "../../../copy-currency/src/utils"; + +export const injectCSSEarly = (css: string) => { + if (typeof GM_addStyle === "function") { + GM_addStyle(css); + return void 0; + } + const style = document.createElement("style"); + style.innerText = css; + const head = document.head; + if (head) { + head.appendChild(style); + return void 0; + } + const html = document.documentElement; + if (html) { + html.appendChild(style); + return void 0; + } + styles.insertCSS(String(Math.random()), css); +}; diff --git a/packages/water-mark/tsconfig.json b/packages/water-mark/tsconfig.json new file mode 100644 index 0000000..8432a29 --- /dev/null +++ b/packages/water-mark/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["./src/**/*.ts", "./src/**/*.tsx"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ee34c4..3bd7c38 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,7734 +1,6510 @@ -lockfileVersion: 5.3 - -specifiers: - '@babel/core': ^7.15.5 - '@babel/preset-env': ^7.15.4 - '@babel/preset-typescript': ^7.15.0 - '@rollup/plugin-commonjs': ^20.0.0 - '@rollup/plugin-json': ^4.1.0 - '@rollup/plugin-node-resolve': ^13.0.4 - '@types/jquery': ^3.5.8 - '@typescript-eslint/eslint-plugin': ^4.30.0 - '@typescript-eslint/parser': ^4.30.0 - babel-core: ^7.0.0-bridge.0 - babel-jest: ^23.4.2 - clipboard: ^2.0.8 - eslint: ^7.32.0 - eslint-config-prettier: ^8.3.0 - eslint-plugin-jest: ^24.4.0 - eslint-plugin-prettier: ^3.4.0 - jest: ^27.1.0 - jquery: ^3.6.0 - jsdom: ^17.0.0 - postcss: ^8.3.11 - prettier: ^2.3.2 - rollup: ^2.18.2 - rollup-plugin-babel: ^4.4.0 - rollup-plugin-postcss: ^4.0.1 - rollup-plugin-typescript2: ^0.30.0 - rollup-plugin-userscript-metablock: ^0.3.1 - ts-jest: ^27.0.5 - typescript: ^4.4.2 - -devDependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/preset-env': registry.npmmirror.com/@babel/preset-env/7.16.4_@babel+core@7.16.0 - '@babel/preset-typescript': registry.npmmirror.com/@babel/preset-typescript/7.16.0_@babel+core@7.16.0 - '@rollup/plugin-commonjs': registry.npmmirror.com/@rollup/plugin-commonjs/20.0.0_rollup@2.60.0 - '@rollup/plugin-json': registry.npmmirror.com/@rollup/plugin-json/4.1.0_rollup@2.60.0 - '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve/13.0.6_rollup@2.60.0 - '@types/jquery': registry.npmmirror.com/@types/jquery/3.5.8 - '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/4.33.0_d00b196ac5df1286ea7e45797bebddbc - '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/4.33.0_eslint@7.32.0+typescript@4.5.2 - babel-core: registry.nlark.com/babel-core/7.0.0-bridge.0_@babel+core@7.16.0 - babel-jest: registry.npmmirror.com/babel-jest/23.6.0_babel-core@7.0.0-bridge.0 - clipboard: registry.nlark.com/clipboard/2.0.8 - eslint: registry.npmmirror.com/eslint/7.32.0 - eslint-config-prettier: registry.nlark.com/eslint-config-prettier/8.3.0_eslint@7.32.0 - eslint-plugin-jest: registry.npmmirror.com/eslint-plugin-jest/24.7.0_2da712defe3c3d483336ef1879e5f55b - eslint-plugin-prettier: registry.npmmirror.com/eslint-plugin-prettier/3.4.1_6e975bd57c7acf028c1a9ddbbf60c898 - jest: registry.npmmirror.com/jest/27.3.1 - jquery: registry.nlark.com/jquery/3.6.0 - jsdom: registry.npmmirror.com/jsdom/17.0.0 - postcss: registry.npmmirror.com/postcss/8.3.11 - prettier: registry.nlark.com/prettier/2.4.1 - rollup: registry.npmmirror.com/rollup/2.60.0 - rollup-plugin-babel: registry.npmmirror.com/rollup-plugin-babel/4.4.0_@babel+core@7.16.0+rollup@2.60.0 - rollup-plugin-postcss: registry.npmmirror.com/rollup-plugin-postcss/4.0.1_postcss@8.3.11 - rollup-plugin-typescript2: registry.npmmirror.com/rollup-plugin-typescript2/0.30.0_rollup@2.60.0+typescript@4.5.2 - rollup-plugin-userscript-metablock: registry.npmmirror.com/rollup-plugin-userscript-metablock/0.3.1 - ts-jest: registry.npmmirror.com/ts-jest/27.0.7_9c352fe8ccc2be965804f3cbe24c9cac - typescript: registry.npmmirror.com/typescript/4.5.2 +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@rollup/plugin-commonjs': + specifier: 20.0.0 + version: 20.0.0(rollup@2.56.3) + '@rollup/plugin-node-resolve': + specifier: 13.0.4 + version: 13.0.4(rollup@2.56.3) + '@rollup/plugin-replace': + specifier: 5.0.2 + version: 5.0.2(rollup@2.56.3) + '@types/node': + specifier: 20.8.0 + version: 20.8.0 + '@typescript-eslint/eslint-plugin': + specifier: 5.4.0 + version: 5.4.0(@typescript-eslint/parser@5.4.0)(eslint@7.32.0)(typescript@4.6.2) + '@typescript-eslint/parser': + specifier: 5.4.0 + version: 5.4.0(eslint@7.32.0)(typescript@4.6.2) + cross-env: + specifier: 7.0.3 + version: 7.0.3 + esbuild: + specifier: 0.15.10 + version: 0.15.10 + eslint: + specifier: 7.32.0 + version: 7.32.0 + eslint-config-prettier: + specifier: 8.3.0 + version: 8.3.0(eslint@7.32.0) + eslint-plugin-prettier: + specifier: 3.3.1 + version: 3.3.1(eslint-config-prettier@8.3.0)(eslint@7.32.0)(prettier@2.3.2) + eslint-plugin-react: + specifier: 7.27.0 + version: 7.27.0(eslint@7.32.0) + eslint-plugin-react-hooks: + specifier: 4.3.0 + version: 4.3.0(eslint@7.32.0) + postcss: + specifier: 8.3.11 + version: 8.3.11 + prettier: + specifier: 2.3.2 + version: 2.3.2 + rollup: + specifier: 2.56.3 + version: 2.56.3 + rollup-plugin-esbuild: + specifier: 4.10.1 + version: 4.10.1(esbuild@0.15.10)(rollup@2.56.3) + rollup-plugin-postcss: + specifier: 4.0.1 + version: 4.0.1(postcss@8.3.11) + rollup-plugin-userscript-metablock: + specifier: 0.3.1 + version: 0.3.1 + tslib: + specifier: 2.6.2 + version: 2.6.2 + typescript: + specifier: 4.6.2 + version: 4.6.2 + + packages/captcha: {} + + packages/completion: {} + + packages/copy: {} + + packages/copy-currency: {} + + packages/expansion: {} + + packages/force-copy: + dependencies: + '@arco-design/web-react': + specifier: 2.50.0 + version: 2.50.0(@types/react@17.0.2)(react-dom@17.0.2)(react@17.0.2) + copy: + specifier: 'workspace: *' + version: link:../copy + copy-currency: + specifier: 'workspace: *' + version: link:../copy-currency + laser-utils: + specifier: 0.0.5-beta.0 + version: 0.0.5-beta.0 + react: + specifier: 17.0.2 + version: 17.0.2 + react-dom: + specifier: 17.0.2 + version: 17.0.2(react@17.0.2) + devDependencies: + '@rspack/cli': + specifier: 0.2.5 + version: 0.2.5(esbuild@0.15.10)(react-refresh@0.14.0)(webpack@5.91.0) + '@rspack/plugin-html': + specifier: 0.2.5 + version: 0.2.5(@rspack/core@0.2.5) + '@types/chrome': + specifier: 0.0.287 + version: 0.0.287 + '@types/react': + specifier: 17.0.2 + version: 17.0.2 + '@types/react-dom': + specifier: 17.0.2 + version: 17.0.2 + less: + specifier: 3.0.0 + version: 3.0.0 + less-loader: + specifier: 6.0.0 + version: 6.0.0(webpack@5.91.0) + sass: + specifier: 1.52.3 + version: 1.52.3 + sass-loader: + specifier: 13.3.2 + version: 13.3.2(sass@1.52.3)(webpack@5.91.0) + ts-node: + specifier: 10.9.1 + version: 10.9.1(@types/node@20.8.0)(typescript@4.6.2) + + packages/site-director: {} + + packages/water-mark: {} packages: - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.16.0: - resolution: {integrity: sha1-TJpvZp9dDN8bkKFnHpoUa+UwDOo=, tarball: '@babel/plugin-syntax-bigint/download/@babel/plugin-syntax-bigint-7.8.3.tgz'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@arco-design/color@0.4.0: + resolution: {integrity: sha512-s7p9MSwJgHeL8DwcATaXvWT3m2SigKpxx4JA1BGPHL4gfvaQsmQfrLBDpjOJFJuJ2jG2dMt3R3P8Pm9E65q18g==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - dev: true + color: 3.2.1 + dev: false - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.16.0: - resolution: {integrity: sha1-AolkqbqA28CUyRXEh618TnpmRlo=, tarball: '@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz'} + /@arco-design/web-react@2.50.0(@types/react@17.0.2)(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-UrDvvV1RADf17Q46vCtzhLowoVFVQEoLUdSlCFtC9qtEpXzTM2xM1ZgtI3r/TE1BXOzOcgzgUHnwLwIn5s67nw==} peerDependencies: - '@babel/core': ^7.0.0-0 + react: '>=16' + react-dom: '>=16' dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - dev: true + '@arco-design/color': 0.4.0 + '@babel/runtime': 7.24.5 + b-tween: 0.3.3 + b-validate: 1.5.3 + compute-scroll-into-view: 1.0.20 + dayjs: 1.11.11 + lodash: 4.17.21 + number-precision: 1.6.0 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + react-focus-lock: 2.12.1(@types/react@17.0.2)(react@17.0.2) + react-transition-group: 4.4.5(react-dom@17.0.2)(react@17.0.2) + resize-observer-polyfill: 1.5.1 + scroll-into-view-if-needed: 2.2.20 + shallowequal: 1.1.0 + transitivePeerDependencies: + - '@types/react' + dev: false - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.16.0: - resolution: {integrity: sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=, tarball: '@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@babel/code-frame@7.12.11: + resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + '@babel/highlight': 7.24.5 dev: true - /@istanbuljs/schema/0.1.3: - resolution: {integrity: sha1-5F44TkuOwWvOL9kDr3hFD2v37Jg=, tarball: '@istanbuljs/schema/download/@istanbuljs/schema-0.1.3.tgz'} - engines: {node: '>=8'} + /@babel/helper-validator-identifier@7.24.5: + resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} + engines: {node: '>=6.9.0'} dev: true - /@sinonjs/commons/1.8.3: - resolution: {integrity: sha1-OALd0hpQqUm2ch3dcto25n5/Gy0=, tarball: '@sinonjs/commons/download/@sinonjs/commons-1.8.3.tgz'} + /@babel/highlight@7.24.5: + resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} + engines: {node: '>=6.9.0'} dependencies: - type-detect: registry.nlark.com/type-detect/4.0.8 + '@babel/helper-validator-identifier': 7.24.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 dev: true - /babel-generator/6.26.1: - resolution: {integrity: sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=, tarball: babel-generator/download/babel-generator-6.26.1.tgz} + /@babel/runtime@7.24.5: + resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} dependencies: - babel-messages: registry.nlark.com/babel-messages/6.23.0 - babel-runtime: registry.nlark.com/babel-runtime/6.26.0 - babel-types: registry.npmmirror.com/babel-types/6.26.0 - detect-indent: registry.nlark.com/detect-indent/4.0.0 - jsesc: registry.nlark.com/jsesc/1.3.0 - lodash: 4.17.21 - source-map: registry.nlark.com/source-map/0.5.7 - trim-right: registry.npmmirror.com/trim-right/1.0.1 + '@jridgewell/trace-mapping': 0.3.9 dev: true - /babel-plugin-syntax-object-rest-spread/6.13.0: - resolution: {integrity: sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=, tarball: babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz} + /@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} dev: true - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.16.0: - resolution: {integrity: sha1-tDmSObibKgEfndvj5PQB/EDP9zs=, tarball: babel-preset-current-node-syntax/download/babel-preset-current-node-syntax-1.0.1.tgz} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/plugin-syntax-async-generators': registry.nlark.com/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.16.0 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-class-properties': registry.nlark.com/@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.16.0 - '@babel/plugin-syntax-import-meta': registry.nlark.com/@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.16.0 - '@babel/plugin-syntax-json-strings': registry.nlark.com/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-logical-assignment-operators': registry.nlark.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.16.0 - '@babel/plugin-syntax-nullish-coalescing-operator': registry.nlark.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.16.0 - '@babel/plugin-syntax-object-rest-spread': registry.nlark.com/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-optional-catch-binding': registry.nlark.com/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-optional-chaining': registry.nlark.com/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-top-level-await': registry.nlark.com/@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.16.0 - dev: true - - /cssstyle/2.3.0: - resolution: {integrity: sha1-/2ZaDdvcMYZLCWR/NBY0Q9kLCFI=, tarball: cssstyle/download/cssstyle-2.3.0.tgz} - engines: {node: '>=8'} - dependencies: - cssom: registry.nlark.com/cssom/0.3.8 + /@esbuild/android-arm@0.15.10: + resolution: {integrity: sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true dev: true + optional: true - /dir-glob/3.0.1: - resolution: {integrity: sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=, tarball: dir-glob/download/dir-glob-3.0.1.tgz} - engines: {node: '>=8'} + /@esbuild/linux-loong64@0.15.10: + resolution: {integrity: sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@eslint/eslintrc@0.4.3: + resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - path-type: registry.nlark.com/path-type/4.0.0 + ajv: 6.12.6 + debug: 4.3.4 + espree: 7.3.1 + globals: 13.24.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 3.14.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color dev: true - /enquirer/2.3.6: - resolution: {integrity: sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=, tarball: enquirer/download/enquirer-2.3.6.tgz} - engines: {node: '>=8.6'} + /@humanwhocodes/config-array@0.5.0: + resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} + engines: {node: '>=10.10.0'} dependencies: - ansi-colors: registry.nlark.com/ansi-colors/4.1.1 + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color dev: true - /estree-walker/1.0.1: - resolution: {integrity: sha1-MbxdYSyWtwQQa0d+bdXYqhOMtwA=, tarball: estree-walker/download/estree-walker-1.0.1.tgz} + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /estree-walker/2.0.2: - resolution: {integrity: sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=, tarball: estree-walker/download/estree-walker-2.0.2.tgz} + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 dev: true - /exit/0.1.2: - resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=, tarball: exit/download/exit-0.1.2.tgz} - engines: {node: '>= 0.8.0'} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} dev: true - /fast-diff/1.2.0: - resolution: {integrity: sha1-c+4RmC2Gyq95WYKNUZz+kn+sXwM=, tarball: fast-diff/download/fast-diff-1.2.0.tgz} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} dev: true - /fb-watchman/2.0.1: - resolution: {integrity: sha1-/IT7OdJwnPP/bXQ3BhV7tXCKioU=, tarball: fb-watchman/download/fb-watchman-2.0.1.tgz} + /@jridgewell/source-map@0.3.6: + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} dependencies: - bser: registry.nlark.com/bser/2.1.1 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 dev: true - /form-data/3.0.1: - resolution: {integrity: sha1-69U3kbeDVqma+aMA1CgsTV65dV8=, tarball: form-data/download/form-data-3.0.1.tgz} - engines: {node: '>= 6'} + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: - asynckit: registry.nlark.com/asynckit/0.4.0 - combined-stream: registry.nlark.com/combined-stream/1.0.8 - mime-types: registry.npmmirror.com/mime-types/2.1.34 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /form-data/4.0.0: - resolution: {integrity: sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=, tarball: form-data/download/form-data-4.0.0.tgz} - engines: {node: '>= 6'} + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - asynckit: registry.nlark.com/asynckit/0.4.0 - combined-stream: registry.nlark.com/combined-stream/1.0.8 - mime-types: registry.npmmirror.com/mime-types/2.1.34 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /get-caller-file/2.0.5: - resolution: {integrity: sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=, tarball: get-caller-file/download/get-caller-file-2.0.5.tgz} - engines: {node: 6.* || 8.* || >= 10.*} + /@leichtgewicht/ip-codec@2.0.5: + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} dev: true - /get-package-type/0.1.0: - resolution: {integrity: sha1-jeLYA8/0TfO8bEVuZmizbDkm4Ro=, tarball: get-package-type/download/get-package-type-0.1.0.tgz} - engines: {node: '>=8.0.0'} + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 dev: true - /get-stream/6.0.1: - resolution: {integrity: sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=, tarball: get-stream/download/get-stream-6.0.1.tgz} - engines: {node: '>=10'} + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} dev: true - /https-proxy-agent/5.0.0: - resolution: {integrity: sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=, tarball: https-proxy-agent/download/https-proxy-agent-5.0.0.tgz} - engines: {node: '>= 6'} + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: - agent-base: registry.nlark.com/agent-base/6.0.2 - debug: registry.npmmirror.com/debug/4.3.2 - transitivePeerDependencies: - - supports-color + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 dev: true - /import-cwd/3.0.0: - resolution: {integrity: sha1-IIRVR3GAFRJuqbNna3WS+4vUz5I=, tarball: import-cwd/download/import-cwd-3.0.0.tgz} - engines: {node: '>=8'} + /@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0): + resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} + engines: {node: '>= 10.13'} + peerDependencies: + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <4.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true + dependencies: + ansi-html-community: 0.0.8 + common-path-prefix: 3.0.0 + core-js-pure: 3.37.0 + error-stack-parser: 2.1.4 + find-up: 5.0.0 + html-entities: 2.5.2 + loader-utils: 2.0.4 + react-refresh: 0.14.0 + schema-utils: 3.3.0 + source-map: 0.7.4 + webpack: 5.76.0(esbuild@0.15.10) + webpack-dev-server: 4.13.1(webpack@5.76.0) + dev: true + + /@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.14.0)(webpack@5.91.0): + resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} + engines: {node: '>= 10.13'} + peerDependencies: + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <4.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true dependencies: - import-from: registry.nlark.com/import-from/3.0.0 + ansi-html-community: 0.0.8 + common-path-prefix: 3.0.0 + core-js-pure: 3.37.0 + error-stack-parser: 2.1.4 + find-up: 5.0.0 + html-entities: 2.5.2 + loader-utils: 2.0.4 + react-refresh: 0.14.0 + schema-utils: 3.3.0 + source-map: 0.7.4 + webpack: 5.91.0(esbuild@0.15.10) dev: true - /inherits/2.0.4: - resolution: {integrity: sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=, tarball: inherits/download/inherits-2.0.4.tgz} + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} dev: true - /is-equal-shallow/0.1.3: - resolution: {integrity: sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=, tarball: is-equal-shallow/download/is-equal-shallow-0.1.3.tgz} - engines: {node: '>=0.10.0'} + /@rollup/plugin-commonjs@20.0.0(rollup@2.56.3): + resolution: {integrity: sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^2.38.3 dependencies: - is-primitive: registry.nlark.com/is-primitive/2.0.0 - dev: true - - /is-module/1.0.0: - resolution: {integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=, tarball: is-module/download/is-module-1.0.0.tgz} + '@rollup/pluginutils': 3.1.0(rollup@2.56.3) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 7.2.3 + is-reference: 1.2.1 + magic-string: 0.25.9 + resolve: 1.22.8 + rollup: 2.56.3 dev: true - /is-utf8/0.2.1: - resolution: {integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=, tarball: is-utf8/download/is-utf8-0.2.1.tgz} + /@rollup/plugin-node-resolve@13.0.4(rollup@2.56.3): + resolution: {integrity: sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^2.42.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.56.3) + '@types/resolve': 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.8 + rollup: 2.56.3 dev: true - /lodash.merge/4.6.2: - resolution: {integrity: sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=, tarball: lodash.merge/download/lodash.merge-4.6.2.tgz} + /@rollup/plugin-replace@5.0.2(rollup@2.56.3): + resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@2.56.3) + magic-string: 0.27.0 + rollup: 2.56.3 dev: true - /lodash.truncate/4.4.2: - resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=, tarball: lodash.truncate/download/lodash.truncate-4.4.2.tgz} + /@rollup/pluginutils@3.1.0(rollup@2.56.3): + 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.56.3 dev: true - /lodash/4.17.21: - resolution: {integrity: sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=, tarball: lodash/download/lodash-4.17.21.tgz} + /@rollup/pluginutils@4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 dev: true - /make-dir/3.1.0: - resolution: {integrity: sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=, tarball: make-dir/download/make-dir-3.1.0.tgz} - engines: {node: '>=8'} + /@rollup/pluginutils@5.1.0(rollup@2.56.3): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true dependencies: - semver: registry.nlark.com/semver/6.3.0 + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 2.56.3 dev: true - /preserve/0.2.0: - resolution: {integrity: sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=, tarball: preserve/download/preserve-0.2.0.tgz} - engines: {node: '>=0.10.0'} + /@rspack/binding-darwin-arm64@0.2.5: + resolution: {integrity: sha512-8JfrzDqokCqHhHWzwERA0m5riF/ZsFOCbsmC2KmnFnI5NSdZOu4ZlxyJ9miD9qsU/YaWzKMNZZc+DZppcMSKNQ==} + cpu: [arm64] + os: [darwin] + requiresBuild: true dev: true + optional: true - /remove-trailing-separator/1.1.0: - resolution: {integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8=, tarball: remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz} + /@rspack/binding-darwin-x64@0.2.5: + resolution: {integrity: sha512-YMzCG9rC1cKnDjXXQzAejT6Y1mVKoQqMt//qDD8/ognG1wVwQaddpCgwQniF3HBODAib/xrPhOLEk1nkPe8a5w==} + cpu: [x64] + os: [darwin] + requiresBuild: true dev: true + optional: true - /sourcemap-codec/1.4.8: - resolution: {integrity: sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=, tarball: sourcemap-codec/download/sourcemap-codec-1.4.8.tgz} + /@rspack/binding-linux-arm64-gnu@0.2.5: + resolution: {integrity: sha512-6thA5rs4euQUXSlCkq+0TnVnWA2Or1oFGbmIpRGf2VDZjDYZ8VtqMIgAg08ZE9qJT8tSCuGBliAE9ccxUQ009A==} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true dev: true + optional: true - /terminal-link/2.1.1: - resolution: {integrity: sha1-FKZKJ6s8Dfkz6lRvulXy0HjtyZQ=, tarball: terminal-link/download/terminal-link-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterminal-link%2Fdownload%2Fterminal-link-2.1.1.tgz} - engines: {node: '>=8'} - dependencies: - ansi-escapes: registry.nlark.com/ansi-escapes/4.3.2 - supports-hyperlinks: registry.nlark.com/supports-hyperlinks/2.2.0 + /@rspack/binding-linux-arm64-musl@0.2.5: + resolution: {integrity: sha512-sXTg+tvt0x5hEULvxi3alXAazbXh2KHubzT8hEjT9px5mPpHdhwnBTETt7+q4bbigwePT+ZDgS4Gkp2Rnqc4wg==} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true dev: true + optional: true - /util-deprecate/1.0.2: - resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=, tarball: util-deprecate/download/util-deprecate-1.0.2.tgz} + /@rspack/binding-linux-x64-gnu@0.2.5: + resolution: {integrity: sha512-wB5ST0PubSto2dVGbzS+/MItJAtmj+a5L0OoavMBsxKCfhAdKC4L7TB27LSCpZx8ltm66nNzBnv+FOep6DFV4w==} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true dev: true + optional: true - registry.nlark.com/@babel/helper-plugin-utils/7.14.5: - resolution: {integrity: sha1-WsgizpfuxGdBq3ClF5ceRDpwxak=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.14.5.tgz} - name: '@babel/helper-plugin-utils' - version: 7.14.5 - engines: {node: '>=6.9.0'} + /@rspack/binding-linux-x64-musl@0.2.5: + resolution: {integrity: sha512-Ia8V9f1PDKroXq12NstdjPazMa2TZjJNowz2T6KkGcvwVtBlzFHjg/fbwkmGHHsAtJTKmV/L7KdOyYC59P8wyw==} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true dev: true + optional: true - registry.nlark.com/@babel/helper-validator-identifier/7.15.7: - resolution: {integrity: sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz} - name: '@babel/helper-validator-identifier' - version: 7.15.7 - engines: {node: '>=6.9.0'} + /@rspack/binding-win32-arm64-msvc@0.2.5: + resolution: {integrity: sha512-erbwqRKw4/5JPhHHPkViDuOs7FwL9I/bvvowXIdyXTvCtiC1aC8GIO9bNHADgurY4ELOUF53rzWHdHBv+iN0vA==} + cpu: [arm64] + os: [win32] + requiresBuild: true dev: true + optional: true - registry.nlark.com/@babel/helper-validator-option/7.14.5: - resolution: {integrity: sha1-bnKh//GNXfy4eOHmLxoCHEty1aM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.14.5.tgz} - name: '@babel/helper-validator-option' - version: 7.14.5 - engines: {node: '>=6.9.0'} + /@rspack/binding-win32-ia32-msvc@0.2.5: + resolution: {integrity: sha512-JRceIg3S6IR/OvsSjzIMnmAAqxWkvaV9GwB+psd8La2DJQnxUJ8a4Y7tbvehROLL1zlm4M2uynX96MAWDoZ0XA==} + cpu: [ia32] + os: [win32] + requiresBuild: true dev: true + optional: true - registry.nlark.com/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.16.0: - resolution: {integrity: sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz} - id: registry.nlark.com/@babel/plugin-syntax-async-generators/7.8.4 - name: '@babel/plugin-syntax-async-generators' - version: 7.8.4 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + /@rspack/binding-win32-x64-msvc@0.2.5: + resolution: {integrity: sha512-xUt0d9CVMHdQUj+SAN8DYe6uufgQi0I4r17KCyWlWBtIF5DBGGYv5DeHAfHGkacEIde3IiiWiGQ84DaPdKSqsg==} + cpu: [x64] + os: [win32] + requiresBuild: true dev: true + optional: true - registry.nlark.com/@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.16.0: - resolution: {integrity: sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.13.tgz} - id: registry.nlark.com/@babel/plugin-syntax-class-properties/7.12.13 - name: '@babel/plugin-syntax-class-properties' - version: 7.12.13 - peerDependencies: - '@babel/core': ^7.0.0-0 + /@rspack/binding@0.2.5: + resolution: {integrity: sha512-ZkI/NdTzAExSPrV3M0rt8UTyji7KPE24JvncqB/lyjTGfpJcXmNNaOZKidyMK5C3eriUiR99zl1OiNbEbLqONA==} + optionalDependencies: + '@rspack/binding-darwin-arm64': 0.2.5 + '@rspack/binding-darwin-x64': 0.2.5 + '@rspack/binding-linux-arm64-gnu': 0.2.5 + '@rspack/binding-linux-arm64-musl': 0.2.5 + '@rspack/binding-linux-x64-gnu': 0.2.5 + '@rspack/binding-linux-x64-musl': 0.2.5 + '@rspack/binding-win32-arm64-msvc': 0.2.5 + '@rspack/binding-win32-ia32-msvc': 0.2.5 + '@rspack/binding-win32-x64-msvc': 0.2.5 + dev: true + + /@rspack/cli@0.2.5(esbuild@0.15.10)(react-refresh@0.14.0)(webpack@5.91.0): + resolution: {integrity: sha512-JjdY9T06f9E5l47/RMQN1FsXdrWYWznjb6ZquO2F4+ATP9/tunpx/B6bFlQ/NsDRJRKOp4H3hU7msbqstHkI2Q==} + hasBin: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + '@discoveryjs/json-ext': 0.5.7 + '@rspack/core': 0.2.5(webpack@5.91.0) + '@rspack/dev-server': 0.2.5(@rspack/core@0.2.5)(esbuild@0.15.10)(react-refresh@0.14.0) + colorette: 2.0.19 + interpret: 3.1.1 + rechoir: 0.8.0 + semver: 6.3.0 + webpack-bundle-analyzer: 4.6.1 + yargs: 17.6.2 + transitivePeerDependencies: + - '@swc/core' + - '@types/express' + - '@types/webpack' + - bufferutil + - debug + - esbuild + - react-refresh + - sockjs-client + - supports-color + - type-fest + - uglify-js + - utf-8-validate + - webpack + - webpack-cli + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: true + + /@rspack/core@0.2.5(webpack@5.91.0): + resolution: {integrity: sha512-JkWXIw3gPXKHHlYI5S/+W6PcbkSh5xxTqq+hbssGEVPOuEAhMoRpL/+2nVEOYdr+JW19QqZF9mnYOYtlEsE2nw==} + dependencies: + '@rspack/binding': 0.2.5 + '@rspack/dev-client': 0.2.5(react-refresh@0.14.0)(webpack@5.91.0) + '@swc/helpers': 0.5.1 + browserslist: 4.23.0 + compare-versions: 6.0.0-rc.1 + enhanced-resolve: 5.12.0 + graceful-fs: 4.2.10 + neo-async: 2.6.2 + react-refresh: 0.14.0 + schema-utils: 4.2.0 + tapable: 2.2.1 + util: 0.12.5 + watchpack: 2.4.1 + webpack-sources: 3.2.3 + zod: 3.23.8 + zod-validation-error: 1.2.0(zod@3.23.8) + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve dev: true - registry.nlark.com/@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.16.0: - resolution: {integrity: sha1-GV34mxRrS3izv4l/16JXyEZZ1AY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-class-static-block/download/@babel/plugin-syntax-class-static-block-7.14.5.tgz} - id: registry.nlark.com/@babel/plugin-syntax-class-static-block/7.14.5 - name: '@babel/plugin-syntax-class-static-block' - version: 7.14.5 - engines: {node: '>=6.9.0'} + /@rspack/dev-client@0.2.5(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0): + resolution: {integrity: sha512-eMjPdIXZkBDO3+ZVVqGpu5stokIWfBw9fZPEFSBBen1LEPpw72VoemEuCuU2gXwryhu519kwV3T7qJB2/i4txg==} peerDependencies: - '@babel/core': ^7.0.0-0 + react-refresh: '>=0.10.0 <1.0.0' + peerDependenciesMeta: + react-refresh: + optional: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0) + react-refresh: 0.14.0 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve dev: true - registry.nlark.com/@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.16.0: - resolution: {integrity: sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz} - id: registry.nlark.com/@babel/plugin-syntax-dynamic-import/7.8.3 - name: '@babel/plugin-syntax-dynamic-import' - version: 7.8.3 + /@rspack/dev-client@0.2.5(react-refresh@0.14.0)(webpack@5.91.0): + resolution: {integrity: sha512-eMjPdIXZkBDO3+ZVVqGpu5stokIWfBw9fZPEFSBBen1LEPpw72VoemEuCuU2gXwryhu519kwV3T7qJB2/i4txg==} peerDependencies: - '@babel/core': ^7.0.0-0 + react-refresh: '>=0.10.0 <1.0.0' + peerDependenciesMeta: + react-refresh: + optional: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10(react-refresh@0.14.0)(webpack@5.91.0) + react-refresh: 0.14.0 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: true + + /@rspack/dev-server@0.2.5(@rspack/core@0.2.5)(esbuild@0.15.10)(react-refresh@0.14.0): + resolution: {integrity: sha512-4UKnwOMK1jaN35KNxAXGLQBv/NfSi11s1e/dQo1jrWz0ue0UQ/RraMavkXq0GpO668tbopJFGF/vvfFBRIXeng==} + peerDependencies: + '@rspack/core': '*' + dependencies: + '@rspack/core': 0.2.5(webpack@5.91.0) + '@rspack/dev-client': 0.2.5(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0) + chokidar: 3.5.3 + connect-history-api-fallback: 2.0.0 + express: 4.18.1 + http-proxy-middleware: 2.0.6(@types/express@4.17.21) + mime-types: 2.1.35 + webpack: 5.76.0(esbuild@0.15.10) + webpack-dev-middleware: 6.0.2(webpack@5.76.0) + webpack-dev-server: 4.13.1(webpack@5.76.0) + ws: 8.8.1 + transitivePeerDependencies: + - '@swc/core' + - '@types/express' + - '@types/webpack' + - bufferutil + - debug + - esbuild + - react-refresh + - sockjs-client + - supports-color + - type-fest + - uglify-js + - utf-8-validate + - webpack-cli + - webpack-hot-middleware + - webpack-plugin-serve dev: true - registry.nlark.com/@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.16.0: - resolution: {integrity: sha1-7mATSMNw+jNNIge+FYd3SWUh/VE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-import-meta/download/@babel/plugin-syntax-import-meta-7.10.4.tgz?cache=0&sync_timestamp=1622556984205&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-import-meta%2Fdownload%2F%40babel%2Fplugin-syntax-import-meta-7.10.4.tgz} - id: registry.nlark.com/@babel/plugin-syntax-import-meta/7.10.4 - name: '@babel/plugin-syntax-import-meta' - version: 7.10.4 + /@rspack/plugin-html@0.2.5(@rspack/core@0.2.5): + resolution: {integrity: sha512-02hpGronedrgv39lfpHHz4dK3nL4r2A6D1OPipLGBJYrR7ulo90kSaXjQs1xaopoaO6Gik8X/5i14OxIA9fAGw==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@rspack/core': 0.2.5 + peerDependenciesMeta: + '@rspack/core': + optional: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + '@rspack/core': 0.2.5(webpack@5.91.0) + '@types/html-minifier-terser': 7.0.0 + html-minifier-terser: 7.0.0 + lodash.template: 4.5.0 + parse5: 7.1.1 + tapable: 2.2.1 dev: true - registry.nlark.com/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.16.0: - resolution: {integrity: sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz} - id: registry.nlark.com/@babel/plugin-syntax-json-strings/7.8.3 - name: '@babel/plugin-syntax-json-strings' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 + /@swc/helpers@0.5.1: + resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + tslib: 2.6.2 dev: true - registry.nlark.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.16.0: - resolution: {integrity: sha1-ypHvRjA1MESLkGZSusLp/plB9pk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz} - id: registry.nlark.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4 - name: '@babel/plugin-syntax-logical-assignment-operators' - version: 7.10.4 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} dev: true - registry.nlark.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.16.0: - resolution: {integrity: sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz} - id: registry.nlark.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3 - name: '@babel/plugin-syntax-nullish-coalescing-operator' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + /@tsconfig/node10@1.0.11: + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} dev: true - registry.nlark.com/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.16.0: - resolution: {integrity: sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz} - id: registry.nlark.com/@babel/plugin-syntax-object-rest-spread/7.8.3 - name: '@babel/plugin-syntax-object-rest-spread' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} dev: true - registry.nlark.com/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.16.0: - resolution: {integrity: sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz} - id: registry.nlark.com/@babel/plugin-syntax-optional-catch-binding/7.8.3 - name: '@babel/plugin-syntax-optional-catch-binding' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} dev: true - registry.nlark.com/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.16.0: - resolution: {integrity: sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz} - id: registry.nlark.com/@babel/plugin-syntax-optional-chaining/7.8.3 - name: '@babel/plugin-syntax-optional-chaining' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true - registry.nlark.com/@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.16.0: - resolution: {integrity: sha1-DcZnHsDqIrbpShEU+FeXDNOd4a0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-private-property-in-object/download/@babel/plugin-syntax-private-property-in-object-7.14.5.tgz} - id: registry.nlark.com/@babel/plugin-syntax-private-property-in-object/7.14.5 - name: '@babel/plugin-syntax-private-property-in-object' - version: 7.14.5 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + '@types/connect': 3.4.38 + '@types/node': 20.8.0 dev: true - registry.nlark.com/@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.16.0: - resolution: {integrity: sha1-wc/a3DWmRiQAAfBhOCR7dBw02Uw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.14.5.tgz} - id: registry.nlark.com/@babel/plugin-syntax-top-level-await/7.14.5 - name: '@babel/plugin-syntax-top-level-await' - version: 7.14.5 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@types/bonjour@3.5.13: + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + '@types/node': 20.8.0 dev: true - registry.nlark.com/@istanbuljs/load-nyc-config/1.1.0: - resolution: {integrity: sha1-/T2x1Z7PfPEh6AZQu4ZxL5tV7O0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@istanbuljs/load-nyc-config/download/@istanbuljs/load-nyc-config-1.1.0.tgz} - name: '@istanbuljs/load-nyc-config' - version: 1.1.0 - engines: {node: '>=8'} + /@types/chrome@0.0.287: + resolution: {integrity: sha512-wWhBNPNXZHwycHKNYnexUcpSbrihVZu++0rdp6GEk5ZgAglenLx+RwdEouh6FrHS0XQiOxSd62yaujM1OoQlZQ==} dependencies: - camelcase: registry.npmmirror.com/camelcase/5.3.1 - find-up: registry.npmmirror.com/find-up/4.1.0 - get-package-type: 0.1.0 - js-yaml: registry.nlark.com/js-yaml/3.14.1 - resolve-from: registry.nlark.com/resolve-from/5.0.0 + '@types/filesystem': 0.0.36 + '@types/har-format': 1.2.15 dev: true - registry.nlark.com/@jest/source-map/27.0.6: - resolution: {integrity: sha1-vp6bk1ZdSbBUi4biMgkkkftgVR8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@jest/source-map/download/@jest/source-map-27.0.6.tgz} - name: '@jest/source-map' - version: 27.0.6 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /@types/connect-history-api-fallback@1.5.4: + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: - callsites: registry.nlark.com/callsites/3.1.0 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - source-map: registry.nlark.com/source-map/0.6.1 + '@types/express-serve-static-core': 4.19.0 + '@types/node': 20.8.0 dev: true - registry.nlark.com/@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz} - name: '@nodelib/fs.scandir' - version: 2.1.5 - engines: {node: '>= 8'} + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@nodelib/fs.stat': registry.nlark.com/@nodelib/fs.stat/2.0.5 - run-parallel: registry.nlark.com/run-parallel/1.2.0 + '@types/node': 20.8.0 dev: true - registry.nlark.com/@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz} - name: '@nodelib/fs.stat' - version: 2.0.5 - engines: {node: '>= 8'} - dev: true - - registry.nlark.com/@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz} - name: '@nodelib/fs.walk' - version: 1.2.8 - engines: {node: '>= 8'} + /@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: - '@nodelib/fs.scandir': registry.nlark.com/@nodelib/fs.scandir/2.1.5 - fastq: registry.nlark.com/fastq/1.13.0 + '@types/eslint': 8.56.10 + '@types/estree': 1.0.5 dev: true - registry.nlark.com/@rollup/pluginutils/3.1.0_rollup@2.60.0: - resolution: {integrity: sha1-cGtFJO5tyLEDs8mVUz5a1oDAK5s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@rollup/pluginutils/download/@rollup/pluginutils-3.1.0.tgz} - id: registry.nlark.com/@rollup/pluginutils/3.1.0 - name: '@rollup/pluginutils' - version: 3.1.0 - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 + /@types/eslint@8.56.10: + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} dependencies: - '@types/estree': registry.npmmirror.com/@types/estree/0.0.39 - estree-walker: 1.0.1 - picomatch: registry.nlark.com/picomatch/2.3.0 - rollup: registry.npmmirror.com/rollup/2.60.0 + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 dev: true - registry.nlark.com/@rollup/pluginutils/4.1.1: - resolution: {integrity: sha1-HU2obdTt7RVlalfZM/2iuaCNR+w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@rollup/pluginutils/download/@rollup/pluginutils-4.1.1.tgz} - name: '@rollup/pluginutils' - version: 4.1.1 - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: registry.nlark.com/picomatch/2.3.0 + /@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} dev: true - registry.nlark.com/@types/stack-utils/2.0.1: - resolution: {integrity: sha1-IPGClPeX8iCbX2XI47XI6CYdEnw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@types/stack-utils/download/@types/stack-utils-2.0.1.tgz} - name: '@types/stack-utils' - version: 2.0.1 + /@types/estree@0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} dev: true - registry.nlark.com/abab/2.0.5: - resolution: {integrity: sha1-wLZ4+zLWD8EhnHhNaoJv44Wut5o=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/abab/download/abab-2.0.5.tgz} - name: abab - version: 2.0.5 + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true - registry.nlark.com/acorn-globals/6.0.0: - resolution: {integrity: sha1-Rs3Tnw+P8IqHZhm1X1rIptx3C0U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/acorn-globals/download/acorn-globals-6.0.0.tgz} - name: acorn-globals - version: 6.0.0 + /@types/express-serve-static-core@4.19.0: + resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} dependencies: - acorn: registry.npmmirror.com/acorn/7.4.1 - acorn-walk: registry.nlark.com/acorn-walk/7.2.0 + '@types/node': 20.8.0 + '@types/qs': 6.9.15 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 dev: true - registry.nlark.com/acorn-jsx/5.3.2_acorn@7.4.1: - resolution: {integrity: sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz} - id: registry.nlark.com/acorn-jsx/5.3.2 - name: acorn-jsx - version: 5.3.2 - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: - acorn: registry.npmmirror.com/acorn/7.4.1 + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.0 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 dev: true - registry.nlark.com/acorn-walk/7.2.0: - resolution: {integrity: sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz} - name: acorn-walk - version: 7.2.0 - engines: {node: '>=0.4.0'} + /@types/filesystem@0.0.36: + resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==} + dependencies: + '@types/filewriter': 0.0.33 dev: true - registry.nlark.com/agent-base/6.0.2: - resolution: {integrity: sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/agent-base/download/agent-base-6.0.2.tgz} - name: agent-base - version: 6.0.2 - engines: {node: '>= 6.0.0'} - dependencies: - debug: registry.npmmirror.com/debug/4.3.2 - transitivePeerDependencies: - - supports-color + /@types/filewriter@0.0.33: + resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==} dev: true - registry.nlark.com/alphanum-sort/1.0.2: - resolution: {integrity: sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/alphanum-sort/download/alphanum-sort-1.0.2.tgz} - name: alphanum-sort - version: 1.0.2 + /@types/har-format@1.2.15: + resolution: {integrity: sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==} dev: true - registry.nlark.com/ansi-colors/4.1.1: - resolution: {integrity: sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz} - name: ansi-colors - version: 4.1.1 - engines: {node: '>=6'} + /@types/html-minifier-terser@7.0.0: + resolution: {integrity: sha512-hw3bhStrg5e3FQT8qZKCJTrzt/UbEaunU1xRWJ+aNOTmeBMvE3S4Ml2HiiNnZgL8izu0LFVkHUoPFXL1s5QNpQ==} dev: true - registry.nlark.com/ansi-escapes/4.3.2: - resolution: {integrity: sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-escapes/download/ansi-escapes-4.3.2.tgz} - name: ansi-escapes - version: 4.3.2 - engines: {node: '>=8'} - dependencies: - type-fest: registry.npmmirror.com/type-fest/0.21.3 + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} dev: true - registry.nlark.com/ansi-regex/2.1.1: - resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz} - name: ansi-regex - version: 2.1.1 - engines: {node: '>=0.10.0'} + /@types/http-proxy@1.17.14: + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + dependencies: + '@types/node': 20.8.0 dev: true - registry.nlark.com/ansi-regex/5.0.1: - resolution: {integrity: sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz} - name: ansi-regex - version: 5.0.1 - engines: {node: '>=8'} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - registry.nlark.com/ansi-styles/2.2.1: - resolution: {integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz} - name: ansi-styles - version: 2.2.1 - engines: {node: '>=0.10.0'} + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} dev: true - registry.nlark.com/ansi-styles/3.2.1: - resolution: {integrity: sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz} - name: ansi-styles - version: 3.2.1 - engines: {node: '>=4'} + /@types/node-forge@1.3.11: + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: - color-convert: registry.npmmirror.com/color-convert/1.9.3 + '@types/node': 20.8.0 dev: true - registry.nlark.com/ansi-styles/4.3.0: - resolution: {integrity: sha1-7dgDYornHATIWuegkG7a00tkiTc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz} - name: ansi-styles - version: 4.3.0 - engines: {node: '>=8'} - dependencies: - color-convert: registry.nlark.com/color-convert/2.0.1 + /@types/node@20.8.0: + resolution: {integrity: sha512-LzcWltT83s1bthcvjBmiBvGJiiUe84NWRHkw+ZV6Fr41z2FbIzvc815dk2nQ3RAKMuN2fkenM/z3Xv2QzEpYxQ==} dev: true - registry.nlark.com/ansi-styles/5.2.0: - resolution: {integrity: sha1-B0SWkK1Fd30ZJKwquy/IiV26g2s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-5.2.0.tgz} - name: ansi-styles - version: 5.2.0 - engines: {node: '>=10'} + /@types/prop-types@15.7.12: + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + /@types/qs@6.9.15: + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} dev: true - registry.nlark.com/anymatch/3.1.2: - resolution: {integrity: sha1-wFV8CWrzLxBhmPT04qODU343hxY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz} - name: anymatch - version: 3.1.2 - engines: {node: '>= 8'} - dependencies: - normalize-path: registry.nlark.com/normalize-path/3.0.0 - picomatch: registry.nlark.com/picomatch/2.3.0 + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} dev: true - registry.nlark.com/argparse/1.0.10: - resolution: {integrity: sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/argparse/download/argparse-1.0.10.tgz} - name: argparse - version: 1.0.10 + /@types/react-dom@17.0.2: + resolution: {integrity: sha512-Icd9KEgdnFfJs39KyRyr0jQ7EKhq8U6CcHRMGAS45fp5qgUvxL3ujUCfWFttUK2UErqZNj97t9gsVPNAqcwoCg==} dependencies: - sprintf-js: registry.nlark.com/sprintf-js/1.0.3 + '@types/react': 17.0.2 dev: true - registry.nlark.com/argparse/2.0.1: - resolution: {integrity: sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/argparse/download/argparse-2.0.1.tgz} - name: argparse - version: 2.0.1 - dev: true + /@types/react@17.0.2: + resolution: {integrity: sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA==} + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 - registry.nlark.com/arr-diff/2.0.0: - resolution: {integrity: sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/arr-diff/download/arr-diff-2.0.0.tgz} - name: arr-diff - version: 2.0.0 - engines: {node: '>=0.10.0'} + /@types/resolve@1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - arr-flatten: registry.nlark.com/arr-flatten/1.1.0 + '@types/node': 20.8.0 dev: true - registry.nlark.com/arr-flatten/1.1.0: - resolution: {integrity: sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/arr-flatten/download/arr-flatten-1.1.0.tgz} - name: arr-flatten - version: 1.1.0 - engines: {node: '>=0.10.0'} + /@types/retry@0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} dev: true - registry.nlark.com/array-union/2.1.0: - resolution: {integrity: sha1-t5hCCtvrHego2ErNii4j0+/oXo0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/array-union/download/array-union-2.1.0.tgz} - name: array-union - version: 2.1.0 - engines: {node: '>=8'} + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.8.0 dev: true - registry.nlark.com/array-unique/0.2.1: - resolution: {integrity: sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/array-unique/download/array-unique-0.2.1.tgz} - name: array-unique - version: 0.2.1 - engines: {node: '>=0.10.0'} + /@types/serve-index@1.9.4: + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + dependencies: + '@types/express': 4.17.21 dev: true - registry.nlark.com/arrify/1.0.1: - resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/arrify/download/arrify-1.0.1.tgz} - name: arrify - version: 1.0.1 - engines: {node: '>=0.10.0'} + /@types/serve-static@1.15.7: + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 20.8.0 + '@types/send': 0.17.4 dev: true - registry.nlark.com/astral-regex/2.0.0: - resolution: {integrity: sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/astral-regex/download/astral-regex-2.0.0.tgz} - name: astral-regex - version: 2.0.0 - engines: {node: '>=8'} + /@types/sockjs@0.3.36: + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + dependencies: + '@types/node': 20.8.0 dev: true - registry.nlark.com/asynckit/0.4.0: - resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/asynckit/download/asynckit-0.4.0.tgz} - name: asynckit - version: 0.4.0 + /@types/ws@8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + dependencies: + '@types/node': 20.8.0 dev: true - registry.nlark.com/babel-code-frame/6.26.0: - resolution: {integrity: sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/babel-code-frame/download/babel-code-frame-6.26.0.tgz} - name: babel-code-frame - version: 6.26.0 + /@typescript-eslint/eslint-plugin@5.4.0(@typescript-eslint/parser@5.4.0)(eslint@7.32.0)(typescript@4.6.2): + resolution: {integrity: sha512-9/yPSBlwzsetCsGEn9j24D8vGQgJkOTr4oMLas/w886ZtzKIs1iyoqFrwsX2fqYEeUwsdBpC21gcjRGo57u0eg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - chalk: registry.nlark.com/chalk/1.1.3 - esutils: registry.nlark.com/esutils/2.0.3 - js-tokens: registry.nlark.com/js-tokens/3.0.2 + '@typescript-eslint/experimental-utils': 5.4.0(eslint@7.32.0)(typescript@4.6.2) + '@typescript-eslint/parser': 5.4.0(eslint@7.32.0)(typescript@4.6.2) + '@typescript-eslint/scope-manager': 5.4.0 + debug: 4.3.4 + eslint: 7.32.0 + functional-red-black-tree: 1.0.1 + ignore: 5.3.1 + regexpp: 3.2.0 + semver: 7.6.2 + tsutils: 3.21.0(typescript@4.6.2) + typescript: 4.6.2 + transitivePeerDependencies: + - supports-color dev: true - registry.nlark.com/babel-core/7.0.0-bridge.0_@babel+core@7.16.0: - resolution: {integrity: sha1-laSS3dkPm06aSh2hTrM1uHtjTs4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/babel-core/download/babel-core-7.0.0-bridge.0.tgz} - id: registry.nlark.com/babel-core/7.0.0-bridge.0 - name: babel-core - version: 7.0.0-bridge.0 + /@typescript-eslint/experimental-utils@5.4.0(eslint@7.32.0)(typescript@4.6.2): + resolution: {integrity: sha512-Nz2JDIQUdmIGd6p33A+naQmwfkU5KVTLb/5lTk+tLVTDacZKoGQisj8UCxk7onJcrgjIvr8xWqkYI+DbI3TfXg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - '@babel/core': ^7.0.0-0 + eslint: '*' dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 + '@types/json-schema': 7.0.15 + '@typescript-eslint/scope-manager': 5.4.0 + '@typescript-eslint/types': 5.4.0 + '@typescript-eslint/typescript-estree': 5.4.0(typescript@4.6.2) + eslint: 7.32.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0(eslint@7.32.0) + transitivePeerDependencies: + - supports-color + - typescript dev: true - registry.nlark.com/babel-messages/6.23.0: - resolution: {integrity: sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/babel-messages/download/babel-messages-6.23.0.tgz} - name: babel-messages - version: 6.23.0 + /@typescript-eslint/parser@5.4.0(eslint@7.32.0)(typescript@4.6.2): + resolution: {integrity: sha512-JoB41EmxiYpaEsRwpZEYAJ9XQURPFer8hpkIW9GiaspVLX8oqbqNM8P4EP8HOZg96yaALiLEVWllA2E8vwsIKw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - babel-runtime: registry.nlark.com/babel-runtime/6.26.0 + '@typescript-eslint/scope-manager': 5.4.0 + '@typescript-eslint/types': 5.4.0 + '@typescript-eslint/typescript-estree': 5.4.0(typescript@4.6.2) + debug: 4.3.4 + eslint: 7.32.0 + typescript: 4.6.2 + transitivePeerDependencies: + - supports-color dev: true - registry.nlark.com/babel-plugin-dynamic-import-node/2.3.3: - resolution: {integrity: sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1622128244456&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz} - name: babel-plugin-dynamic-import-node - version: 2.3.3 + /@typescript-eslint/scope-manager@5.4.0: + resolution: {integrity: sha512-pRxFjYwoi8R+n+sibjgF9iUiAELU9ihPBtHzocyW8v8D8G8KeQvXTsW7+CBYIyTYsmhtNk50QPGLE3vrvhM5KA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - object.assign: registry.nlark.com/object.assign/4.1.2 + '@typescript-eslint/types': 5.4.0 + '@typescript-eslint/visitor-keys': 5.4.0 dev: true - registry.nlark.com/babel-plugin-jest-hoist/23.2.0: - resolution: {integrity: sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-23.2.0.tgz} - name: babel-plugin-jest-hoist - version: 23.2.0 + /@typescript-eslint/types@5.4.0: + resolution: {integrity: sha512-GjXNpmn+n1LvnttarX+sPD6+S7giO+9LxDIGlRl4wK3a7qMWALOHYuVSZpPTfEIklYjaWuMtfKdeByx0AcaThA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - registry.nlark.com/babel-plugin-jest-hoist/27.2.0: - resolution: {integrity: sha1-efN9Q/flxP3Esso+EMxs9UViYnc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-27.2.0.tgz} - name: babel-plugin-jest-hoist - version: 27.2.0 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /@typescript-eslint/typescript-estree@5.4.0(typescript@4.6.2): + resolution: {integrity: sha512-nhlNoBdhKuwiLMx6GrybPT3SFILm5Gij2YBdPEPFlYNFAXUJWX6QRgvi/lwVoadaQEFsizohs6aFRMqsXI2ewA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@babel/template': registry.npmmirror.com/@babel/template/7.16.0 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - '@types/babel__core': registry.npmmirror.com/@types/babel__core/7.1.16 - '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse/7.14.2 + '@typescript-eslint/types': 5.4.0 + '@typescript-eslint/visitor-keys': 5.4.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.2 + tsutils: 3.21.0(typescript@4.6.2) + typescript: 4.6.2 + transitivePeerDependencies: + - supports-color dev: true - registry.nlark.com/babel-preset-jest/23.2.0: - resolution: {integrity: sha1-jsegOhOPABoaj7HoETZSvxpV2kY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/babel-preset-jest/download/babel-preset-jest-23.2.0.tgz} - name: babel-preset-jest - version: 23.2.0 + /@typescript-eslint/visitor-keys@5.4.0: + resolution: {integrity: sha512-PVbax7MeE7tdLfW5SA0fs8NGVVr+buMPrcj+CWYWPXsZCH8qZ1THufDzbXm1xrZ2b2PA1iENJ0sRq5fuUtvsJg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - babel-plugin-jest-hoist: registry.nlark.com/babel-plugin-jest-hoist/23.2.0 - babel-plugin-syntax-object-rest-spread: 6.13.0 + '@typescript-eslint/types': 5.4.0 + eslint-visitor-keys: 3.4.3 dev: true - registry.nlark.com/babel-preset-jest/27.2.0_@babel+core@7.16.0: - resolution: {integrity: sha1-VWu780Bgj+1WcKsOoMjvJEn7qIU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/babel-preset-jest/download/babel-preset-jest-27.2.0.tgz} - id: registry.nlark.com/babel-preset-jest/27.2.0 - name: babel-preset-jest - version: 27.2.0 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.0.0 + /@webassemblyjs/ast@1.11.1: + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - babel-plugin-jest-hoist: registry.nlark.com/babel-plugin-jest-hoist/27.2.0 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.16.0 + '@webassemblyjs/helper-numbers': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 dev: true - registry.nlark.com/babel-runtime/6.26.0: - resolution: {integrity: sha1-llxwWGaOgrVde/4E/yM3vItWR/4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/babel-runtime/download/babel-runtime-6.26.0.tgz} - name: babel-runtime - version: 6.26.0 + /@webassemblyjs/ast@1.12.1: + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} dependencies: - core-js: registry.npmmirror.com/core-js/2.6.12 - regenerator-runtime: registry.nlark.com/regenerator-runtime/0.11.1 + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 dev: true - registry.nlark.com/babylon/6.18.0: - resolution: {integrity: sha1-ry87iPpvXB5MY00aD46sT1WzleM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/babylon/download/babylon-6.18.0.tgz} - name: babylon - version: 6.18.0 - hasBin: true + /@webassemblyjs/floating-point-hex-parser@1.11.1: + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} dev: true - registry.nlark.com/balanced-match/1.0.2: - resolution: {integrity: sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/balanced-match/download/balanced-match-1.0.2.tgz} - name: balanced-match - version: 1.0.2 + /@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} dev: true - registry.nlark.com/big.js/5.2.2: - resolution: {integrity: sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz} - name: big.js - version: 5.2.2 + /@webassemblyjs/helper-api-error@1.11.1: + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} dev: true - registry.nlark.com/boolbase/1.0.0: - resolution: {integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/boolbase/download/boolbase-1.0.0.tgz} - name: boolbase - version: 1.0.0 + /@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} dev: true - registry.nlark.com/brace-expansion/1.1.11: - resolution: {integrity: sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz} - name: brace-expansion - version: 1.1.11 - dependencies: - balanced-match: registry.nlark.com/balanced-match/1.0.2 - concat-map: registry.nlark.com/concat-map/0.0.1 + /@webassemblyjs/helper-buffer@1.11.1: + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} dev: true - registry.nlark.com/braces/1.8.5: - resolution: {integrity: sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/braces/download/braces-1.8.5.tgz} - name: braces - version: 1.8.5 - engines: {node: '>=0.10.0'} - dependencies: - expand-range: registry.nlark.com/expand-range/1.8.2 - preserve: 0.2.0 - repeat-element: registry.nlark.com/repeat-element/1.1.4 + /@webassemblyjs/helper-buffer@1.12.1: + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} dev: true - registry.nlark.com/braces/3.0.2: - resolution: {integrity: sha1-NFThpGLujVmeI23zNs2epPiv4Qc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/braces/download/braces-3.0.2.tgz} - name: braces - version: 3.0.2 - engines: {node: '>=8'} + /@webassemblyjs/helper-numbers@1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} dependencies: - fill-range: registry.nlark.com/fill-range/7.0.1 + '@webassemblyjs/floating-point-hex-parser': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@xtuc/long': 4.2.2 dev: true - registry.nlark.com/browser-process-hrtime/1.0.0: - resolution: {integrity: sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz} - name: browser-process-hrtime - version: 1.0.0 + /@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 dev: true - registry.nlark.com/bser/2.1.1: - resolution: {integrity: sha1-5nh9og7OnQeZhTPP2d5vXDj0vAU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/bser/download/bser-2.1.1.tgz} - name: bser - version: 2.1.1 - dependencies: - node-int64: registry.nlark.com/node-int64/0.4.0 + /@webassemblyjs/helper-wasm-bytecode@1.11.1: + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} dev: true - registry.nlark.com/buffer-from/1.1.2: - resolution: {integrity: sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/buffer-from/download/buffer-from-1.1.2.tgz} - name: buffer-from - version: 1.1.2 + /@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} dev: true - registry.nlark.com/builtin-modules/3.2.0: - resolution: {integrity: sha1-RdXbmefuXmvE82LgCL+RerUEmIc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/builtin-modules/download/builtin-modules-3.2.0.tgz} - name: builtin-modules - version: 3.2.0 - engines: {node: '>=6'} + /@webassemblyjs/helper-wasm-section@1.11.1: + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 dev: true - registry.nlark.com/call-bind/1.0.2: - resolution: {integrity: sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz} - name: call-bind - version: 1.0.2 + /@webassemblyjs/helper-wasm-section@1.12.1: + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} dependencies: - function-bind: registry.nlark.com/function-bind/1.1.1 - get-intrinsic: registry.nlark.com/get-intrinsic/1.1.1 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 dev: true - registry.nlark.com/callsites/3.1.0: - resolution: {integrity: sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz} - name: callsites - version: 3.1.0 - engines: {node: '>=6'} + /@webassemblyjs/ieee754@1.11.1: + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} + dependencies: + '@xtuc/ieee754': 1.2.0 dev: true - registry.nlark.com/caniuse-api/3.0.0: - resolution: {integrity: sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/caniuse-api/download/caniuse-api-3.0.0.tgz} - name: caniuse-api - version: 3.0.0 + /@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} dependencies: - browserslist: registry.npmmirror.com/browserslist/4.18.1 - caniuse-lite: registry.npmmirror.com/caniuse-lite/1.0.30001282 - lodash.memoize: registry.nlark.com/lodash.memoize/4.1.2 - lodash.uniq: registry.nlark.com/lodash.uniq/4.5.0 + '@xtuc/ieee754': 1.2.0 dev: true - registry.nlark.com/chalk/1.1.3: - resolution: {integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1627647652928&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz} - name: chalk - version: 1.1.3 - engines: {node: '>=0.10.0'} + /@webassemblyjs/leb128@1.11.1: + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} dependencies: - ansi-styles: registry.nlark.com/ansi-styles/2.2.1 - escape-string-regexp: registry.nlark.com/escape-string-regexp/1.0.5 - has-ansi: registry.nlark.com/has-ansi/2.0.0 - strip-ansi: registry.npmmirror.com/strip-ansi/3.0.1 - supports-color: registry.npmmirror.com/supports-color/2.0.0 + '@xtuc/long': 4.2.2 dev: true - registry.nlark.com/chalk/4.1.2: - resolution: {integrity: sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627647652928&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz} - name: chalk - version: 4.1.2 - engines: {node: '>=10'} + /@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} dependencies: - ansi-styles: registry.nlark.com/ansi-styles/4.3.0 - supports-color: registry.npmmirror.com/supports-color/7.2.0 + '@xtuc/long': 4.2.2 dev: true - registry.nlark.com/ci-info/3.2.0: - resolution: {integrity: sha1-KHbLlIpJh5e1I28AlbwFfQ3KOLY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ci-info/download/ci-info-3.2.0.tgz} - name: ci-info - version: 3.2.0 + /@webassemblyjs/utf8@1.11.1: + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} dev: true - registry.nlark.com/cjs-module-lexer/1.2.2: - resolution: {integrity: sha1-n4S6MkSlEvOlTlJ36O70xImGTkA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cjs-module-lexer/download/cjs-module-lexer-1.2.2.tgz} - name: cjs-module-lexer - version: 1.2.2 + /@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} dev: true - registry.nlark.com/clipboard/2.0.8: - resolution: {integrity: sha1-/8bBA90pZ6gwBfP2GXaqRlWkzbo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/clipboard/download/clipboard-2.0.8.tgz} - name: clipboard - version: 2.0.8 + /@webassemblyjs/wasm-edit@1.11.1: + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} dependencies: - good-listener: registry.nlark.com/good-listener/1.2.2 - select: registry.nlark.com/select/1.1.2 - tiny-emitter: registry.nlark.com/tiny-emitter/2.1.0 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/helper-wasm-section': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-opt': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + '@webassemblyjs/wast-printer': 1.11.1 dev: true - registry.nlark.com/cliui/7.0.4: - resolution: {integrity: sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cliui/download/cliui-7.0.4.tgz} - name: cliui - version: 7.0.4 + /@webassemblyjs/wasm-edit@1.12.1: + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} dependencies: - string-width: registry.npmmirror.com/string-width/4.2.3 - strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 - wrap-ansi: registry.nlark.com/wrap-ansi/7.0.0 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 dev: true - registry.nlark.com/co/4.6.0: - resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/co/download/co-4.6.0.tgz} - name: co - version: 4.6.0 - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - - registry.nlark.com/collect-v8-coverage/1.0.1: - resolution: {integrity: sha1-zCyOlPwYu9/+ZNZTRXDIpnOyf1k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/collect-v8-coverage/download/collect-v8-coverage-1.0.1.tgz} - name: collect-v8-coverage - version: 1.0.1 - dev: true - - registry.nlark.com/color-convert/2.0.1: - resolution: {integrity: sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/color-convert/download/color-convert-2.0.1.tgz} - name: color-convert - version: 2.0.1 - engines: {node: '>=7.0.0'} + /@webassemblyjs/wasm-gen@1.11.1: + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} dependencies: - color-name: registry.nlark.com/color-name/1.1.4 - dev: true - - registry.nlark.com/color-name/1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/color-name/download/color-name-1.1.3.tgz} - name: color-name - version: 1.1.3 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/ieee754': 1.11.1 + '@webassemblyjs/leb128': 1.11.1 + '@webassemblyjs/utf8': 1.11.1 dev: true - registry.nlark.com/color-name/1.1.4: - resolution: {integrity: sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/color-name/download/color-name-1.1.4.tgz} - name: color-name - version: 1.1.4 - dev: true - - registry.nlark.com/combined-stream/1.0.8: - resolution: {integrity: sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/combined-stream/download/combined-stream-1.0.8.tgz} - name: combined-stream - version: 1.0.8 - engines: {node: '>= 0.8'} + /@webassemblyjs/wasm-gen@1.12.1: + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} dependencies: - delayed-stream: registry.nlark.com/delayed-stream/1.0.0 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 dev: true - registry.nlark.com/commondir/1.0.1: - resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/commondir/download/commondir-1.0.1.tgz} - name: commondir - version: 1.0.1 + /@webassemblyjs/wasm-opt@1.11.1: + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 dev: true - registry.nlark.com/concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/concat-map/download/concat-map-0.0.1.tgz} - name: concat-map - version: 0.0.1 + /@webassemblyjs/wasm-opt@1.12.1: + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 dev: true - registry.nlark.com/convert-source-map/1.8.0: - resolution: {integrity: sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/convert-source-map/download/convert-source-map-1.8.0.tgz} - name: convert-source-map - version: 1.8.0 + /@webassemblyjs/wasm-parser@1.11.1: + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} dependencies: - safe-buffer: registry.nlark.com/safe-buffer/5.1.2 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/ieee754': 1.11.1 + '@webassemblyjs/leb128': 1.11.1 + '@webassemblyjs/utf8': 1.11.1 dev: true - registry.nlark.com/cross-spawn/7.0.3: - resolution: {integrity: sha1-9zqFudXUHQRVUcF34ogtSshXKKY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz} - name: cross-spawn - version: 7.0.3 - engines: {node: '>= 8'} + /@webassemblyjs/wasm-parser@1.12.1: + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} dependencies: - path-key: registry.nlark.com/path-key/3.1.1 - shebang-command: registry.nlark.com/shebang-command/2.0.0 - which: registry.nlark.com/which/2.0.2 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 dev: true - registry.nlark.com/css-declaration-sorter/6.1.3_postcss@8.3.11: - resolution: {integrity: sha1-6YUuTPlAunn1CdlCWxN9H5RDjcI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/css-declaration-sorter/download/css-declaration-sorter-6.1.3.tgz} - id: registry.nlark.com/css-declaration-sorter/6.1.3 - name: css-declaration-sorter - version: 6.1.3 - engines: {node: '>= 10'} - peerDependencies: - postcss: ^8.0.9 + /@webassemblyjs/wast-printer@1.11.1: + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - timsort: registry.nlark.com/timsort/0.3.0 + '@webassemblyjs/ast': 1.11.1 + '@xtuc/long': 4.2.2 dev: true - registry.nlark.com/css-select/4.1.3: - resolution: {integrity: sha1-pwRA9wMX8maRGK10/xBeZYSccGc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/css-select/download/css-select-4.1.3.tgz} - name: css-select - version: 4.1.3 + /@webassemblyjs/wast-printer@1.12.1: + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} dependencies: - boolbase: registry.nlark.com/boolbase/1.0.0 - css-what: registry.npmmirror.com/css-what/5.1.0 - domhandler: registry.nlark.com/domhandler/4.2.2 - domutils: registry.nlark.com/domutils/2.8.0 - nth-check: registry.nlark.com/nth-check/2.0.1 + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 dev: true - registry.nlark.com/css-tree/1.1.3: - resolution: {integrity: sha1-60hw+2/XcHMn7JXC/yqwm16NuR0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/css-tree/download/css-tree-1.1.3.tgz} - name: css-tree - version: 1.1.3 - engines: {node: '>=8.0.0'} - dependencies: - mdn-data: registry.nlark.com/mdn-data/2.0.14 - source-map: registry.nlark.com/source-map/0.6.1 + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} dev: true - registry.nlark.com/cssesc/3.0.0: - resolution: {integrity: sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cssesc/download/cssesc-3.0.0.tgz} - name: cssesc - version: 3.0.0 - engines: {node: '>=4'} - hasBin: true + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} dev: true - registry.nlark.com/csso/4.2.0: - resolution: {integrity: sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/csso/download/csso-4.2.0.tgz} - name: csso - version: 4.2.0 - engines: {node: '>=8.0.0'} + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: - css-tree: registry.nlark.com/css-tree/1.1.3 + mime-types: 2.1.35 + negotiator: 0.6.3 dev: true - registry.nlark.com/cssom/0.3.8: - resolution: {integrity: sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cssom/download/cssom-0.3.8.tgz} - name: cssom - version: 0.3.8 + /acorn-import-assertions@1.9.0(acorn@8.11.3): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.3 dev: true - registry.nlark.com/cssom/0.4.4: - resolution: {integrity: sha1-WmbPk9LQtmHYC/akT7ZfXC5OChA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cssom/download/cssom-0.4.4.tgz} - name: cssom - version: 0.4.4 + /acorn-jsx@5.3.2(acorn@7.4.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 7.4.1 dev: true - registry.nlark.com/cssom/0.5.0: - resolution: {integrity: sha1-0lT6ks2Lb72DgRufuu00ZjzBfDY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cssom/download/cssom-0.5.0.tgz} - name: cssom - version: 0.5.0 + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} dev: true - registry.nlark.com/decimal.js/10.3.1: - resolution: {integrity: sha1-2MOkRKnGd0umDKatcmHDqU/V54M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/decimal.js/download/decimal.js-10.3.1.tgz} - name: decimal.js - version: 10.3.1 + /acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true dev: true - registry.nlark.com/dedent/0.7.0: - resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/dedent/download/dedent-0.7.0.tgz} - name: dedent - version: 0.7.0 + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true dev: true - registry.nlark.com/deep-is/0.1.4: - resolution: {integrity: sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz?cache=0&sync_timestamp=1630775124107&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.4.tgz} - name: deep-is - version: 0.1.4 + /ajv-formats@2.1.1(ajv@8.13.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.13.0 dev: true - registry.nlark.com/deepmerge/4.2.2: - resolution: {integrity: sha1-RNLqNnm49NT/ujPwPYZfwee/SVU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/deepmerge/download/deepmerge-4.2.2.tgz} - name: deepmerge - version: 4.2.2 - engines: {node: '>=0.10.0'} + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 dev: true - registry.nlark.com/define-properties/1.1.3: - resolution: {integrity: sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/define-properties/download/define-properties-1.1.3.tgz} - name: define-properties - version: 1.1.3 - engines: {node: '>= 0.4'} + /ajv-keywords@5.1.0(ajv@8.13.0): + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 dependencies: - object-keys: registry.nlark.com/object-keys/1.1.1 + ajv: 8.13.0 + fast-deep-equal: 3.1.3 dev: true - registry.nlark.com/delayed-stream/1.0.0: - resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/delayed-stream/download/delayed-stream-1.0.0.tgz} - name: delayed-stream - version: 1.0.0 - engines: {node: '>=0.4.0'} + /ajv@4.11.8: + resolution: {integrity: sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==} + requiresBuild: true + dependencies: + co: 4.6.0 + json-stable-stringify: 1.1.1 dev: true + optional: true - registry.nlark.com/delegate/3.2.0: - resolution: {integrity: sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/delegate/download/delegate-3.2.0.tgz} - name: delegate - version: 3.2.0 + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 dev: true - registry.nlark.com/detect-indent/4.0.0: - resolution: {integrity: sha1-920GQ1LN9Docts5hnE7jqUdd4gg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/detect-indent/download/detect-indent-4.0.0.tgz} - name: detect-indent - version: 4.0.0 - engines: {node: '>=0.10.0'} + /ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} dependencies: - repeating: registry.nlark.com/repeating/2.0.1 + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 dev: true - registry.nlark.com/diff-sequences/27.0.6: - resolution: {integrity: sha1-MwXLLlWgM5JAVGlcxmAZ/X+OVyM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/diff-sequences/download/diff-sequences-27.0.6.tgz} - name: diff-sequences - version: 27.0.6 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} dev: true - registry.nlark.com/doctrine/3.0.0: - resolution: {integrity: sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/doctrine/download/doctrine-3.0.0.tgz} - name: doctrine - version: 3.0.0 - engines: {node: '>=6.0.0'} - dependencies: - esutils: registry.nlark.com/esutils/2.0.3 + /ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true dev: true - registry.nlark.com/dom-serializer/1.3.2: - resolution: {integrity: sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz} - name: dom-serializer - version: 1.3.2 - dependencies: - domelementtype: registry.nlark.com/domelementtype/2.2.0 - domhandler: registry.nlark.com/domhandler/4.2.2 - entities: registry.nlark.com/entities/2.2.0 + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} dev: true - registry.nlark.com/domelementtype/2.2.0: - resolution: {integrity: sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz} - name: domelementtype - version: 2.2.0 + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 dev: true - registry.nlark.com/domhandler/4.2.2: - resolution: {integrity: sha1-6CXXIdGahrjCAaNSZOImxnjudV8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/domhandler/download/domhandler-4.2.2.tgz} - name: domhandler - version: 4.2.2 - engines: {node: '>= 4'} + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: - domelementtype: registry.nlark.com/domelementtype/2.2.0 + color-convert: 2.0.1 dev: true - registry.nlark.com/domutils/2.8.0: - resolution: {integrity: sha1-RDfe9dtuLR9dbuhZvZXKfQIEgTU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/domutils/download/domutils-2.8.0.tgz} - name: domutils - version: 2.8.0 + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: - dom-serializer: registry.nlark.com/dom-serializer/1.3.2 - domelementtype: registry.nlark.com/domelementtype/2.2.0 - domhandler: registry.nlark.com/domhandler/4.2.2 + normalize-path: 3.0.0 + picomatch: 2.3.1 dev: true - registry.nlark.com/emittery/0.8.1: - resolution: {integrity: sha1-uyPMhtA7MKp1p/c0gZ3uLhunCGA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/emittery/download/emittery-0.8.1.tgz} - name: emittery - version: 0.8.1 - engines: {node: '>=10'} + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true - registry.nlark.com/emojis-list/3.0.0: - resolution: {integrity: sha1-VXBmIEatKeLpFucariYKvf9Pang=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/emojis-list/download/emojis-list-3.0.0.tgz} - name: emojis-list - version: 3.0.0 - engines: {node: '>= 4'} + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 dev: true - registry.nlark.com/entities/2.2.0: - resolution: {integrity: sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/entities/download/entities-2.2.0.tgz} - name: entities - version: 2.2.0 + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - registry.nlark.com/error-ex/1.3.2: - resolution: {integrity: sha1-tKxAZIEH/c3PriQvQovqihTU8b8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/error-ex/download/error-ex-1.3.2.tgz} - name: error-ex - version: 1.3.2 + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: - is-arrayish: registry.nlark.com/is-arrayish/0.2.1 + call-bind: 1.0.7 + is-array-buffer: 3.0.4 dev: true - registry.nlark.com/escalade/3.1.1: - resolution: {integrity: sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/escalade/download/escalade-3.1.1.tgz} - name: escalade - version: 3.1.1 - engines: {node: '>=6'} + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true - registry.nlark.com/escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz} - name: escape-string-regexp - version: 1.0.5 - engines: {node: '>=0.8.0'} + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 dev: true - registry.nlark.com/escape-string-regexp/2.0.0: - resolution: {integrity: sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz} - name: escape-string-regexp - version: 2.0.0 + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - registry.nlark.com/escape-string-regexp/4.0.0: - resolution: {integrity: sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz} - name: escape-string-regexp - version: 4.0.0 - engines: {node: '>=10'} - dev: true - - registry.nlark.com/escodegen/2.0.0: - resolution: {integrity: sha1-XjKxKDPoqo+jXhvwvvqJOASEx90=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/escodegen/download/escodegen-2.0.0.tgz} - name: escodegen - version: 2.0.0 - engines: {node: '>=6.0'} - hasBin: true + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} dependencies: - esprima: registry.nlark.com/esprima/4.0.1 - estraverse: registry.npmmirror.com/estraverse/5.3.0 - esutils: registry.nlark.com/esutils/2.0.3 - optionator: registry.nlark.com/optionator/0.8.3 - optionalDependencies: - source-map: registry.nlark.com/source-map/0.6.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 dev: true - registry.nlark.com/eslint-config-prettier/8.3.0_eslint@7.32.0: - resolution: {integrity: sha1-90cbILb+ipqSVMxoRFQgKIai3Xo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint-config-prettier/download/eslint-config-prettier-8.3.0.tgz} - id: registry.nlark.com/eslint-config-prettier/8.3.0 - name: eslint-config-prettier - version: 8.3.0 - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} dependencies: - eslint: registry.npmmirror.com/eslint/7.32.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 dev: true - registry.nlark.com/eslint-utils/2.1.0: - resolution: {integrity: sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz} - name: eslint-utils - version: 2.1.0 - engines: {node: '>=6'} + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} dependencies: - eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/1.3.0 + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 dev: true - registry.nlark.com/eslint-utils/3.0.0_eslint@7.32.0: - resolution: {integrity: sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz} - id: registry.nlark.com/eslint-utils/3.0.0 - name: eslint-utils - version: 3.0.0 - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: registry.npmmirror.com/eslint/7.32.0 - eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/2.1.0 + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + requiresBuild: true dev: true + optional: true - registry.nlark.com/espree/7.3.1: - resolution: {integrity: sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/espree/download/espree-7.3.1.tgz} - name: espree - version: 7.3.1 - engines: {node: ^10.12.0 || >=12.0.0} + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + requiresBuild: true dependencies: - acorn: registry.npmmirror.com/acorn/7.4.1 - acorn-jsx: registry.nlark.com/acorn-jsx/5.3.2_acorn@7.4.1 - eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/1.3.0 + safer-buffer: 2.1.2 dev: true + optional: true - registry.nlark.com/esprima/4.0.1: - resolution: {integrity: sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/esprima/download/esprima-4.0.1.tgz} - name: esprima - version: 4.0.1 - engines: {node: '>=4'} - hasBin: true + /assert-plus@0.2.0: + resolution: {integrity: sha512-u1L0ZLywRziOVjUhRxI0Qg9G+4RnFB9H/Rq40YWn0dieDgO7vAYeJz6jKAO6t/aruzlDFLAPkQTT87e+f8Imaw==} + engines: {node: '>=0.8'} + requiresBuild: true dev: true + optional: true - registry.nlark.com/esquery/1.4.0: - resolution: {integrity: sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz} - name: esquery - version: 1.4.0 - engines: {node: '>=0.10'} - dependencies: - estraverse: registry.npmmirror.com/estraverse/5.3.0 + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + requiresBuild: true dev: true + optional: true - registry.nlark.com/esrecurse/4.3.0: - resolution: {integrity: sha1-eteWTWeauyi+5yzsY3WLHF0smSE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/esrecurse/download/esrecurse-4.3.0.tgz} - name: esrecurse - version: 4.3.0 - engines: {node: '>=4.0'} - dependencies: - estraverse: registry.npmmirror.com/estraverse/5.3.0 + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} dev: true - registry.nlark.com/esutils/2.0.3: - resolution: {integrity: sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz} - name: esutils - version: 2.0.3 - engines: {node: '>=0.10.0'} + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + requiresBuild: true dev: true + optional: true - registry.nlark.com/eventemitter3/4.0.7: - resolution: {integrity: sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eventemitter3/download/eventemitter3-4.0.7.tgz} - name: eventemitter3 - version: 4.0.7 + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 dev: true - registry.nlark.com/expand-brackets/0.1.5: - resolution: {integrity: sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/expand-brackets/download/expand-brackets-0.1.5.tgz} - name: expand-brackets - version: 0.1.5 - engines: {node: '>=0.10.0'} - dependencies: - is-posix-bracket: registry.npmmirror.com/is-posix-bracket/0.1.1 + /aws-sign2@0.6.0: + resolution: {integrity: sha512-JnJpAS0p9RmixkOvW2XwDxxzs1bd4/VAGIl6Q0EC5YOo+p+hqIhtDhn/nmFnB/xUNXbLkpE2mOjgVIBRKD4xYw==} + requiresBuild: true dev: true + optional: true - registry.nlark.com/expand-range/1.8.2: - resolution: {integrity: sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/expand-range/download/expand-range-1.8.2.tgz} - name: expand-range - version: 1.8.2 - engines: {node: '>=0.10.0'} - dependencies: - fill-range: registry.nlark.com/fill-range/2.2.4 + /aws4@1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + requiresBuild: true dev: true + optional: true - registry.nlark.com/extglob/0.3.2: - resolution: {integrity: sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/extglob/download/extglob-0.3.2.tgz} - name: extglob - version: 0.3.2 - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: registry.nlark.com/is-extglob/1.0.0 + /b-tween@0.3.3: + resolution: {integrity: sha512-oEHegcRpA7fAuc9KC4nktucuZn2aS8htymCPcP3qkEGPqiBH+GfqtqoG2l7LxHngg6O0HFM7hOeOYExl1Oz4ZA==} + dev: false + + /b-validate@1.5.3: + resolution: {integrity: sha512-iCvCkGFskbaYtfQ0a3GmcQCHl/Sv1GufXFGuUQ+FE+WJa7A/espLOuFIn09B944V8/ImPj71T4+rTASxO2PAuA==} + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - registry.nlark.com/fast-deep-equal/3.1.3: - resolution: {integrity: sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz} - name: fast-deep-equal - version: 3.1.3 + /batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} dev: true - registry.nlark.com/fast-glob/3.2.7: - resolution: {integrity: sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz} - name: fast-glob - version: 3.2.7 - engines: {node: '>=8'} + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + requiresBuild: true dependencies: - '@nodelib/fs.stat': registry.nlark.com/@nodelib/fs.stat/2.0.5 - '@nodelib/fs.walk': registry.nlark.com/@nodelib/fs.walk/1.2.8 - glob-parent: registry.npmmirror.com/glob-parent/5.1.2 - merge2: registry.nlark.com/merge2/1.4.1 - micromatch: registry.nlark.com/micromatch/4.0.4 + tweetnacl: 0.14.5 dev: true + optional: true - registry.nlark.com/fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz} - name: fast-json-stable-stringify - version: 2.1.0 + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} dev: true - registry.nlark.com/fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz} - name: fast-levenshtein - version: 2.0.6 + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} dev: true - registry.nlark.com/fastq/1.13.0: - resolution: {integrity: sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz?cache=0&sync_timestamp=1631615115425&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffastq%2Fdownload%2Ffastq-1.13.0.tgz} - name: fastq - version: 1.13.0 - dependencies: - reusify: registry.nlark.com/reusify/1.0.4 + /body-parser@1.20.0: + resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.10.3 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color dev: true - registry.nlark.com/file-entry-cache/6.0.1: - resolution: {integrity: sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/file-entry-cache/download/file-entry-cache-6.0.1.tgz} - name: file-entry-cache - version: 6.0.1 - engines: {node: ^10.12.0 || >=12.0.0} + /bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} dependencies: - flat-cache: registry.nlark.com/flat-cache/3.0.4 + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 dev: true - registry.nlark.com/filename-regex/2.0.1: - resolution: {integrity: sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/filename-regex/download/filename-regex-2.0.1.tgz} - name: filename-regex - version: 2.0.1 - engines: {node: '>=0.10.0'} + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true - registry.nlark.com/fill-range/2.2.4: - resolution: {integrity: sha1-6x53OrsFbc2N8r/favWbizqTZWU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fill-range/download/fill-range-2.2.4.tgz} - name: fill-range - version: 2.2.4 - engines: {node: '>=0.10.0'} + /boom@2.10.1: + resolution: {integrity: sha512-KbiZEa9/vofNcVJXGwdWWn25reQ3V3dHBWbS07FTF3/TOehLnm9GEhJV4T6ZvGPkShRpmUqYwnaCrkj0mRnP6Q==} + engines: {node: '>=0.10.40'} + deprecated: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). + requiresBuild: true dependencies: - is-number: registry.nlark.com/is-number/2.1.0 - isobject: registry.nlark.com/isobject/2.1.0 - randomatic: registry.npmmirror.com/randomatic/3.1.1 - repeat-element: registry.nlark.com/repeat-element/1.1.4 - repeat-string: registry.nlark.com/repeat-string/1.6.1 + hoek: 2.16.3 dev: true + optional: true - registry.nlark.com/fill-range/7.0.1: - resolution: {integrity: sha1-GRmmp8df44ssfHflGYU12prN2kA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fill-range/download/fill-range-7.0.1.tgz} - name: fill-range - version: 7.0.1 - engines: {node: '>=8'} + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: - to-regex-range: registry.nlark.com/to-regex-range/5.0.1 + balanced-match: 1.0.2 + concat-map: 0.0.1 dev: true - registry.nlark.com/find-cache-dir/3.3.2: - resolution: {integrity: sha1-swxbbv8HMHMa6pu9nb7L2AJW1ks=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/find-cache-dir/download/find-cache-dir-3.3.2.tgz} - name: find-cache-dir - version: 3.3.2 + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: - commondir: registry.nlark.com/commondir/1.0.1 - make-dir: 3.1.0 - pkg-dir: registry.npmmirror.com/pkg-dir/4.2.0 + fill-range: 7.0.1 dev: true - registry.nlark.com/flat-cache/3.0.4: - resolution: {integrity: sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/flat-cache/download/flat-cache-3.0.4.tgz} - name: flat-cache - version: 3.0.4 - engines: {node: ^10.12.0 || >=12.0.0} + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: - flatted: registry.npmmirror.com/flatted/3.2.4 - rimraf: registry.nlark.com/rimraf/3.0.2 + caniuse-lite: 1.0.30001617 + electron-to-chromium: 1.4.763 + node-releases: 2.0.14 + update-browserslist-db: 1.0.15(browserslist@4.23.0) dev: true - registry.nlark.com/for-in/1.0.2: - resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/for-in/download/for-in-1.0.2.tgz} - name: for-in - version: 1.0.2 - engines: {node: '>=0.10.0'} + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - registry.nlark.com/for-own/0.1.5: - resolution: {integrity: sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/for-own/download/for-own-0.1.5.tgz} - name: for-own - version: 0.1.5 - engines: {node: '>=0.10.0'} - dependencies: - for-in: registry.nlark.com/for-in/1.0.2 + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} dev: true - registry.nlark.com/fs-extra/8.1.0: - resolution: {integrity: sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs-extra/download/fs-extra-8.1.0.tgz} - name: fs-extra - version: 8.1.0 - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jsonfile: registry.nlark.com/jsonfile/4.0.0 - universalify: registry.nlark.com/universalify/0.1.2 + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} dev: true - registry.nlark.com/fs.realpath/1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs.realpath/download/fs.realpath-1.0.0.tgz} - name: fs.realpath - version: 1.0.0 + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} dev: true - registry.nlark.com/function-bind/1.1.1: - resolution: {integrity: sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/function-bind/download/function-bind-1.1.1.tgz} - name: function-bind - version: 1.1.1 + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 dev: true - registry.nlark.com/functional-red-black-tree/1.0.1: - resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz} - name: functional-red-black-tree - version: 1.0.1 + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} dev: true - registry.nlark.com/generic-names/2.0.1: - resolution: {integrity: sha1-+KN46tLMqno08DF7BVVIMq5BuHI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/generic-names/download/generic-names-2.0.1.tgz} - name: generic-names - version: 2.0.1 + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: - loader-utils: registry.npmmirror.com/loader-utils/1.4.0 - dev: true - - registry.nlark.com/gensync/1.0.0-beta.2: - resolution: {integrity: sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/gensync/download/gensync-1.0.0-beta.2.tgz} - name: gensync - version: 1.0.0-beta.2 - engines: {node: '>=6.9.0'} + pascal-case: 3.1.2 + tslib: 2.6.2 dev: true - registry.nlark.com/get-intrinsic/1.1.1: - resolution: {integrity: sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/get-intrinsic/download/get-intrinsic-1.1.1.tgz} - name: get-intrinsic - version: 1.1.1 + /caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - function-bind: registry.nlark.com/function-bind/1.1.1 - has: registry.nlark.com/has/1.0.3 - has-symbols: registry.nlark.com/has-symbols/1.0.2 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001617 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 dev: true - registry.nlark.com/glob-base/0.3.0: - resolution: {integrity: sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/glob-base/download/glob-base-0.3.0.tgz} - name: glob-base - version: 0.3.0 - engines: {node: '>=0.10.0'} - dependencies: - glob-parent: registry.npmmirror.com/glob-parent/2.0.0 - is-glob: registry.npmmirror.com/is-glob/2.0.1 + /caniuse-lite@1.0.30001617: + resolution: {integrity: sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==} dev: true - registry.nlark.com/globby/11.0.4: - resolution: {integrity: sha1-LLr/d8Lypi5x6bKBOme5ejowAaU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/globby/download/globby-11.0.4.tgz} - name: globby - version: 11.0.4 - engines: {node: '>=10'} - dependencies: - array-union: registry.nlark.com/array-union/2.1.0 - dir-glob: 3.0.1 - fast-glob: registry.nlark.com/fast-glob/3.2.7 - ignore: registry.npmmirror.com/ignore/5.1.9 - merge2: registry.nlark.com/merge2/1.4.1 - slash: registry.nlark.com/slash/3.0.0 + /caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + requiresBuild: true dev: true + optional: true - registry.nlark.com/good-listener/1.2.2: - resolution: {integrity: sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/good-listener/download/good-listener-1.2.2.tgz} - name: good-listener - version: 1.2.2 + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: - delegate: registry.nlark.com/delegate/3.2.0 + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 dev: true - registry.nlark.com/has-ansi/2.0.0: - resolution: {integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-ansi/download/has-ansi-2.0.0.tgz} - name: has-ansi - version: 2.0.0 - engines: {node: '>=0.10.0'} + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: - ansi-regex: registry.nlark.com/ansi-regex/2.1.1 + ansi-styles: 4.3.0 + supports-color: 7.2.0 dev: true - registry.nlark.com/has-flag/3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz} - name: has-flag - version: 3.0.0 - engines: {node: '>=4'} + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 dev: true - registry.nlark.com/has-flag/4.0.0: - resolution: {integrity: sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz} - name: has-flag - version: 4.0.0 - engines: {node: '>=8'} + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 dev: true - registry.nlark.com/has-symbols/1.0.2: - resolution: {integrity: sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz} - name: has-symbols - version: 1.0.2 - engines: {node: '>= 0.4'} + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} dev: true - registry.nlark.com/has/1.0.3: - resolution: {integrity: sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has/download/has-1.0.3.tgz} - name: has - version: 1.0.3 - engines: {node: '>= 0.4.0'} + /clean-css@5.2.0: + resolution: {integrity: sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==} + engines: {node: '>= 10.0'} dependencies: - function-bind: registry.nlark.com/function-bind/1.1.1 - dev: true - - registry.nlark.com/hosted-git-info/2.8.9: - resolution: {integrity: sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/hosted-git-info/download/hosted-git-info-2.8.9.tgz} - name: hosted-git-info - version: 2.8.9 + source-map: 0.6.1 dev: true - registry.nlark.com/html-escaper/2.0.2: - resolution: {integrity: sha1-39YAJ9o2o238viNiYsAKWCJoFFM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/html-escaper/download/html-escaper-2.0.2.tgz} - name: html-escaper - version: 2.0.2 + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 dev: true - registry.nlark.com/human-signals/2.1.0: - resolution: {integrity: sha1-3JH8ukLk0G5Kuu0zs+ejwC9RTqA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/human-signals/download/human-signals-2.1.0.tgz} - name: human-signals - version: 2.1.0 - engines: {node: '>=10.17.0'} + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} dev: true - registry.nlark.com/icss-replace-symbols/1.1.0: - resolution: {integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz} - name: icss-replace-symbols - version: 1.1.0 + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + requiresBuild: true dev: true + optional: true - registry.nlark.com/icss-utils/5.1.0_postcss@8.3.11: - resolution: {integrity: sha1-xr5oWKvQE9do6YNmrkfiXViHsa4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/icss-utils/download/icss-utils-5.1.0.tgz} - id: registry.nlark.com/icss-utils/5.1.0 - name: icss-utils - version: 5.1.0 - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - dev: true + color-name: 1.1.3 - registry.nlark.com/import-fresh/3.3.0: - resolution: {integrity: sha1-NxYsJfy566oublPVtNiM4X2eDCs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/import-fresh/download/import-fresh-3.3.0.tgz} - name: import-fresh - version: 3.3.0 - engines: {node: '>=6'} + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: - parent-module: registry.npmmirror.com/parent-module/1.0.1 - resolve-from: registry.nlark.com/resolve-from/4.0.0 + color-name: 1.1.4 dev: true - registry.nlark.com/import-from/3.0.0: - resolution: {integrity: sha1-BVz+w4zVon2AV8pRN219O/CJGWY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/import-from/download/import-from-3.0.0.tgz} - name: import-from - version: 3.0.0 - engines: {node: '>=8'} - dependencies: - resolve-from: registry.nlark.com/resolve-from/5.0.0 - dev: true + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - registry.nlark.com/imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/imurmurhash/download/imurmurhash-0.1.4.tgz} - name: imurmurhash - version: 0.1.4 - engines: {node: '>=0.8.19'} - dev: true + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - registry.nlark.com/inflight/1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/inflight/download/inflight-1.0.6.tgz} - name: inflight - version: 1.0.6 + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} dependencies: - once: registry.nlark.com/once/1.4.0 - wrappy: registry.nlark.com/wrappy/1.0.2 - dev: true + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: false - registry.nlark.com/invariant/2.2.4: - resolution: {integrity: sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/invariant/download/invariant-2.2.4.tgz} - name: invariant - version: 2.2.4 + /color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} dependencies: - loose-envify: registry.nlark.com/loose-envify/1.4.0 - dev: true + color-convert: 1.9.3 + color-string: 1.9.1 + dev: false - registry.nlark.com/is-absolute-url/3.0.3: - resolution: {integrity: sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-absolute-url/download/is-absolute-url-3.0.3.tgz} - name: is-absolute-url - version: 3.0.3 - engines: {node: '>=8'} + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} dev: true - registry.nlark.com/is-arrayish/0.2.1: - resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-arrayish/download/is-arrayish-0.2.1.tgz} - name: is-arrayish - version: 0.2.1 + /colorette@2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} dev: true - registry.nlark.com/is-buffer/1.1.6: - resolution: {integrity: sha1-76ouqdqg16suoTqXsritUf776L4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-buffer/download/is-buffer-1.1.6.tgz} - name: is-buffer - version: 1.1.6 + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + requiresBuild: true + dependencies: + delayed-stream: 1.0.0 dev: true + optional: true - registry.nlark.com/is-dotfile/1.0.3: - resolution: {integrity: sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-dotfile/download/is-dotfile-1.0.3.tgz} - name: is-dotfile - version: 1.0.3 - engines: {node: '>=0.10.0'} + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: true - registry.nlark.com/is-extendable/0.1.1: - resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz} - name: is-extendable - version: 0.1.1 - engines: {node: '>=0.10.0'} + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} dev: true - registry.nlark.com/is-extglob/1.0.0: - resolution: {integrity: sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-extglob/download/is-extglob-1.0.0.tgz} - name: is-extglob - version: 1.0.0 - engines: {node: '>=0.10.0'} + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} dev: true - registry.nlark.com/is-extglob/2.1.1: - resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-extglob/download/is-extglob-2.1.1.tgz} - name: is-extglob - version: 2.1.1 - engines: {node: '>=0.10.0'} + /common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} dev: true - registry.nlark.com/is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz} - name: is-fullwidth-code-point - version: 3.0.0 - engines: {node: '>=8'} + /commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true - registry.nlark.com/is-generator-fn/2.1.0: - resolution: {integrity: sha1-fRQK3DiarzARqPKipM+m+q3/sRg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-generator-fn/download/is-generator-fn-2.1.0.tgz} - name: is-generator-fn - version: 2.1.0 - engines: {node: '>=6'} + /compare-versions@6.0.0-rc.1: + resolution: {integrity: sha512-cFhkjbGY1jLFWIV7KegECbfuyYPxSGvgGkdkfM+ibboQDoPwg2FRHm5BSNTOApiauRBzJIQH7qvOJs2sW5ueKQ==} dev: true - registry.nlark.com/is-number/2.1.0: - resolution: {integrity: sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-number/download/is-number-2.1.0.tgz} - name: is-number - version: 2.1.0 - engines: {node: '>=0.10.0'} + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} dependencies: - kind-of: registry.nlark.com/kind-of/3.2.2 + mime-db: 1.52.0 dev: true - registry.nlark.com/is-number/4.0.0: - resolution: {integrity: sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-number/download/is-number-4.0.0.tgz} - name: is-number - version: 4.0.0 - engines: {node: '>=0.10.0'} + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color dev: true - registry.nlark.com/is-number/7.0.0: - resolution: {integrity: sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-number/download/is-number-7.0.0.tgz} - name: is-number - version: 7.0.0 - engines: {node: '>=0.12.0'} - dev: true + /compute-scroll-into-view@1.0.11: + resolution: {integrity: sha512-uUnglJowSe0IPmWOdDtrlHXof5CTIJitfJEyITHBW6zDVOGu9Pjk5puaLM73SLcwak0L4hEjO7Td88/a6P5i7A==} + dev: false + + /compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + dev: false - registry.nlark.com/is-potential-custom-element-name/1.0.1: - resolution: {integrity: sha1-Fx7W8Z46xVQ5Tt94yqBXhKRb67U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-potential-custom-element-name/download/is-potential-custom-element-name-1.0.1.tgz} - name: is-potential-custom-element-name - version: 1.0.1 + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - registry.nlark.com/is-primitive/2.0.0: - resolution: {integrity: sha1-IHurkWOEmcB7Kt8kCkGochADRXU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-primitive/download/is-primitive-2.0.0.tgz} - name: is-primitive - version: 2.0.0 - engines: {node: '>=0.10.0'} + /concat-with-sourcemaps@1.1.0: + resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==} + dependencies: + source-map: 0.6.1 dev: true - registry.nlark.com/is-resolvable/1.1.0: - resolution: {integrity: sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-resolvable/download/is-resolvable-1.1.0.tgz} - name: is-resolvable - version: 1.1.0 + /connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} dev: true - registry.nlark.com/is-stream/2.0.1: - resolution: {integrity: sha1-+sHj1TuXrVqdCunO8jifWBClwHc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-stream/download/is-stream-2.0.1.tgz} - name: is-stream - version: 2.0.1 - engines: {node: '>=8'} + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 dev: true - registry.nlark.com/is-typedarray/1.0.0: - resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-typedarray/download/is-typedarray-1.0.0.tgz} - name: is-typedarray - version: 1.0.0 + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} dev: true - registry.nlark.com/isarray/1.0.0: - resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/isarray/download/isarray-1.0.0.tgz} - name: isarray - version: 1.0.0 + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} dev: true - registry.nlark.com/isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/isexe/download/isexe-2.0.0.tgz} - name: isexe - version: 2.0.0 + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} dev: true - registry.nlark.com/isobject/2.1.0: - resolution: {integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/isobject/download/isobject-2.1.0.tgz} - name: isobject - version: 2.1.0 - engines: {node: '>=0.10.0'} + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} dependencies: - isarray: registry.nlark.com/isarray/1.0.0 + is-what: 3.14.1 dev: true - registry.nlark.com/istanbul-lib-report/3.0.0: - resolution: {integrity: sha1-dRj+UupE3jcvRgp2tezan/tz2KY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/istanbul-lib-report/download/istanbul-lib-report-3.0.0.tgz} - name: istanbul-lib-report - version: 3.0.0 - engines: {node: '>=8'} - dependencies: - istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage/3.2.0 - make-dir: 3.1.0 - supports-color: registry.npmmirror.com/supports-color/7.2.0 + /core-js-pure@3.37.0: + resolution: {integrity: sha512-d3BrpyFr5eD4KcbRvQ3FTUx/KWmaDesr7+a3+1+P46IUnNoEt+oiLijPINZMEon7w9oGkIINWxrBAU9DEciwFQ==} + requiresBuild: true dev: true - registry.nlark.com/jest-docblock/27.0.6: - resolution: {integrity: sha1-zHgmas9/5pPKRiy72g6k5jnk5fM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jest-docblock/download/jest-docblock-27.0.6.tgz} - name: jest-docblock - version: 27.0.6 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - detect-newline: registry.npmmirror.com/detect-newline/3.1.0 + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + requiresBuild: true dev: true + optional: true - registry.nlark.com/jest-regex-util/27.0.6: - resolution: {integrity: sha1-AuESCCk1rpSc5dE7JnXbPYyH2cU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jest-regex-util/download/jest-regex-util-27.0.6.tgz} - name: jest-regex-util - version: 27.0.6 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - registry.nlark.com/jest-serializer/27.0.6: - resolution: {integrity: sha1-k6bHTgEyuBotVGIyUcRsSYu1vsE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jest-serializer/download/jest-serializer-27.0.6.tgz} - name: jest-serializer - version: 27.0.6 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true - registry.nlark.com/jquery/3.6.0: - resolution: {integrity: sha1-xyoJ8Vwb3OFC9J2/EXC9+K2sJHA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jquery/download/jquery-3.6.0.tgz} - name: jquery - version: 3.6.0 + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 dev: true - registry.nlark.com/js-tokens/3.0.2: - resolution: {integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/js-tokens/download/js-tokens-3.0.2.tgz} - name: js-tokens - version: 3.0.2 + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 dev: true - registry.nlark.com/js-tokens/4.0.0: - resolution: {integrity: sha1-GSA/tZmR35jjoocFDUZHzerzJJk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz} - name: js-tokens - version: 4.0.0 + /cryptiles@2.0.5: + resolution: {integrity: sha512-FFN5KwpvvQTTS5hWPxrU8/QE4kQUc6uwZcrnlMBN82t1MgAtq8mnoDwINBly9Tdr02seeIIhtdF+UH1feBYGog==} + engines: {node: '>=0.10.40'} + deprecated: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). + requiresBuild: true + dependencies: + boom: 2.10.1 dev: true + optional: true - registry.nlark.com/js-yaml/3.14.1: - resolution: {integrity: sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/js-yaml/download/js-yaml-3.14.1.tgz} - name: js-yaml - version: 3.14.1 - hasBin: true + /css-declaration-sorter@6.4.1(postcss@8.3.11): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 dependencies: - argparse: registry.nlark.com/argparse/1.0.10 - esprima: registry.nlark.com/esprima/4.0.1 + postcss: 8.3.11 dev: true - registry.nlark.com/js-yaml/4.1.0: - resolution: {integrity: sha1-wftl+PUBeQHN0slRhkuhhFihBgI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/js-yaml/download/js-yaml-4.1.0.tgz} - name: js-yaml - version: 4.1.0 - hasBin: true + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} dependencies: - argparse: registry.nlark.com/argparse/2.0.1 + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 dev: true - registry.nlark.com/jsesc/0.5.0: - resolution: {integrity: sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jsesc/download/jsesc-0.5.0.tgz} - name: jsesc - version: 0.5.0 - hasBin: true + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 dev: true - registry.nlark.com/jsesc/1.3.0: - resolution: {integrity: sha1-RsP+yMGJKxKwgz25vHYiF226s0s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jsesc/download/jsesc-1.3.0.tgz} - name: jsesc - version: 1.3.0 - hasBin: true + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} dev: true - registry.nlark.com/jsesc/2.5.2: - resolution: {integrity: sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jsesc/download/jsesc-2.5.2.tgz} - name: jsesc - version: 2.5.2 + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true dev: true - registry.nlark.com/json-schema-traverse/0.4.1: - resolution: {integrity: sha1-afaofZUTq4u4/mO9sJecRI5oRmA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz} - name: json-schema-traverse - version: 0.4.1 - dev: true - - registry.nlark.com/json-schema-traverse/1.0.0: - resolution: {integrity: sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json-schema-traverse/download/json-schema-traverse-1.0.0.tgz} - name: json-schema-traverse - version: 1.0.0 + /cssnano-preset-default@5.2.14(postcss@8.3.11): + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + css-declaration-sorter: 6.4.1(postcss@8.3.11) + cssnano-utils: 3.1.0(postcss@8.3.11) + postcss: 8.3.11 + postcss-calc: 8.2.4(postcss@8.3.11) + postcss-colormin: 5.3.1(postcss@8.3.11) + postcss-convert-values: 5.1.3(postcss@8.3.11) + postcss-discard-comments: 5.1.2(postcss@8.3.11) + postcss-discard-duplicates: 5.1.0(postcss@8.3.11) + postcss-discard-empty: 5.1.1(postcss@8.3.11) + postcss-discard-overridden: 5.1.0(postcss@8.3.11) + postcss-merge-longhand: 5.1.7(postcss@8.3.11) + postcss-merge-rules: 5.1.4(postcss@8.3.11) + postcss-minify-font-values: 5.1.0(postcss@8.3.11) + postcss-minify-gradients: 5.1.1(postcss@8.3.11) + postcss-minify-params: 5.1.4(postcss@8.3.11) + postcss-minify-selectors: 5.2.1(postcss@8.3.11) + postcss-normalize-charset: 5.1.0(postcss@8.3.11) + postcss-normalize-display-values: 5.1.0(postcss@8.3.11) + postcss-normalize-positions: 5.1.1(postcss@8.3.11) + postcss-normalize-repeat-style: 5.1.1(postcss@8.3.11) + postcss-normalize-string: 5.1.0(postcss@8.3.11) + postcss-normalize-timing-functions: 5.1.0(postcss@8.3.11) + postcss-normalize-unicode: 5.1.1(postcss@8.3.11) + postcss-normalize-url: 5.1.0(postcss@8.3.11) + postcss-normalize-whitespace: 5.1.1(postcss@8.3.11) + postcss-ordered-values: 5.1.3(postcss@8.3.11) + postcss-reduce-initial: 5.1.2(postcss@8.3.11) + postcss-reduce-transforms: 5.1.0(postcss@8.3.11) + postcss-svgo: 5.1.0(postcss@8.3.11) + postcss-unique-selectors: 5.1.1(postcss@8.3.11) + dev: true + + /cssnano-utils@3.1.0(postcss@8.3.11): + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.3.11 dev: true - registry.nlark.com/json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz} - name: json-stable-stringify-without-jsonify - version: 1.0.1 + /cssnano@5.1.15(postcss@8.3.11): + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-preset-default: 5.2.14(postcss@8.3.11) + lilconfig: 2.1.0 + postcss: 8.3.11 + yaml: 1.10.2 dev: true - registry.nlark.com/json5/1.0.1: - resolution: {integrity: sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json5/download/json5-1.0.1.tgz} - name: json5 - version: 1.0.1 - hasBin: true + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} dependencies: - minimist: registry.nlark.com/minimist/1.2.5 + css-tree: 1.1.3 dev: true - registry.nlark.com/json5/2.2.0: - resolution: {integrity: sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json5/download/json5-2.2.0.tgz} - name: json5 - version: 2.2.0 - engines: {node: '>=6'} - hasBin: true + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + /dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + requiresBuild: true dependencies: - minimist: registry.nlark.com/minimist/1.2.5 + assert-plus: 1.0.0 dev: true + optional: true - registry.nlark.com/jsonfile/4.0.0: - resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jsonfile/download/jsonfile-4.0.0.tgz} - name: jsonfile - version: 4.0.0 - optionalDependencies: - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 dev: true - registry.nlark.com/kind-of/3.2.2: - resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz} - name: kind-of - version: 3.2.2 - engines: {node: '>=0.10.0'} + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} dependencies: - is-buffer: registry.nlark.com/is-buffer/1.1.6 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 dev: true - registry.nlark.com/kind-of/6.0.3: - resolution: {integrity: sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/kind-of/download/kind-of-6.0.3.tgz} - name: kind-of - version: 6.0.3 - engines: {node: '>=0.10.0'} + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 dev: true - registry.nlark.com/kleur/3.0.3: - resolution: {integrity: sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/kleur/download/kleur-3.0.3.tgz} - name: kleur - version: 3.0.3 - engines: {node: '>=6'} - dev: true + /dayjs@1.11.11: + resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} + dev: false - registry.nlark.com/leven/3.1.0: - resolution: {integrity: sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/leven/download/leven-3.1.0.tgz} - name: leven - version: 3.1.0 - engines: {node: '>=6'} + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 dev: true - registry.nlark.com/levn/0.3.0: - resolution: {integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/levn/download/levn-0.3.0.tgz} - name: levn - version: 0.3.0 - engines: {node: '>= 0.8.0'} + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: - prelude-ls: registry.nlark.com/prelude-ls/1.1.2 - type-check: registry.nlark.com/type-check/0.3.2 + ms: 2.1.2 dev: true - registry.nlark.com/levn/0.4.1: - resolution: {integrity: sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/levn/download/levn-0.4.1.tgz} - name: levn - version: 0.4.1 - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: registry.nlark.com/prelude-ls/1.2.1 - type-check: registry.nlark.com/type-check/0.4.0 + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - registry.nlark.com/load-json-file/1.1.0: - resolution: {integrity: sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/load-json-file/download/load-json-file-1.1.0.tgz} - name: load-json-file - version: 1.1.0 + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + dev: true + + /default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - parse-json: registry.npmmirror.com/parse-json/2.2.0 - pify: registry.nlark.com/pify/2.3.0 - pinkie-promise: registry.nlark.com/pinkie-promise/2.0.1 - strip-bom: registry.nlark.com/strip-bom/2.0.0 + execa: 5.1.1 dev: true - registry.nlark.com/locate-path/2.0.0: - resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/locate-path/download/locate-path-2.0.0.tgz} - name: locate-path - version: 2.0.0 - engines: {node: '>=4'} + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: - p-locate: registry.nlark.com/p-locate/2.0.0 - path-exists: registry.nlark.com/path-exists/3.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 dev: true - registry.nlark.com/locate-path/5.0.0: - resolution: {integrity: sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/locate-path/download/locate-path-5.0.0.tgz} - name: locate-path - version: 5.0.0 + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} dependencies: - p-locate: registry.nlark.com/p-locate/4.1.0 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 dev: true - registry.nlark.com/lodash.debounce/4.0.8: - resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lodash.debounce/download/lodash.debounce-4.0.8.tgz} - name: lodash.debounce - version: 4.0.8 + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + requiresBuild: true dev: true + optional: true - registry.nlark.com/lodash.memoize/4.1.2: - resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lodash.memoize/download/lodash.memoize-4.1.2.tgz} - name: lodash.memoize - version: 4.1.2 + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} dev: true - registry.nlark.com/lodash.uniq/4.5.0: - resolution: {integrity: sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lodash.uniq/download/lodash.uniq-4.5.0.tgz} - name: lodash.uniq - version: 4.5.0 + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} dev: true - registry.nlark.com/loose-envify/1.4.0: - resolution: {integrity: sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/loose-envify/download/loose-envify-1.4.0.tgz} - name: loose-envify - version: 1.4.0 - hasBin: true - dependencies: - js-tokens: registry.nlark.com/js-tokens/4.0.0 + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dev: true - registry.nlark.com/lru-cache/6.0.0: - resolution: {integrity: sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lru-cache/download/lru-cache-6.0.0.tgz} - name: lru-cache - version: 6.0.0 - engines: {node: '>=10'} + /detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: false + + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: - yallist: registry.nlark.com/yallist/4.0.0 + path-type: 4.0.0 dev: true - registry.nlark.com/magic-string/0.25.7: - resolution: {integrity: sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/magic-string/download/magic-string-0.25.7.tgz} - name: magic-string - version: 0.25.7 + /dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} dependencies: - sourcemap-codec: 1.4.8 + '@leichtgewicht/ip-codec': 2.0.5 dev: true - registry.nlark.com/make-error/1.3.6: - resolution: {integrity: sha1-LrLjfqm2fEiR9oShOUeZr0hM96I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/make-error/download/make-error-1.3.6.tgz} - name: make-error - version: 1.3.6 + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 dev: true - registry.nlark.com/math-random/1.0.4: - resolution: {integrity: sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/math-random/download/math-random-1.0.4.tgz} - name: math-random - version: 1.0.4 + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 dev: true - registry.nlark.com/mdn-data/2.0.14: - resolution: {integrity: sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz} - name: mdn-data - version: 2.0.14 + /dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dependencies: + '@babel/runtime': 7.24.5 + csstype: 3.1.3 + dev: false + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 dev: true - registry.nlark.com/merge-stream/2.0.0: - resolution: {integrity: sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/merge-stream/download/merge-stream-2.0.0.tgz} - name: merge-stream - version: 2.0.0 + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true - registry.nlark.com/merge2/1.4.1: - resolution: {integrity: sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/merge2/download/merge2-1.4.1.tgz} - name: merge2 - version: 1.4.1 - engines: {node: '>= 8'} + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 dev: true - registry.nlark.com/micromatch/2.3.11: - resolution: {integrity: sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/micromatch/download/micromatch-2.3.11.tgz} - name: micromatch - version: 2.3.11 - engines: {node: '>=0.10.0'} + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} dependencies: - arr-diff: registry.nlark.com/arr-diff/2.0.0 - array-unique: registry.nlark.com/array-unique/0.2.1 - braces: registry.nlark.com/braces/1.8.5 - expand-brackets: registry.nlark.com/expand-brackets/0.1.5 - extglob: registry.nlark.com/extglob/0.3.2 - filename-regex: registry.nlark.com/filename-regex/2.0.1 - is-extglob: registry.nlark.com/is-extglob/1.0.0 - is-glob: registry.npmmirror.com/is-glob/2.0.1 - kind-of: registry.nlark.com/kind-of/3.2.2 - normalize-path: registry.nlark.com/normalize-path/2.1.1 - object.omit: registry.nlark.com/object.omit/2.0.1 - parse-glob: registry.nlark.com/parse-glob/3.0.4 - regex-cache: registry.nlark.com/regex-cache/0.4.4 - dev: true - - registry.nlark.com/micromatch/4.0.4: - resolution: {integrity: sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/micromatch/download/micromatch-4.0.4.tgz} - name: micromatch - version: 4.0.4 - engines: {node: '>=8.6'} + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: - braces: registry.nlark.com/braces/3.0.2 - picomatch: registry.nlark.com/picomatch/2.3.0 + no-case: 3.0.4 + tslib: 2.6.2 dev: true - registry.nlark.com/mimic-fn/2.1.0: - resolution: {integrity: sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mimic-fn/download/mimic-fn-2.1.0.tgz} - name: mimic-fn - version: 2.1.0 - engines: {node: '>=6'} + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true - registry.nlark.com/minimatch/3.0.4: - resolution: {integrity: sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/minimatch/download/minimatch-3.0.4.tgz} - name: minimatch - version: 3.0.4 + /ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + requiresBuild: true dependencies: - brace-expansion: registry.nlark.com/brace-expansion/1.1.11 + jsbn: 0.1.1 + safer-buffer: 2.1.2 dev: true + optional: true - registry.nlark.com/minimist/1.2.5: - resolution: {integrity: sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/minimist/download/minimist-1.2.5.tgz} - name: minimist - version: 1.2.5 + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true - registry.nlark.com/natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/natural-compare/download/natural-compare-1.4.0.tgz} - name: natural-compare - version: 1.4.0 + /electron-to-chromium@1.4.763: + resolution: {integrity: sha512-k4J8NrtJ9QrvHLRo8Q18OncqBCB7tIUyqxRcJnlonQ0ioHKYB988GcDFF3ZePmnb8eHEopDs/wPHR/iGAFgoUQ==} dev: true - registry.nlark.com/node-int64/0.4.0: - resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/node-int64/download/node-int64-0.4.0.tgz} - name: node-int64 - version: 0.4.0 + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - registry.nlark.com/node-modules-regexp/1.0.0: - resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/node-modules-regexp/download/node-modules-regexp-1.0.0.tgz} - name: node-modules-regexp - version: 1.0.0 - engines: {node: '>=0.10.0'} + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} dev: true - registry.nlark.com/normalize-package-data/2.5.0: - resolution: {integrity: sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1629337224372&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz} - name: normalize-package-data - version: 2.5.0 + /enhanced-resolve@5.12.0: + resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} + engines: {node: '>=10.13.0'} dependencies: - hosted-git-info: registry.nlark.com/hosted-git-info/2.8.9 - resolve: registry.nlark.com/resolve/1.20.0 - semver: registry.nlark.com/semver/5.7.1 - validate-npm-package-license: registry.nlark.com/validate-npm-package-license/3.0.4 + graceful-fs: 4.2.11 + tapable: 2.2.1 dev: true - registry.nlark.com/normalize-path/2.1.1: - resolution: {integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/normalize-path/download/normalize-path-2.1.1.tgz} - name: normalize-path - version: 2.1.1 - engines: {node: '>=0.10.0'} + /enhanced-resolve@5.16.1: + resolution: {integrity: sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==} + engines: {node: '>=10.13.0'} dependencies: - remove-trailing-separator: 1.1.0 + graceful-fs: 4.2.11 + tapable: 2.2.1 dev: true - registry.nlark.com/normalize-path/3.0.0: - resolution: {integrity: sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/normalize-path/download/normalize-path-3.0.0.tgz} - name: normalize-path - version: 3.0.0 - engines: {node: '>=0.10.0'} + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 dev: true - registry.nlark.com/normalize-url/6.1.0: - resolution: {integrity: sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/normalize-url/download/normalize-url-6.1.0.tgz} - name: normalize-url - version: 6.1.0 - engines: {node: '>=10'} + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true - registry.nlark.com/nth-check/2.0.1: - resolution: {integrity: sha1-Lv4WL1w9oGoolZ+9PbddvuqfD8I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/nth-check/download/nth-check-2.0.1.tgz} - name: nth-check - version: 2.0.1 - dependencies: - boolbase: registry.nlark.com/boolbase/1.0.0 + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} dev: true - registry.nlark.com/nwsapi/2.2.0: - resolution: {integrity: sha1-IEh5qePQaP8qVROcLHcngGgaOLc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/nwsapi/download/nwsapi-2.2.0.tgz} - name: nwsapi - version: 2.2.0 + /errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 dev: true + optional: true - registry.nlark.com/object-assign/4.1.1: - resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/object-assign/download/object-assign-4.1.1.tgz} - name: object-assign - version: 4.1.1 - engines: {node: '>=0.10.0'} + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + dependencies: + stackframe: 1.3.4 dev: true - registry.nlark.com/object-keys/1.1.1: - resolution: {integrity: sha1-HEfyct8nfzsdrwYWd9nILiMixg4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/object-keys/download/object-keys-1.1.1.tgz} - name: object-keys - version: 1.1.1 + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 dev: true - registry.nlark.com/object.assign/4.1.2: - resolution: {integrity: sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/object.assign/download/object.assign-4.1.2.tgz} - name: object.assign - version: 4.1.2 + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.nlark.com/call-bind/1.0.2 - define-properties: registry.nlark.com/define-properties/1.1.3 - has-symbols: registry.nlark.com/has-symbols/1.0.2 - object-keys: registry.nlark.com/object-keys/1.1.1 dev: true - registry.nlark.com/object.omit/2.0.1: - resolution: {integrity: sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/object.omit/download/object.omit-2.0.1.tgz} - name: object.omit - version: 2.0.1 - engines: {node: '>=0.10.0'} - dependencies: - for-own: registry.nlark.com/for-own/0.1.5 - is-extendable: registry.nlark.com/is-extendable/0.1.1 + /es-module-lexer@0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + dev: true + + /es-module-lexer@1.5.2: + resolution: {integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==} dev: true - registry.nlark.com/once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/once/download/once-1.4.0.tgz} - name: once - version: 1.4.0 + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} dependencies: - wrappy: registry.nlark.com/wrappy/1.0.2 + es-errors: 1.3.0 dev: true - registry.nlark.com/onetime/5.1.2: - resolution: {integrity: sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/onetime/download/onetime-5.1.2.tgz} - name: onetime - version: 5.1.2 - engines: {node: '>=6'} + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} dependencies: - mimic-fn: registry.nlark.com/mimic-fn/2.1.0 + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 dev: true - registry.nlark.com/optionator/0.8.3: - resolution: {integrity: sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/optionator/download/optionator-0.8.3.tgz} - name: optionator - version: 0.8.3 - engines: {node: '>= 0.8.0'} + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - deep-is: registry.nlark.com/deep-is/0.1.4 - fast-levenshtein: registry.nlark.com/fast-levenshtein/2.0.6 - levn: registry.nlark.com/levn/0.3.0 - prelude-ls: registry.nlark.com/prelude-ls/1.1.2 - type-check: registry.nlark.com/type-check/0.3.2 - word-wrap: registry.nlark.com/word-wrap/1.2.3 + hasown: 2.0.2 dev: true - registry.nlark.com/optionator/0.9.1: - resolution: {integrity: sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/optionator/download/optionator-0.9.1.tgz} - name: optionator - version: 0.9.1 - engines: {node: '>= 0.8.0'} + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: - deep-is: registry.nlark.com/deep-is/0.1.4 - fast-levenshtein: registry.nlark.com/fast-levenshtein/2.0.6 - levn: registry.nlark.com/levn/0.4.1 - prelude-ls: registry.nlark.com/prelude-ls/1.2.1 - type-check: registry.nlark.com/type-check/0.4.0 - word-wrap: registry.nlark.com/word-wrap/1.2.3 + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 dev: true - registry.nlark.com/p-finally/1.0.0: - resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-finally/download/p-finally-1.0.0.tgz} - name: p-finally - version: 1.0.0 - engines: {node: '>=4'} + /esbuild-android-64@0.15.10: + resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true dev: true + optional: true - registry.nlark.com/p-limit/1.3.0: - resolution: {integrity: sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz} - name: p-limit - version: 1.3.0 - engines: {node: '>=4'} - dependencies: - p-try: registry.npmmirror.com/p-try/1.0.0 + /esbuild-android-arm64@0.15.10: + resolution: {integrity: sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true dev: true + optional: true - registry.nlark.com/p-limit/2.3.0: - resolution: {integrity: sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz} - name: p-limit - version: 2.3.0 - engines: {node: '>=6'} - dependencies: - p-try: registry.npmmirror.com/p-try/2.2.0 + /esbuild-darwin-64@0.15.10: + resolution: {integrity: sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true dev: true + optional: true - registry.nlark.com/p-locate/2.0.0: - resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-locate/download/p-locate-2.0.0.tgz} - name: p-locate - version: 2.0.0 - engines: {node: '>=4'} - dependencies: - p-limit: registry.nlark.com/p-limit/1.3.0 + /esbuild-darwin-arm64@0.15.10: + resolution: {integrity: sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true dev: true + optional: true - registry.nlark.com/p-locate/4.1.0: - resolution: {integrity: sha1-o0KLtwiLOmApL2aRkni3wpetTwc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-locate/download/p-locate-4.1.0.tgz} - name: p-locate - version: 4.1.0 - engines: {node: '>=8'} - dependencies: - p-limit: registry.nlark.com/p-limit/2.3.0 + /esbuild-freebsd-64@0.15.10: + resolution: {integrity: sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true dev: true + optional: true - registry.nlark.com/p-queue/6.6.2: - resolution: {integrity: sha1-IGip3PjmfdDsPnory3aBD6qF5CY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-queue/download/p-queue-6.6.2.tgz} - name: p-queue - version: 6.6.2 - engines: {node: '>=8'} - dependencies: - eventemitter3: registry.nlark.com/eventemitter3/4.0.7 - p-timeout: registry.npmmirror.com/p-timeout/3.2.0 + /esbuild-freebsd-arm64@0.15.10: + resolution: {integrity: sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true dev: true + optional: true - registry.nlark.com/parse-glob/3.0.4: - resolution: {integrity: sha1-ssN2z7EfNVE7rdFz7wu246OIORw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/parse-glob/download/parse-glob-3.0.4.tgz} - name: parse-glob - version: 3.0.4 - engines: {node: '>=0.10.0'} - dependencies: - glob-base: registry.nlark.com/glob-base/0.3.0 - is-dotfile: registry.nlark.com/is-dotfile/1.0.3 - is-extglob: registry.nlark.com/is-extglob/1.0.0 - is-glob: registry.npmmirror.com/is-glob/2.0.1 + /esbuild-linux-32@0.15.10: + resolution: {integrity: sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true dev: true + optional: true - registry.nlark.com/parse5/6.0.1: - resolution: {integrity: sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/parse5/download/parse5-6.0.1.tgz} - name: parse5 - version: 6.0.1 + /esbuild-linux-64@0.15.10: + resolution: {integrity: sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true dev: true + optional: true - registry.nlark.com/path-exists/2.1.0: - resolution: {integrity: sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-exists/download/path-exists-2.1.0.tgz} - name: path-exists - version: 2.1.0 - engines: {node: '>=0.10.0'} - dependencies: - pinkie-promise: registry.nlark.com/pinkie-promise/2.0.1 + /esbuild-linux-arm64@0.15.10: + resolution: {integrity: sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true dev: true + optional: true - registry.nlark.com/path-exists/3.0.0: - resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz} - name: path-exists - version: 3.0.0 - engines: {node: '>=4'} + /esbuild-linux-arm@0.15.10: + resolution: {integrity: sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true dev: true + optional: true - registry.nlark.com/path-exists/4.0.0: - resolution: {integrity: sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-exists/download/path-exists-4.0.0.tgz} - name: path-exists - version: 4.0.0 - engines: {node: '>=8'} + /esbuild-linux-mips64le@0.15.10: + resolution: {integrity: sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true dev: true + optional: true - registry.nlark.com/path-is-absolute/1.0.1: - resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz} - name: path-is-absolute - version: 1.0.1 - engines: {node: '>=0.10.0'} + /esbuild-linux-ppc64le@0.15.10: + resolution: {integrity: sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true dev: true + optional: true - registry.nlark.com/path-key/3.1.1: - resolution: {integrity: sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz} - name: path-key - version: 3.1.1 - engines: {node: '>=8'} + /esbuild-linux-riscv64@0.15.10: + resolution: {integrity: sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true dev: true + optional: true - registry.nlark.com/path-parse/1.0.7: - resolution: {integrity: sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz} - name: path-parse - version: 1.0.7 + /esbuild-linux-s390x@0.15.10: + resolution: {integrity: sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true dev: true + optional: true - registry.nlark.com/path-type/1.1.0: - resolution: {integrity: sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-type/download/path-type-1.1.0.tgz} - name: path-type - version: 1.1.0 - engines: {node: '>=0.10.0'} - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - pify: registry.nlark.com/pify/2.3.0 - pinkie-promise: registry.nlark.com/pinkie-promise/2.0.1 + /esbuild-netbsd-64@0.15.10: + resolution: {integrity: sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true dev: true + optional: true - registry.nlark.com/path-type/4.0.0: - resolution: {integrity: sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-type/download/path-type-4.0.0.tgz} - name: path-type - version: 4.0.0 - engines: {node: '>=8'} + /esbuild-openbsd-64@0.15.10: + resolution: {integrity: sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true dev: true + optional: true - registry.nlark.com/picomatch/2.3.0: - resolution: {integrity: sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz} - name: picomatch - version: 2.3.0 - engines: {node: '>=8.6'} + /esbuild-sunos-64@0.15.10: + resolution: {integrity: sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true dev: true + optional: true - registry.nlark.com/pify/2.3.0: - resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/pify/download/pify-2.3.0.tgz} - name: pify - version: 2.3.0 - engines: {node: '>=0.10.0'} + /esbuild-windows-32@0.15.10: + resolution: {integrity: sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true dev: true + optional: true - registry.nlark.com/pify/5.0.0: - resolution: {integrity: sha1-H17KP16H6+wozG1UoOSq8ArMEn8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/pify/download/pify-5.0.0.tgz} - name: pify - version: 5.0.0 - engines: {node: '>=10'} + /esbuild-windows-64@0.15.10: + resolution: {integrity: sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true dev: true + optional: true - registry.nlark.com/pinkie-promise/2.0.1: - resolution: {integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/pinkie-promise/download/pinkie-promise-2.0.1.tgz} - name: pinkie-promise - version: 2.0.1 - engines: {node: '>=0.10.0'} - dependencies: - pinkie: registry.nlark.com/pinkie/2.0.4 + /esbuild-windows-arm64@0.15.10: + resolution: {integrity: sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true dev: true + optional: true - registry.nlark.com/pinkie/2.0.4: - resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/pinkie/download/pinkie-2.0.4.tgz} - name: pinkie - version: 2.0.4 - engines: {node: '>=0.10.0'} + /esbuild@0.15.10: + resolution: {integrity: sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.15.10 + '@esbuild/linux-loong64': 0.15.10 + esbuild-android-64: 0.15.10 + esbuild-android-arm64: 0.15.10 + esbuild-darwin-64: 0.15.10 + esbuild-darwin-arm64: 0.15.10 + esbuild-freebsd-64: 0.15.10 + esbuild-freebsd-arm64: 0.15.10 + esbuild-linux-32: 0.15.10 + esbuild-linux-64: 0.15.10 + esbuild-linux-arm: 0.15.10 + esbuild-linux-arm64: 0.15.10 + esbuild-linux-mips64le: 0.15.10 + esbuild-linux-ppc64le: 0.15.10 + esbuild-linux-riscv64: 0.15.10 + esbuild-linux-s390x: 0.15.10 + esbuild-netbsd-64: 0.15.10 + esbuild-openbsd-64: 0.15.10 + esbuild-sunos-64: 0.15.10 + esbuild-windows-32: 0.15.10 + esbuild-windows-64: 0.15.10 + esbuild-windows-arm64: 0.15.10 + dev: true + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} dev: true - registry.nlark.com/pirates/4.0.1: - resolution: {integrity: sha1-ZDqSyviUVm+RsrmG0sZpUKji+4c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/pirates/download/pirates-4.0.1.tgz} - name: pirates - version: 4.0.1 - engines: {node: '>= 6'} - dependencies: - node-modules-regexp: registry.nlark.com/node-modules-regexp/1.0.0 + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} dev: true - registry.nlark.com/postcss-calc/8.0.0_postcss@8.3.11: - resolution: {integrity: sha1-oFuHqs0TJ0Cl2wlGKjYSRT5d+Qo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-calc/download/postcss-calc-8.0.0.tgz} - id: registry.nlark.com/postcss-calc/8.0.0 - name: postcss-calc - version: 8.0.0 - peerDependencies: - postcss: ^8.2.2 - dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} dev: true - registry.nlark.com/postcss-discard-comments/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-nq5LdHz3YNMfJEfCfwYZ1XGJAf4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-discard-comments/download/postcss-discard-comments-5.0.1.tgz} - id: registry.nlark.com/postcss-discard-comments/5.0.1 - name: postcss-discard-comments - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} dev: true - registry.nlark.com/postcss-discard-duplicates/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-aPfMZFj+a6suRsn1WuUoafaA5m0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-discard-duplicates/download/postcss-discard-duplicates-5.0.1.tgz} - id: registry.nlark.com/postcss-discard-duplicates/5.0.1 - name: postcss-discard-duplicates - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} + /eslint-config-prettier@8.3.0(eslint@7.32.0): + resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} + hasBin: true peerDependencies: - postcss: ^8.2.15 + eslint: '>=7.0.0' dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 + eslint: 7.32.0 dev: true - registry.nlark.com/postcss-discard-empty/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-7hNsOeJ9XS7U2g7l7QK8ip+L9tg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-discard-empty/download/postcss-discard-empty-5.0.1.tgz} - id: registry.nlark.com/postcss-discard-empty/5.0.1 - name: postcss-discard-empty - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} + /eslint-plugin-prettier@3.3.1(eslint-config-prettier@8.3.0)(eslint@7.32.0)(prettier@2.3.2): + resolution: {integrity: sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==} + engines: {node: '>=6.0.0'} peerDependencies: - postcss: ^8.2.15 + eslint: '>=5.0.0' + eslint-config-prettier: '*' + prettier: '>=1.13.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 + eslint: 7.32.0 + eslint-config-prettier: 8.3.0(eslint@7.32.0) + prettier: 2.3.2 + prettier-linter-helpers: 1.0.0 dev: true - registry.nlark.com/postcss-discard-overridden/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-RUtB9wcwC5gQmnUAXKSrD/J0OsY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-discard-overridden/download/postcss-discard-overridden-5.0.1.tgz} - id: registry.nlark.com/postcss-discard-overridden/5.0.1 - name: postcss-discard-overridden - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} + /eslint-plugin-react-hooks@4.3.0(eslint@7.32.0): + resolution: {integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==} + engines: {node: '>=10'} peerDependencies: - postcss: ^8.2.15 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 + eslint: 7.32.0 dev: true - registry.nlark.com/postcss-minify-font-values/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-qQzvv9qgdb09uqGzNYi7TcJord8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-minify-font-values/download/postcss-minify-font-values-5.0.1.tgz} - id: registry.nlark.com/postcss-minify-font-values/5.0.1 - name: postcss-minify-font-values - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} + /eslint-plugin-react@7.27.0(eslint@7.32.0): + resolution: {integrity: sha512-0Ut+CkzpppgFtoIhdzi2LpdpxxBvgFf99eFqWxJnUrO7mMe0eOiNpou6rvNYeVVV6lWZvTah0BFne7k5xHjARg==} + engines: {node: '>=4'} peerDependencies: - postcss: ^8.2.15 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 + doctrine: 2.1.0 + eslint: 7.32.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.hasown: 1.1.4 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + esrecurse: 4.3.0 + estraverse: 4.3.0 dev: true - registry.nlark.com/postcss-minify-selectors/5.1.0_postcss@8.3.11: - resolution: {integrity: sha1-Q4XIRdOXn/FgKRd0Uj/6VOr9WlQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-minify-selectors/download/postcss-minify-selectors-5.1.0.tgz} - id: registry.nlark.com/postcss-minify-selectors/5.1.0 - name: postcss-minify-selectors - version: 5.1.0 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} dependencies: - alphanum-sort: registry.nlark.com/alphanum-sort/1.0.2 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 + eslint-visitor-keys: 1.3.0 dev: true - registry.nlark.com/postcss-modules-extract-imports/3.0.0_postcss@8.3.11: - resolution: {integrity: sha1-zaHwR8CugMl9vijD52pDuIAldB0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-modules-extract-imports/download/postcss-modules-extract-imports-3.0.0.tgz} - id: registry.nlark.com/postcss-modules-extract-imports/3.0.0 - name: postcss-modules-extract-imports - version: 3.0.0 - engines: {node: ^10 || ^12 || >= 14} + /eslint-utils@3.0.0(eslint@7.32.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: - postcss: ^8.1.0 + eslint: '>=5' dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 + eslint: 7.32.0 + eslint-visitor-keys: 2.1.0 dev: true - registry.nlark.com/postcss-modules-local-by-default/4.0.0_postcss@8.3.11: - resolution: {integrity: sha1-67tU+uFZjuz99pGgKz/zs5ClpRw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-modules-local-by-default/download/postcss-modules-local-by-default-4.0.0.tgz} - id: registry.nlark.com/postcss-modules-local-by-default/4.0.0 - name: postcss-modules-local-by-default - version: 4.0.0 - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - icss-utils: registry.nlark.com/icss-utils/5.1.0_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} dev: true - registry.nlark.com/postcss-modules-scope/3.0.0_postcss@8.3.11: - resolution: {integrity: sha1-nvMVFFbTu/oSDKRImN/Kby+gHwY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-modules-scope/download/postcss-modules-scope-3.0.0.tgz} - id: registry.nlark.com/postcss-modules-scope/3.0.0 - name: postcss-modules-scope - version: 3.0.0 - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} dev: true - registry.nlark.com/postcss-modules-values/4.0.0_postcss@8.3.11: - resolution: {integrity: sha1-18Xn5ow7s8myfL9Iyguz/7RgLJw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-modules-values/download/postcss-modules-values-4.0.0.tgz} - id: registry.nlark.com/postcss-modules-values/4.0.0 - name: postcss-modules-values - version: 4.0.0 - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - icss-utils: registry.nlark.com/icss-utils/5.1.0_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - registry.nlark.com/postcss-modules/4.2.2_postcss@8.3.11: - resolution: {integrity: sha1-Xnd3xaiWTqF2kZ2QsuVO+JEyHOU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-modules/download/postcss-modules-4.2.2.tgz} - id: registry.nlark.com/postcss-modules/4.2.2 - name: postcss-modules - version: 4.2.2 - peerDependencies: - postcss: ^8.0.0 - dependencies: - generic-names: registry.nlark.com/generic-names/2.0.1 - icss-replace-symbols: registry.nlark.com/icss-replace-symbols/1.1.0 - lodash.camelcase: registry.npmmirror.com/lodash.camelcase/4.3.0 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-modules-extract-imports: registry.nlark.com/postcss-modules-extract-imports/3.0.0_postcss@8.3.11 - postcss-modules-local-by-default: registry.nlark.com/postcss-modules-local-by-default/4.0.0_postcss@8.3.11 - postcss-modules-scope: registry.nlark.com/postcss-modules-scope/3.0.0_postcss@8.3.11 - postcss-modules-values: registry.nlark.com/postcss-modules-values/4.0.0_postcss@8.3.11 - string-hash: registry.nlark.com/string-hash/1.1.3 - dev: true - - registry.nlark.com/postcss-normalize-charset/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-EhVZ0b68VayNJK839nvU2p79kdA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-normalize-charset/download/postcss-normalize-charset-5.0.1.tgz} - id: registry.nlark.com/postcss-normalize-charset/5.0.1 - name: postcss-normalize-charset - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - dev: true - - registry.nlark.com/postcss-normalize-display-values/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-YmULllmBqVXf/ugzY0U9uC9q0f0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-normalize-display-values/download/postcss-normalize-display-values-5.0.1.tgz} - id: registry.nlark.com/postcss-normalize-display-values/5.0.1 - name: postcss-normalize-display-values - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /eslint@7.32.0: + resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} + engines: {node: ^10.12.0 || >=12.0.0} + hasBin: true dependencies: - cssnano-utils: registry.npmmirror.com/cssnano-utils/2.0.1_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + '@babel/code-frame': 7.12.11 + '@eslint/eslintrc': 0.4.3 + '@humanwhocodes/config-array': 0.5.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + enquirer: 2.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.1.0 + espree: 7.3.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 13.24.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + progress: 2.0.3 + regexpp: 3.2.0 + semver: 7.6.2 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + table: 6.8.2 + text-table: 0.2.0 + v8-compile-cache: 2.4.0 + transitivePeerDependencies: + - supports-color dev: true - registry.nlark.com/postcss-normalize-positions/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-ho9q8Xlf36hvu+lg3OtH5flJL+U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-normalize-positions/download/postcss-normalize-positions-5.0.1.tgz} - id: registry.nlark.com/postcss-normalize-positions/5.0.1 - name: postcss-normalize-positions - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /espree@7.3.1: + resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + eslint-visitor-keys: 1.3.0 dev: true - registry.nlark.com/postcss-normalize-repeat-style/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-y8DeE4O1f1u2Hd1qhGU7XoZlsrU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-5.0.1.tgz} - id: registry.nlark.com/postcss-normalize-repeat-style/5.0.1 - name: postcss-normalize-repeat-style - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-utils: registry.npmmirror.com/cssnano-utils/2.0.1_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true dev: true - registry.nlark.com/postcss-normalize-string/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-2er6pN94x6O5c640bvDkfFVJhbA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-normalize-string/download/postcss-normalize-string-5.0.1.tgz} - id: registry.nlark.com/postcss-normalize-string/5.0.1 - name: postcss-normalize-string - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + estraverse: 5.3.0 dev: true - registry.nlark.com/postcss-normalize-timing-functions/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-juQRA7kTBCnGy7pzaTK3XF4ssIw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-5.0.1.tgz} - id: registry.nlark.com/postcss-normalize-timing-functions/5.0.1 - name: postcss-normalize-timing-functions - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: - cssnano-utils: registry.npmmirror.com/cssnano-utils/2.0.1_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + estraverse: 5.3.0 dev: true - registry.nlark.com/postcss-normalize-unicode/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-gtZy1kikEYFKpb865WU3nM2fXjc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-normalize-unicode/download/postcss-normalize-unicode-5.0.1.tgz} - id: registry.nlark.com/postcss-normalize-unicode/5.0.1 - name: postcss-normalize-unicode - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: registry.npmmirror.com/browserslist/4.18.1 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} dev: true - registry.nlark.com/postcss-normalize-whitespace/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-sLQLW8rINYX/B+rS2vLc++7vjpo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-normalize-whitespace/download/postcss-normalize-whitespace-5.0.1.tgz} - id: registry.nlark.com/postcss-normalize-whitespace/5.0.1 - name: postcss-normalize-whitespace - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} dev: true - registry.nlark.com/postcss-ordered-values/5.0.2_postcss@8.3.11: - resolution: {integrity: sha1-HzUUJpd74A4PdlsxZK11PayO0EQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-ordered-values/download/postcss-ordered-values-5.0.2.tgz} - id: registry.nlark.com/postcss-ordered-values/5.0.2 - name: postcss-ordered-values - version: 5.0.2 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-utils: registry.npmmirror.com/cssnano-utils/2.0.1_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + /estree-walker@0.6.1: + resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} dev: true - registry.nlark.com/postcss-reduce-initial/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-nWNphlsPb29rFloO9dwaSFbH6UY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-reduce-initial/download/postcss-reduce-initial-5.0.1.tgz} - id: registry.nlark.com/postcss-reduce-initial/5.0.1 - name: postcss-reduce-initial - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: registry.npmmirror.com/browserslist/4.18.1 - caniuse-api: registry.nlark.com/caniuse-api/3.0.0 - postcss: registry.npmmirror.com/postcss/8.3.11 + /estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} dev: true - registry.nlark.com/postcss-reduce-transforms/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-k8EvahWUdKpxHVJpkj4jg87c9kA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-reduce-transforms/download/postcss-reduce-transforms-5.0.1.tgz} - id: registry.nlark.com/postcss-reduce-transforms/5.0.1 - name: postcss-reduce-transforms - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-utils: registry.npmmirror.com/cssnano-utils/2.0.1_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true - registry.nlark.com/postcss-selector-parser/6.0.6: - resolution: {integrity: sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz} - name: postcss-selector-parser - version: 6.0.6 - engines: {node: '>=4'} - dependencies: - cssesc: registry.nlark.com/cssesc/3.0.0 - util-deprecate: 1.0.2 + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} dev: true - registry.nlark.com/postcss-value-parser/4.1.0: - resolution: {integrity: sha1-RD9qIM7WSBor2k+oUypuVdeJoss=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz} - name: postcss-value-parser - version: 4.1.0 + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} dev: true - registry.nlark.com/prelude-ls/1.1.2: - resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/prelude-ls/download/prelude-ls-1.1.2.tgz} - name: prelude-ls - version: 1.1.2 - engines: {node: '>= 0.8.0'} + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: true - registry.nlark.com/prelude-ls/1.2.1: - resolution: {integrity: sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/prelude-ls/download/prelude-ls-1.2.1.tgz} - name: prelude-ls - version: 1.2.1 - engines: {node: '>= 0.8.0'} + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} dev: true - registry.nlark.com/prettier-linter-helpers/1.0.0: - resolution: {integrity: sha1-0j1B/hN1ZG3i0BBNNFSjAIgCz3s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/prettier-linter-helpers/download/prettier-linter-helpers-1.0.0.tgz} - name: prettier-linter-helpers - version: 1.0.0 - engines: {node: '>=6.0.0'} + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: - fast-diff: 1.2.0 - dev: true - - registry.nlark.com/prettier/2.4.1: - resolution: {integrity: sha1-Zx4RyJwUpM/Ids5WQQbEpnJsn1w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/prettier/download/prettier-2.4.1.tgz} - name: prettier - version: 2.4.1 - engines: {node: '>=10.13.0'} - hasBin: true + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 dev: true - registry.nlark.com/progress/2.0.3: - resolution: {integrity: sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/progress/download/progress-2.0.3.tgz} - name: progress - version: 2.0.3 - engines: {node: '>=0.4.0'} + /express@4.18.1: + resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.0 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.10.3 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color dev: true - registry.nlark.com/psl/1.8.0: - resolution: {integrity: sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/psl/download/psl-1.8.0.tgz} - name: psl - version: 1.8.0 + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + requiresBuild: true dev: true + optional: true - registry.nlark.com/punycode/2.1.1: - resolution: {integrity: sha1-tYsBCsQMIsVldhbI0sLALHv0eew=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/punycode/download/punycode-2.1.1.tgz} - name: punycode - version: 2.1.1 - engines: {node: '>=6'} + /extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + requiresBuild: true dev: true + optional: true - registry.nlark.com/queue-microtask/1.2.3: - resolution: {integrity: sha1-SSkii7xyTfrEPg77BYyve2z7YkM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/queue-microtask/download/queue-microtask-1.2.3.tgz} - name: queue-microtask - version: 1.2.3 + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - registry.nlark.com/read-pkg/1.1.0: - resolution: {integrity: sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/read-pkg/download/read-pkg-1.1.0.tgz} - name: read-pkg - version: 1.1.0 - engines: {node: '>=0.10.0'} - dependencies: - load-json-file: registry.nlark.com/load-json-file/1.1.0 - normalize-package-data: registry.nlark.com/normalize-package-data/2.5.0 - path-type: registry.nlark.com/path-type/1.1.0 + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - registry.nlark.com/regenerate-unicode-properties/9.0.0: - resolution: {integrity: sha1-VNCccRXh9T3CMUqXSzLBw0Tv4yY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regenerate-unicode-properties/download/regenerate-unicode-properties-9.0.0.tgz} - name: regenerate-unicode-properties - version: 9.0.0 - engines: {node: '>=4'} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: - regenerate: registry.nlark.com/regenerate/1.4.2 + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 dev: true - registry.nlark.com/regenerate/1.4.2: - resolution: {integrity: sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regenerate/download/regenerate-1.4.2.tgz} - name: regenerate - version: 1.4.2 + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - registry.nlark.com/regenerator-runtime/0.11.1: - resolution: {integrity: sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz} - name: regenerator-runtime - version: 0.11.1 + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - registry.nlark.com/regenerator-runtime/0.13.9: - resolution: {integrity: sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz} - name: regenerator-runtime - version: 0.13.9 + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 dev: true - registry.nlark.com/regenerator-transform/0.14.5: - resolution: {integrity: sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regenerator-transform/download/regenerator-transform-0.14.5.tgz} - name: regenerator-transform - version: 0.14.5 + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.16.3 + websocket-driver: 0.7.4 dev: true - registry.nlark.com/regex-cache/0.4.4: - resolution: {integrity: sha1-db3FiioUls7EihKDW8VMjVYjNt0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regex-cache/download/regex-cache-0.4.4.tgz} - name: regex-cache - version: 0.4.4 - engines: {node: '>=0.10.0'} + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - is-equal-shallow: 0.1.3 + flat-cache: 3.2.0 dev: true - registry.nlark.com/regexpp/3.2.0: - resolution: {integrity: sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz} - name: regexpp - version: 3.2.0 + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 dev: true - registry.nlark.com/regexpu-core/4.8.0: - resolution: {integrity: sha1-5WBbo2G2excYR4UBMnUC9EeamPA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regexpu-core/download/regexpu-core-4.8.0.tgz} - name: regexpu-core - version: 4.8.0 - engines: {node: '>=4'} + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} dependencies: - regenerate: registry.nlark.com/regenerate/1.4.2 - regenerate-unicode-properties: registry.nlark.com/regenerate-unicode-properties/9.0.0 - regjsgen: registry.npmmirror.com/regjsgen/0.5.2 - regjsparser: registry.nlark.com/regjsparser/0.7.0 - unicode-match-property-ecmascript: registry.nlark.com/unicode-match-property-ecmascript/2.0.0 - unicode-match-property-value-ecmascript: registry.nlark.com/unicode-match-property-value-ecmascript/2.0.0 + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color dev: true - registry.nlark.com/regjsparser/0.7.0: - resolution: {integrity: sha1-prZntUyIXhi1JVTLSWDvcRh+mWg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regjsparser/download/regjsparser-0.7.0.tgz} - name: regjsparser - version: 0.7.0 - hasBin: true + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: - jsesc: registry.nlark.com/jsesc/0.5.0 + locate-path: 6.0.0 + path-exists: 4.0.0 dev: true - registry.nlark.com/repeat-element/1.1.4: - resolution: {integrity: sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/repeat-element/download/repeat-element-1.1.4.tgz} - name: repeat-element - version: 1.1.4 - engines: {node: '>=0.10.0'} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 dev: true - registry.nlark.com/repeat-string/1.6.1: - resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/repeat-string/download/repeat-string-1.6.1.tgz} - name: repeat-string - version: 1.6.1 - engines: {node: '>=0.10'} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true - registry.nlark.com/repeating/2.0.1: - resolution: {integrity: sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/repeating/download/repeating-2.0.1.tgz} - name: repeating - version: 2.0.1 - engines: {node: '>=0.10.0'} + /focus-lock@1.3.5: + resolution: {integrity: sha512-QFaHbhv9WPUeLYBDe/PAuLKJ4Dd9OPvKs9xZBr3yLXnUrDNaVXKu2baDBXe3naPY30hgHYSsf2JW4jzas2mDEQ==} + engines: {node: '>=10'} dependencies: - is-finite: registry.npmmirror.com/is-finite/1.1.0 - dev: true + tslib: 2.6.2 + dev: false - registry.nlark.com/require-directory/2.1.1: - resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/require-directory/download/require-directory-2.1.1.tgz} - name: require-directory - version: 2.1.1 - engines: {node: '>=0.10.0'} + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true dev: true - registry.nlark.com/require-from-string/2.0.2: - resolution: {integrity: sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/require-from-string/download/require-from-string-2.0.2.tgz?cache=0&sync_timestamp=1622556936203&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frequire-from-string%2Fdownload%2Frequire-from-string-2.0.2.tgz} - name: require-from-string - version: 2.0.2 - engines: {node: '>=0.10.0'} + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 dev: true - registry.nlark.com/require-main-filename/1.0.1: - resolution: {integrity: sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/require-main-filename/download/require-main-filename-1.0.1.tgz} - name: require-main-filename - version: 1.0.1 + /forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + requiresBuild: true dev: true + optional: true - registry.nlark.com/resolve-cwd/3.0.0: - resolution: {integrity: sha1-DwB18bslRHZs9zumpuKt/ryxPy0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/resolve-cwd/download/resolve-cwd-3.0.0.tgz} - name: resolve-cwd - version: 3.0.0 - engines: {node: '>=8'} + /form-data@2.1.4: + resolution: {integrity: sha512-8HWGSLAPr+AG0hBpsqi5Ob8HrLStN/LWeqhpFl14d7FJgHK48TmgLoALPz69XSUR65YJzDfLUX/BM8+MLJLghQ==} + engines: {node: '>= 0.12'} + requiresBuild: true dependencies: - resolve-from: registry.nlark.com/resolve-from/5.0.0 + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 dev: true + optional: true - registry.nlark.com/resolve-from/4.0.0: - resolution: {integrity: sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/resolve-from/download/resolve-from-4.0.0.tgz} - name: resolve-from - version: 4.0.0 - engines: {node: '>=4'} + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} dev: true - registry.nlark.com/resolve-from/5.0.0: - resolution: {integrity: sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/resolve-from/download/resolve-from-5.0.0.tgz} - name: resolve-from - version: 5.0.0 - engines: {node: '>=8'} + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} dev: true - registry.nlark.com/resolve/1.20.0: - resolution: {integrity: sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/resolve/download/resolve-1.20.0.tgz} - name: resolve - version: 1.20.0 - dependencies: - is-core-module: registry.npmmirror.com/is-core-module/2.8.0 - path-parse: registry.nlark.com/path-parse/1.0.7 + /fs-monkey@1.0.6: + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} dev: true - registry.nlark.com/reusify/1.0.4: - resolution: {integrity: sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/reusify/download/reusify-1.0.4.tgz} - name: reusify - version: 1.0.4 - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - registry.nlark.com/rimraf/3.0.2: - resolution: {integrity: sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/rimraf/download/rimraf-3.0.2.tgz} - name: rimraf - version: 3.0.2 - hasBin: true - dependencies: - glob: registry.npmmirror.com/glob/7.2.0 + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true dev: true + optional: true - registry.nlark.com/rollup-pluginutils/2.8.2: - resolution: {integrity: sha1-cvKvB0i1kjZNvTOJ5gDlqURKNR4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/rollup-pluginutils/download/rollup-pluginutils-2.8.2.tgz} - name: rollup-pluginutils - version: 2.8.2 - dependencies: - estree-walker: registry.npmmirror.com/estree-walker/0.6.1 + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true - registry.nlark.com/run-parallel/1.2.0: - resolution: {integrity: sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/run-parallel/download/run-parallel-1.2.0.tgz} - name: run-parallel - version: 1.2.0 + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} dependencies: - queue-microtask: registry.nlark.com/queue-microtask/1.2.3 - dev: true - - registry.nlark.com/safe-buffer/5.1.2: - resolution: {integrity: sha1-mR7GnSluAxN0fVm9/St0XDX4go0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/safe-buffer/download/safe-buffer-5.1.2.tgz} - name: safe-buffer - version: 5.1.2 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 dev: true - registry.nlark.com/safer-buffer/2.1.2: - resolution: {integrity: sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/safer-buffer/download/safer-buffer-2.1.2.tgz} - name: safer-buffer - version: 2.1.2 + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true - registry.nlark.com/select/1.1.2: - resolution: {integrity: sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/select/download/select-1.1.2.tgz} - name: select - version: 1.1.2 + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - registry.nlark.com/semver/5.7.1: - resolution: {integrity: sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-5.7.1.tgz} - name: semver - version: 5.7.1 - hasBin: true + /generic-names@4.0.0: + resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} + dependencies: + loader-utils: 3.2.1 dev: true - registry.nlark.com/semver/6.3.0: - resolution: {integrity: sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-6.3.0.tgz} - name: semver - version: 6.3.0 - hasBin: true + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} dev: true - registry.nlark.com/semver/7.0.0: - resolution: {integrity: sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-7.0.0.tgz} - name: semver - version: 7.0.0 - hasBin: true + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 dev: true - registry.nlark.com/semver/7.3.5: - resolution: {integrity: sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-7.3.5.tgz} - name: semver - version: 7.3.5 + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: registry.nlark.com/lru-cache/6.0.0 dev: true - registry.nlark.com/shebang-command/2.0.0: - resolution: {integrity: sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/shebang-command/download/shebang-command-2.0.0.tgz} - name: shebang-command - version: 2.0.0 - engines: {node: '>=8'} + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} dependencies: - shebang-regex: registry.nlark.com/shebang-regex/3.0.0 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 dev: true - registry.nlark.com/shebang-regex/3.0.0: - resolution: {integrity: sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz} - name: shebang-regex - version: 3.0.0 - engines: {node: '>=8'} + /getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + requiresBuild: true + dependencies: + assert-plus: 1.0.0 dev: true + optional: true - registry.nlark.com/sisteransi/1.0.5: - resolution: {integrity: sha1-E01oEpd1ZDfMBcoBNw06elcQde0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/sisteransi/download/sisteransi-1.0.5.tgz} - name: sisteransi - version: 1.0.5 + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 dev: true - registry.nlark.com/slash/3.0.0: - resolution: {integrity: sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/slash/download/slash-3.0.0.tgz} - name: slash - version: 3.0.0 - engines: {node: '>=8'} + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: true - registry.nlark.com/slice-ansi/4.0.0: - resolution: {integrity: sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/slice-ansi/download/slice-ansi-4.0.0.tgz} - name: slice-ansi - version: 4.0.0 - engines: {node: '>=10'} + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: - ansi-styles: registry.nlark.com/ansi-styles/4.3.0 - astral-regex: registry.nlark.com/astral-regex/2.0.0 - is-fullwidth-code-point: registry.nlark.com/is-fullwidth-code-point/3.0.0 + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 dev: true - registry.nlark.com/source-map/0.5.7: - resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/source-map/download/source-map-0.5.7.tgz} - name: source-map - version: 0.5.7 - engines: {node: '>=0.10.0'} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 dev: true - registry.nlark.com/source-map/0.6.1: - resolution: {integrity: sha1-dHIq8y6WFOnCh6jQu95IteLxomM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1624608021767&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz} - name: source-map - version: 0.6.1 - engines: {node: '>=0.10.0'} + /globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 dev: true - registry.nlark.com/source-map/0.7.3: - resolution: {integrity: sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/source-map/download/source-map-0.7.3.tgz?cache=0&sync_timestamp=1624608021767&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz} - name: source-map - version: 0.7.3 - engines: {node: '>= 8'} + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 dev: true - registry.nlark.com/spdx-correct/3.1.1: - resolution: {integrity: sha1-3s6BrJweZxPl99G28X1Gj6U9iak=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/spdx-correct/download/spdx-correct-3.1.1.tgz} - name: spdx-correct - version: 3.1.1 + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - spdx-expression-parse: registry.nlark.com/spdx-expression-parse/3.0.1 - spdx-license-ids: registry.npmmirror.com/spdx-license-ids/3.0.11 + get-intrinsic: 1.2.4 dev: true - registry.nlark.com/spdx-exceptions/2.3.0: - resolution: {integrity: sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz} - name: spdx-exceptions - version: 2.3.0 + /graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true - registry.nlark.com/spdx-expression-parse/3.0.1: - resolution: {integrity: sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz} - name: spdx-expression-parse - version: 3.0.1 - dependencies: - spdx-exceptions: registry.nlark.com/spdx-exceptions/2.3.0 - spdx-license-ids: registry.npmmirror.com/spdx-license-ids/3.0.11 + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true - registry.nlark.com/sprintf-js/1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/sprintf-js/download/sprintf-js-1.0.3.tgz} - name: sprintf-js - version: 1.0.3 + /gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + dependencies: + duplexer: 0.1.2 dev: true - registry.nlark.com/string-hash/1.1.3: - resolution: {integrity: sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/string-hash/download/string-hash-1.1.3.tgz} - name: string-hash - version: 1.1.3 + /handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} dev: true - registry.nlark.com/string-length/4.0.2: - resolution: {integrity: sha1-qKjce9XBqCubPIuH4SX2aHG25Xo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/string-length/download/string-length-4.0.2.tgz} - name: string-length - version: 4.0.2 - engines: {node: '>=10'} - dependencies: - char-regex: registry.npmmirror.com/char-regex/1.0.2 - strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + /har-schema@1.0.5: + resolution: {integrity: sha512-f8xf2GOR6Rgwc9FPTLNzgwB+JQ2/zMauYXSWmX5YV5acex6VomT0ocSuwR7BfXo5MpHi+jL+saaux2fwsGJDKQ==} + engines: {node: '>=4'} + requiresBuild: true dev: true + optional: true - registry.nlark.com/strip-bom/2.0.0: - resolution: {integrity: sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/strip-bom/download/strip-bom-2.0.0.tgz} - name: strip-bom - version: 2.0.0 - engines: {node: '>=0.10.0'} + /har-validator@4.2.1: + resolution: {integrity: sha512-5Gbp6RAftMYYV3UEI4c4Vv3+a4dQ7taVyvHt+/L6kRt+f4HX1GweAk5UDWN0SvdVnRBzGQ6OG89pGaD9uSFnVw==} + engines: {node: '>=4'} + deprecated: this library is no longer supported + requiresBuild: true dependencies: - is-utf8: 0.2.1 + ajv: 4.11.8 + har-schema: 1.0.5 dev: true + optional: true - registry.nlark.com/strip-bom/4.0.0: - resolution: {integrity: sha1-nDUFwdtFvO3KPZz3oW9cWqOQGHg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/strip-bom/download/strip-bom-4.0.0.tgz} - name: strip-bom - version: 4.0.0 - engines: {node: '>=8'} + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true - registry.nlark.com/strip-final-newline/2.0.0: - resolution: {integrity: sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz} - name: strip-final-newline - version: 2.0.0 - engines: {node: '>=6'} + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} dev: true - registry.nlark.com/strip-json-comments/3.1.1: - resolution: {integrity: sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz} - name: strip-json-comments - version: 3.1.1 + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} dev: true - registry.nlark.com/stylehacks/5.0.1_postcss@8.3.11: - resolution: {integrity: sha1-Mj7FVBmFIJhoBjiMf9rrw40sBvs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/stylehacks/download/stylehacks-5.0.1.tgz} - id: registry.nlark.com/stylehacks/5.0.1 - name: stylehacks - version: 5.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - browserslist: registry.npmmirror.com/browserslist/4.18.1 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 + es-define-property: 1.0.0 dev: true - registry.nlark.com/supports-hyperlinks/2.2.0: - resolution: {integrity: sha1-T3e0JIh2WJF3S3DHm6vYf5vVlLs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/supports-hyperlinks/download/supports-hyperlinks-2.2.0.tgz} - name: supports-hyperlinks - version: 2.2.0 - engines: {node: '>=8'} - dependencies: - has-flag: registry.nlark.com/has-flag/4.0.0 - supports-color: registry.npmmirror.com/supports-color/7.2.0 + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} dev: true - registry.nlark.com/symbol-tree/3.2.4: - resolution: {integrity: sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/symbol-tree/download/symbol-tree-3.2.4.tgz} - name: symbol-tree - version: 3.2.4 + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} dev: true - registry.nlark.com/test-exclude/4.2.3: - resolution: {integrity: sha1-qaXmRHTkOYM5JFoKdprXwvSpfCA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/test-exclude/download/test-exclude-4.2.3.tgz} - name: test-exclude - version: 4.2.3 + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} dependencies: - arrify: registry.nlark.com/arrify/1.0.1 - micromatch: registry.nlark.com/micromatch/2.3.11 - object-assign: registry.nlark.com/object-assign/4.1.1 - read-pkg-up: registry.npmmirror.com/read-pkg-up/1.0.1 - require-main-filename: registry.nlark.com/require-main-filename/1.0.1 + has-symbols: 1.0.3 dev: true - registry.nlark.com/test-exclude/6.0.0: - resolution: {integrity: sha1-BKhphmHYBepvopO2y55jrARO8V4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/test-exclude/download/test-exclude-6.0.0.tgz} - name: test-exclude - version: 6.0.0 - engines: {node: '>=8'} + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} dependencies: - '@istanbuljs/schema': 0.1.3 - glob: registry.npmmirror.com/glob/7.2.0 - minimatch: registry.nlark.com/minimatch/3.0.4 + function-bind: 1.1.2 dev: true - registry.nlark.com/text-table/0.2.0: - resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/text-table/download/text-table-0.2.0.tgz} - name: text-table - version: 0.2.0 - dev: true - - registry.nlark.com/throat/6.0.1: - resolution: {integrity: sha1-1RT+2tlXQMEsLX/HDqhj61Gt43U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/throat/download/throat-6.0.1.tgz} - name: throat - version: 6.0.1 + /hawk@3.1.3: + resolution: {integrity: sha512-X8xbmTc1cbPXcQV4WkLcRMALuyoxhfpFATmyuCxJPOAvrDS4DNnsTAOmKUxMTOWU6TzrTOkxPKwIx5ZOpJVSrg==} + engines: {node: '>=0.10.32'} + deprecated: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues. + requiresBuild: true + dependencies: + boom: 2.10.1 + cryptiles: 2.0.5 + hoek: 2.16.3 + sntp: 1.0.9 dev: true + optional: true - registry.nlark.com/timsort/0.3.0: - resolution: {integrity: sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/timsort/download/timsort-0.3.0.tgz} - name: timsort - version: 0.3.0 + /hoek@2.16.3: + resolution: {integrity: sha512-V6Yw1rIcYV/4JsnggjBU0l4Kr+EXhpwqXRusENU1Xx6ro00IHPHYNynCuBTOZAPlr3AAmLvchH9I7N/VUdvOwQ==} + engines: {node: '>=0.10.40'} + deprecated: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). + requiresBuild: true dev: true + optional: true - registry.nlark.com/tiny-emitter/2.1.0: - resolution: {integrity: sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tiny-emitter/download/tiny-emitter-2.1.0.tgz} - name: tiny-emitter - version: 2.1.0 + /hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 dev: true - registry.nlark.com/tmpl/1.0.5: - resolution: {integrity: sha1-hoPguQK7nCDE9ybjwLafNlGMB8w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tmpl/download/tmpl-1.0.5.tgz} - name: tmpl - version: 1.0.5 + /html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} dev: true - registry.nlark.com/to-fast-properties/1.0.3: - resolution: {integrity: sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/to-fast-properties/download/to-fast-properties-1.0.3.tgz} - name: to-fast-properties - version: 1.0.3 - engines: {node: '>=0.10.0'} + /html-minifier-terser@7.0.0: + resolution: {integrity: sha512-Adqk0b/pWKIQiGvEAuzPKpBKNHiwblr3QSGS7TTr6v+xXKV9AI2k4vWW+6Oytt6Z5SeBnfvYypKOnz8r75pz3Q==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + camel-case: 4.1.2 + clean-css: 5.2.0 + commander: 9.5.0 + entities: 4.5.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.31.0 dev: true - registry.nlark.com/to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz} - name: to-fast-properties - version: 2.0.0 - engines: {node: '>=4'} + /http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} dev: true - registry.nlark.com/to-regex-range/5.0.1: - resolution: {integrity: sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz} - name: to-regex-range - version: 5.0.1 - engines: {node: '>=8.0'} + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} dependencies: - is-number: registry.nlark.com/is-number/7.0.0 + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 dev: true - registry.nlark.com/tough-cookie/4.0.0: - resolution: {integrity: sha1-2CIjTuyogvmR8PkIgkrSYi3b7OQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tough-cookie/download/tough-cookie-4.0.0.tgz} - name: tough-cookie - version: 4.0.0 - engines: {node: '>=6'} + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} dependencies: - psl: registry.nlark.com/psl/1.8.0 - punycode: registry.nlark.com/punycode/2.1.1 - universalify: registry.nlark.com/universalify/0.1.2 - dev: true - - registry.nlark.com/tslib/1.14.1: - resolution: {integrity: sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz} - name: tslib - version: 1.14.1 + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 dev: true - registry.nlark.com/tslib/2.1.0: - resolution: {integrity: sha1-2mCGDxwuyqVwOrfTm8Bba/mIuXo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-2.1.0.tgz} - name: tslib - version: 2.1.0 + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} dev: true - registry.nlark.com/tsutils/3.21.0_typescript@4.5.2: - resolution: {integrity: sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tsutils/download/tsutils-3.21.0.tgz} - id: registry.nlark.com/tsutils/3.21.0 - name: tsutils - version: 3.21.0 - engines: {node: '>= 6'} + /http-proxy-middleware@2.0.6(@types/express@4.17.21): + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true dependencies: - tslib: registry.nlark.com/tslib/1.14.1 - typescript: registry.npmmirror.com/typescript/4.5.2 + '@types/express': 4.17.21 + '@types/http-proxy': 1.17.14 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.5 + transitivePeerDependencies: + - debug dev: true - registry.nlark.com/type-check/0.3.2: - resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/type-check/download/type-check-0.3.2.tgz} - name: type-check - version: 0.3.2 - engines: {node: '>= 0.8.0'} + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} dependencies: - prelude-ls: registry.nlark.com/prelude-ls/1.1.2 + eventemitter3: 4.0.7 + follow-redirects: 1.15.6 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug dev: true - registry.nlark.com/type-check/0.4.0: - resolution: {integrity: sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/type-check/download/type-check-0.4.0.tgz} - name: type-check - version: 0.4.0 - engines: {node: '>= 0.8.0'} + /http-signature@1.1.1: + resolution: {integrity: sha512-iUn0NcRULlDGtqNLN1Jxmzayk8ogm7NToldASyZBpM2qggbphjXzNOiw3piN8tgz+e/DRs6X5gAzFwTI6BCRcg==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + requiresBuild: true dependencies: - prelude-ls: registry.nlark.com/prelude-ls/1.2.1 + assert-plus: 0.2.0 + jsprim: 1.4.2 + sshpk: 1.18.0 dev: true + optional: true - registry.nlark.com/type-detect/4.0.8: - resolution: {integrity: sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/type-detect/download/type-detect-4.0.8.tgz} - name: type-detect - version: 4.0.8 - engines: {node: '>=4'} + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} dev: true - registry.nlark.com/typedarray-to-buffer/3.1.5: - resolution: {integrity: sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz} - name: typedarray-to-buffer - version: 3.1.5 + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: - is-typedarray: registry.nlark.com/is-typedarray/1.0.0 + safer-buffer: 2.1.2 dev: true - registry.nlark.com/unicode-canonical-property-names-ecmascript/2.0.0: - resolution: {integrity: sha1-MBrNxSVjFnDTn2FG4Od/9rvevdw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-2.0.0.tgz} - name: unicode-canonical-property-names-ecmascript - version: 2.0.0 - engines: {node: '>=4'} + /icss-replace-symbols@1.1.0: + resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} dev: true - registry.nlark.com/unicode-match-property-ecmascript/2.0.0: - resolution: {integrity: sha1-VP0W4OyxZ88Ezx91a9zJLrp5dsM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-2.0.0.tgz} - name: unicode-match-property-ecmascript - version: 2.0.0 - engines: {node: '>=4'} + /icss-utils@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: - unicode-canonical-property-names-ecmascript: registry.nlark.com/unicode-canonical-property-names-ecmascript/2.0.0 - unicode-property-aliases-ecmascript: registry.nlark.com/unicode-property-aliases-ecmascript/2.0.0 - dev: true - - registry.nlark.com/unicode-match-property-value-ecmascript/2.0.0: - resolution: {integrity: sha1-GgGqVyR8FMVouJd1pUk4eIGJpxQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-2.0.0.tgz} - name: unicode-match-property-value-ecmascript - version: 2.0.0 - engines: {node: '>=4'} + postcss: 8.3.11 dev: true - registry.nlark.com/unicode-property-aliases-ecmascript/2.0.0: - resolution: {integrity: sha1-CjbLmlhcT2q9Ua0d7dsoXBZSl8g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-2.0.0.tgz} - name: unicode-property-aliases-ecmascript - version: 2.0.0 - engines: {node: '>=4'} + /ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} dev: true - registry.nlark.com/universalify/0.1.2: - resolution: {integrity: sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/universalify/download/universalify-0.1.2.tgz} - name: universalify - version: 0.1.2 - engines: {node: '>= 4.0.0'} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} dev: true - registry.nlark.com/uri-js/4.4.1: - resolution: {integrity: sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1622694296052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz} - name: uri-js - version: 4.4.1 - dependencies: - punycode: registry.nlark.com/punycode/2.1.1 + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true dev: true + optional: true - registry.nlark.com/v8-compile-cache/2.3.0: - resolution: {integrity: sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz} - name: v8-compile-cache - version: 2.3.0 + /immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} dev: true - registry.nlark.com/validate-npm-package-license/3.0.4: - resolution: {integrity: sha1-/JH2uce6FchX9MssXe/uw51PQQo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz} - name: validate-npm-package-license - version: 3.0.4 + /import-cwd@3.0.0: + resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} + engines: {node: '>=8'} dependencies: - spdx-correct: registry.nlark.com/spdx-correct/3.1.1 - spdx-expression-parse: registry.nlark.com/spdx-expression-parse/3.0.1 + import-from: 3.0.0 dev: true - registry.nlark.com/w3c-hr-time/1.0.2: - resolution: {integrity: sha1-ConN9cwVgi35w2BUNnaWPgzDCM0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz} - name: w3c-hr-time - version: 1.0.2 + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: - browser-process-hrtime: registry.nlark.com/browser-process-hrtime/1.0.0 + parent-module: 1.0.1 + resolve-from: 4.0.0 dev: true - registry.nlark.com/webidl-conversions/5.0.0: - resolution: {integrity: sha1-rlnIoAsSFUOirMZcBDT1ew/BGv8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/webidl-conversions/download/webidl-conversions-5.0.0.tgz?cache=0&sync_timestamp=1631410956254&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebidl-conversions%2Fdownload%2Fwebidl-conversions-5.0.0.tgz} - name: webidl-conversions - version: 5.0.0 + /import-from@3.0.0: + resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 dev: true - registry.nlark.com/webidl-conversions/6.1.0: - resolution: {integrity: sha1-kRG01+qArNQPUnDWZmIa+ni2lRQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/webidl-conversions/download/webidl-conversions-6.1.0.tgz?cache=0&sync_timestamp=1631410956254&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebidl-conversions%2Fdownload%2Fwebidl-conversions-6.1.0.tgz} - name: webidl-conversions - version: 6.1.0 - engines: {node: '>=10.4'} - dev: true - - registry.nlark.com/webidl-conversions/7.0.0: - resolution: {integrity: sha1-JWtOGIK+feu/AdBfCqIDl3jqCAo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/webidl-conversions/download/webidl-conversions-7.0.0.tgz?cache=0&sync_timestamp=1631410956254&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebidl-conversions%2Fdownload%2Fwebidl-conversions-7.0.0.tgz} - name: webidl-conversions - version: 7.0.0 - engines: {node: '>=12'} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} dev: true - registry.nlark.com/which/2.0.2: - resolution: {integrity: sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/which/download/which-2.0.2.tgz} - name: which - version: 2.0.2 - engines: {node: '>= 8'} - hasBin: true + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: - isexe: registry.nlark.com/isexe/2.0.0 + once: 1.4.0 + wrappy: 1.0.2 dev: true - registry.nlark.com/word-wrap/1.2.3: - resolution: {integrity: sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/word-wrap/download/word-wrap-1.2.3.tgz} - name: word-wrap - version: 1.2.3 - engines: {node: '>=0.10.0'} - dev: true - - registry.nlark.com/wrap-ansi/7.0.0: - resolution: {integrity: sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz} - name: wrap-ansi - version: 7.0.0 - engines: {node: '>=10'} - dependencies: - ansi-styles: registry.nlark.com/ansi-styles/4.3.0 - string-width: registry.npmmirror.com/string-width/4.2.3 - strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} dev: true - registry.nlark.com/wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz} - name: wrappy - version: 1.0.2 + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - registry.nlark.com/write-file-atomic/3.0.3: - resolution: {integrity: sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/write-file-atomic/download/write-file-atomic-3.0.3.tgz} - name: write-file-atomic - version: 3.0.3 + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} dependencies: - imurmurhash: registry.nlark.com/imurmurhash/0.1.4 - is-typedarray: registry.nlark.com/is-typedarray/1.0.0 - signal-exit: registry.npmmirror.com/signal-exit/3.0.6 - typedarray-to-buffer: registry.nlark.com/typedarray-to-buffer/3.1.5 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 dev: true - registry.nlark.com/xmlchars/2.2.0: - resolution: {integrity: sha1-Bg/hvLf5x2/ioX24apvDq4lCEMs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/xmlchars/download/xmlchars-2.2.0.tgz} - name: xmlchars - version: 2.2.0 + /interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} dev: true - registry.nlark.com/y18n/5.0.8: - resolution: {integrity: sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/y18n/download/y18n-5.0.8.tgz} - name: y18n - version: 5.0.8 - engines: {node: '>=10'} + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} dev: true - registry.nlark.com/yallist/4.0.0: - resolution: {integrity: sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz} - name: yallist - version: 4.0.0 + /ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} dev: true - registry.npmmirror.com/@babel/code-frame/7.12.11: - resolution: {integrity: sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz} - name: '@babel/code-frame' - version: 7.12.11 + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} dependencies: - '@babel/highlight': registry.npmmirror.com/@babel/highlight/7.16.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true - registry.npmmirror.com/@babel/code-frame/7.16.0: - resolution: {integrity: sha1-DfyAMJvuyEEeZecGRhxAiwu5tDE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.16.0.tgz} - name: '@babel/code-frame' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} dependencies: - '@babel/highlight': registry.npmmirror.com/@babel/highlight/7.16.0 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 dev: true - registry.npmmirror.com/@babel/compat-data/7.16.4: - resolution: {integrity: sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/compat-data/download/@babel/compat-data-7.16.4.tgz?cache=0&sync_timestamp=1637129984925&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.16.4.tgz} - name: '@babel/compat-data' - version: 7.16.4 - engines: {node: '>=6.9.0'} + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 dev: true - registry.npmmirror.com/@babel/core/7.16.0: - resolution: {integrity: sha1-xP9EBG9f4xBSXMnrTvUUfwxTdNQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/core/download/@babel/core-7.16.0.tgz} - name: '@babel/core' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.16.0 - '@babel/generator': registry.npmmirror.com/@babel/generator/7.16.0 - '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets/7.16.3_@babel+core@7.16.0 - '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms/7.16.0 - '@babel/helpers': registry.npmmirror.com/@babel/helpers/7.16.3 - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 - '@babel/template': registry.npmmirror.com/@babel/template/7.16.0 - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.16.3 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - convert-source-map: registry.nlark.com/convert-source-map/1.8.0 - debug: registry.npmmirror.com/debug/4.3.2 - gensync: registry.nlark.com/gensync/1.0.0-beta.2 - json5: registry.nlark.com/json5/2.2.0 - semver: registry.nlark.com/semver/6.3.0 - source-map: registry.nlark.com/source-map/0.5.7 - transitivePeerDependencies: - - supports-color + binary-extensions: 2.3.0 dev: true - registry.npmmirror.com/@babel/generator/7.16.0: - resolution: {integrity: sha1-1A89HVB15i01ALzLZ/PaqKlSZbI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/generator/download/@babel/generator-7.16.0.tgz} - name: '@babel/generator' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - jsesc: registry.nlark.com/jsesc/2.5.2 - source-map: registry.nlark.com/source-map/0.5.7 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true - registry.npmmirror.com/@babel/helper-annotate-as-pure/7.16.0: - resolution: {integrity: sha1-mh8OvNpT2aLQAQjEzqzmpdXx8I0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.16.0.tgz} - name: '@babel/helper-annotate-as-pure' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + hasown: 2.0.2 dev: true - registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/7.16.0: - resolution: {integrity: sha1-8aaGuS2nlAIMJlguuFLprM0NeII=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz} - name: '@babel/helper-builder-binary-assignment-operator-visitor' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} dependencies: - '@babel/helper-explode-assignable-expression': registry.npmmirror.com/@babel/helper-explode-assignable-expression/7.16.0 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + is-typed-array: 1.1.13 dev: true - registry.npmmirror.com/@babel/helper-compilation-targets/7.16.3_@babel+core@7.16.0: - resolution: {integrity: sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.16.3.tgz} - id: registry.npmmirror.com/@babel/helper-compilation-targets/7.16.3 - name: '@babel/helper-compilation-targets' - version: 7.16.3 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/compat-data': registry.npmmirror.com/@babel/compat-data/7.16.4 - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-validator-option': registry.nlark.com/@babel/helper-validator-option/7.14.5 - browserslist: registry.npmmirror.com/browserslist/4.18.1 - semver: registry.nlark.com/semver/6.3.0 + has-tostringtag: 1.0.2 dev: true - registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-CQ1NFms0KgOp/sN+9P1a65x8aks=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.16.0.tgz} - id: registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.16.0 - name: '@babel/helper-create-class-features-plugin' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure/7.16.0 - '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.16.0 - '@babel/helper-member-expression-to-functions': registry.npmmirror.com/@babel/helper-member-expression-to-functions/7.16.0 - '@babel/helper-optimise-call-expression': registry.npmmirror.com/@babel/helper-optimise-call-expression/7.16.0 - '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers/7.16.0 - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.16.0 - transitivePeerDependencies: - - supports-color + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true dev: true - registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-BrI0jON/zMT14Y3NjXUFPyp8RP8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.16.0.tgz} - id: registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/7.16.0 - name: '@babel/helper-create-regexp-features-plugin' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure/7.16.0 - regexpu-core: registry.nlark.com/regexpu-core/4.8.0 + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} dev: true - registry.npmmirror.com/@babel/helper-define-polyfill-provider/0.3.0_@babel+core@7.16.0: - resolution: {integrity: sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.3.0.tgz} - id: registry.npmmirror.com/@babel/helper-define-polyfill-provider/0.3.0 - name: '@babel/helper-define-polyfill-provider' - version: 0.3.0 - peerDependencies: - '@babel/core': ^7.4.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets/7.16.3_@babel+core@7.16.0 - '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.16.3 - debug: registry.npmmirror.com/debug/4.3.2 - lodash.debounce: registry.nlark.com/lodash.debounce/4.0.8 - resolve: registry.nlark.com/resolve/1.20.0 - semver: registry.nlark.com/semver/6.3.0 - transitivePeerDependencies: - - supports-color + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} dev: true - registry.npmmirror.com/@babel/helper-explode-assignable-expression/7.16.0: - resolution: {integrity: sha1-dTAXM3oV9G+cCfZ0z/EM7pudd3g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.16.0.tgz} - name: '@babel/helper-explode-assignable-expression' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + has-tostringtag: 1.0.2 dev: true - registry.npmmirror.com/@babel/helper-function-name/7.16.0: - resolution: {integrity: sha1-t90Hl9ALv+5PB+nE6lsOMMi7FIE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-function-name/download/@babel/helper-function-name-7.16.0.tgz} - name: '@babel/helper-function-name' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: - '@babel/helper-get-function-arity': registry.npmmirror.com/@babel/helper-get-function-arity/7.16.0 - '@babel/template': registry.npmmirror.com/@babel/template/7.16.0 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + is-extglob: 2.1.1 dev: true - registry.npmmirror.com/@babel/helper-get-function-arity/7.16.0: - resolution: {integrity: sha1-AIjHSGspqctdlIsaHeRttm4InPo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.16.0.tgz} - name: '@babel/helper-get-function-arity' - version: 7.16.0 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} dev: true - registry.npmmirror.com/@babel/helper-hoist-variables/7.16.0: - resolution: {integrity: sha1-TJAjwvHe9+KP9G/B2802o5vqqBo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.16.0.tgz} - name: '@babel/helper-hoist-variables' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + has-tostringtag: 1.0.2 dev: true - registry.npmmirror.com/@babel/helper-member-expression-to-functions/7.16.0: - resolution: {integrity: sha1-KShwQO/Rl8d2Nu91GI6B2ovM1aQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.16.0.tgz} - name: '@babel/helper-member-expression-to-functions' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: true + + /is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + '@types/estree': 1.0.5 dev: true - registry.npmmirror.com/@babel/helper-module-imports/7.16.0: - resolution: {integrity: sha1-kFOOYLZy7PG0SPX09UM9N+eaPsM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.16.0.tgz} - name: '@babel/helper-module-imports' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true - registry.npmmirror.com/@babel/helper-module-transforms/7.16.0: - resolution: {integrity: sha1-HIKo3UyzRXdQLr0pCWmbGUw+m7U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.16.0.tgz} - name: '@babel/helper-module-transforms' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} dependencies: - '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.16.0 - '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers/7.16.0 - '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access/7.16.0 - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.16.0 - '@babel/helper-validator-identifier': registry.nlark.com/@babel/helper-validator-identifier/7.15.7 - '@babel/template': registry.npmmirror.com/@babel/template/7.16.0 - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.16.3 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - transitivePeerDependencies: - - supports-color + call-bind: 1.0.7 dev: true - registry.npmmirror.com/@babel/helper-optimise-call-expression/7.16.0: - resolution: {integrity: sha1-zs2xRdcMVAlrFWT46fEM19GTszg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.16.0.tgz} - name: '@babel/helper-optimise-call-expression' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + has-tostringtag: 1.0.2 dev: true - registry.npmmirror.com/@babel/helper-remap-async-to-generator/7.16.4: - resolution: {integrity: sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.16.4.tgz?cache=0&sync_timestamp=1637130054885&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.16.4.tgz} - name: '@babel/helper-remap-async-to-generator' - version: 7.16.4 - engines: {node: '>=6.9.0'} + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: - '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure/7.16.0 - '@babel/helper-wrap-function': registry.npmmirror.com/@babel/helper-wrap-function/7.16.0 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - transitivePeerDependencies: - - supports-color + has-symbols: 1.0.3 dev: true - registry.npmmirror.com/@babel/helper-replace-supers/7.16.0: - resolution: {integrity: sha1-cwVejTz5vLqN21XK2T/tyGD2jxc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.16.0.tgz} - name: '@babel/helper-replace-supers' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} dependencies: - '@babel/helper-member-expression-to-functions': registry.npmmirror.com/@babel/helper-member-expression-to-functions/7.16.0 - '@babel/helper-optimise-call-expression': registry.npmmirror.com/@babel/helper-optimise-call-expression/7.16.0 - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.16.3 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - transitivePeerDependencies: - - supports-color + which-typed-array: 1.1.15 dev: true - registry.npmmirror.com/@babel/helper-simple-access/7.16.0: - resolution: {integrity: sha1-IdaidiDjg+N1NM9sELugGab5BRc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.16.0.tgz} - name: '@babel/helper-simple-access' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + requiresBuild: true + dev: true + optional: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + call-bind: 1.0.7 dev: true - registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/7.16.0: - resolution: {integrity: sha1-DuM4gHAUfDrgUeSH7KPrsOLouwk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.16.0.tgz} - name: '@babel/helper-skip-transparent-expression-wrappers' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + is-docker: 2.2.1 dev: true - registry.npmmirror.com/@babel/helper-split-export-declaration/7.16.0: - resolution: {integrity: sha1-KWcvQ2Y+k23zcKrrIr7ds7rsdDg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.16.0.tgz} - name: '@babel/helper-split-export-declaration' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + requiresBuild: true + dev: true + optional: true + + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + '@types/node': 20.8.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 dev: true - registry.npmmirror.com/@babel/helper-wrap-function/7.16.0: - resolution: {integrity: sha1-s88xivzndN/nW4Z2fNbWjzSC5Xw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.16.0.tgz} - name: '@babel/helper-wrap-function' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true dependencies: - '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.16.0 - '@babel/template': registry.npmmirror.com/@babel/template/7.16.0 - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.16.3 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - transitivePeerDependencies: - - supports-color + argparse: 1.0.10 + esprima: 4.0.1 dev: true - registry.npmmirror.com/@babel/helpers/7.16.3: - resolution: {integrity: sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helpers/download/@babel/helpers-7.16.3.tgz} - name: '@babel/helpers' - version: 7.16.3 - engines: {node: '>=6.9.0'} + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: - '@babel/template': registry.npmmirror.com/@babel/template/7.16.0 - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.16.3 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - transitivePeerDependencies: - - supports-color + argparse: 2.0.1 dev: true - registry.npmmirror.com/@babel/highlight/7.16.0: - resolution: {integrity: sha1-bOsysspLj182H7f9gh4/3fShclo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/highlight/download/@babel/highlight-7.16.0.tgz} - name: '@babel/highlight' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + requiresBuild: true + dev: true + optional: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + requiresBuild: true + dev: true + optional: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stable-stringify@1.1.1: + resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} + engines: {node: '>= 0.4'} + requiresBuild: true dependencies: - '@babel/helper-validator-identifier': registry.nlark.com/@babel/helper-validator-identifier/7.15.7 - chalk: registry.npmmirror.com/chalk/2.4.2 - js-tokens: registry.nlark.com/js-tokens/4.0.0 + call-bind: 1.0.7 + isarray: 2.0.5 + jsonify: 0.0.1 + object-keys: 1.1.1 dev: true + optional: true - registry.npmmirror.com/@babel/parser/7.16.4: - resolution: {integrity: sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.16.4.tgz} - name: '@babel/parser' - version: 7.16.4 - engines: {node: '>=6.0.0'} + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + requiresBuild: true + dev: true + optional: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} hasBin: true dev: true - registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.2_@babel+core@7.16.0: - resolution: {integrity: sha1-KXf8qbIS2xU8GVZ05Xz6uAdzMYM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/download/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz} - id: registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.2 - name: '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression' - version: 7.16.2 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + /jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} dev: true - registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-NYly6qsAb16wgmGDsMk8vK8T4eI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/download/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.0 - name: '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/7.16.0 - '@babel/plugin-proposal-optional-chaining': registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/7.16.0_@babel+core@7.16.0 + /jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + requiresBuild: true dev: true + optional: true - registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/7.16.4_@babel+core@7.16.0: - resolution: {integrity: sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.16.4.tgz?cache=0&sync_timestamp=1637129988440&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.16.4.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/7.16.4 - name: '@babel/plugin-proposal-async-generator-functions' - version: 7.16.4 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + requiresBuild: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-remap-async-to-generator': registry.npmmirror.com/@babel/helper-remap-async-to-generator/7.16.4 - '@babel/plugin-syntax-async-generators': registry.nlark.com/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.16.0 - transitivePeerDependencies: - - supports-color + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 dev: true + optional: true - registry.npmmirror.com/@babel/plugin-proposal-class-properties/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-wClhgmfd68coD6KG4PjKKieKLRo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-class-properties/7.16.0 - name: '@babel/plugin-proposal-class-properties' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.16.0_@babel+core@7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - transitivePeerDependencies: - - supports-color + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 dev: true - registry.npmmirror.com/@babel/plugin-proposal-class-static-block/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-UpaULFZNgUTIPuo0fQqooLiRcOc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/download/@babel/plugin-proposal-class-static-block-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-class-static-block/7.16.0 - name: '@babel/plugin-proposal-class-static-block' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.16.0_@babel+core@7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-class-static-block': registry.nlark.com/@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.16.0 - transitivePeerDependencies: - - supports-color + json-buffer: 3.0.1 dev: true - registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-eD7KYdUFJiAvmylglUU5d+iGWfE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/7.16.0 - name: '@babel/plugin-proposal-dynamic-import' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /laser-utils@0.0.5-beta.0: + resolution: {integrity: sha512-V1x6pK3TbYyX0HlkJuAneIvubnf32ZSw5OE45fi+gGehv9q7J36+er5Yjas+uwGvXoCmwfKnuPL9rWsv4WSnLA==} + dev: false + + /launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-dynamic-import': registry.nlark.com/@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.16.0 + picocolors: 1.0.0 + shell-quote: 1.8.1 dev: true - registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-nAHe5Auda4R7ZWqvSjl2pxdA8iI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/7.16.0 - name: '@babel/plugin-proposal-export-namespace-from' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /less-loader@6.0.0(webpack@5.91.0): + resolution: {integrity: sha512-k9KrSkjkdGCQwbKPHfbJT9AfRCmOCHCCjiQCc0v2fdVCRTlJvr1Si68Zk6Z4d4UyVkp0U/nEEdQeH4wV/jW8/g==} + engines: {node: '>= 10.13.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + webpack: ^4.0.0 || ^5.0.0 dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.16.0 + clone: 2.1.2 + less: 3.13.1 + loader-utils: 2.0.4 + schema-utils: 2.7.1 + webpack: 5.91.0(esbuild@0.15.10) dev: true - registry.npmmirror.com/@babel/plugin-proposal-json-strings/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-yuNale0dKn+inE3EFUC4SnLpqyU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-json-strings/7.16.0 - name: '@babel/plugin-proposal-json-strings' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /less@3.0.0: + resolution: {integrity: sha512-9H0u5xo49oycfj4iSqoPt3ypHCO01bMEbOhChaNPUeeYazEZb0PVYYmp0JXQF8ZS4aU2Bkb7+aMPxELit65/DQ==} + engines: {node: '>=4'} + hasBin: true + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + mime: 1.6.0 + mkdirp: 0.5.6 + promise: 7.3.1 + request: 2.81.0 + source-map: 0.5.7 + dev: true + + /less@3.13.1: + resolution: {integrity: sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==} + engines: {node: '>=6'} + hasBin: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-json-strings': registry.nlark.com/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.16.0 + copy-anything: 2.0.6 + tslib: 1.14.1 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + native-request: 1.1.0 + source-map: 0.6.1 dev: true - registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-pxG4zrP/3dPviNOknobb08x9s/0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/7.16.0 - name: '@babel/plugin-proposal-logical-assignment-operators' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-logical-assignment-operators': registry.nlark.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.16.0 + prelude-ls: 1.2.1 + type-check: 0.4.0 dev: true - registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-ROHM4I/iQnSCz0RqkbtFFSjtBZY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/7.16.0 - name: '@babel/plugin-proposal-nullish-coalescing-operator' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-nullish-coalescing-operator': registry.nlark.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.16.0 + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} dev: true - registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-XUGOT7v4ubfQMSXTpScwQzo3NzQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/7.16.0 - name: '@babel/plugin-proposal-numeric-separator' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.16.0 + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} dev: true - registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-X7MvbZJNbmcSgQNipg4SomCYcuY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/7.16.0 - name: '@babel/plugin-proposal-object-rest-spread' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} dependencies: - '@babel/compat-data': registry.npmmirror.com/@babel/compat-data/7.16.4 - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets/7.16.3_@babel+core@7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-object-rest-spread': registry.nlark.com/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.16.0 - '@babel/plugin-transform-parameters': registry.npmmirror.com/@babel/plugin-transform-parameters/7.16.3_@babel+core@7.16.0 + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 dev: true - registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-WRAIWBGrTCiwDW6/+kqwJ00eXxY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/7.16.0 - name: '@babel/plugin-proposal-optional-catch-binding' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /loader-utils@3.2.1: + resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + engines: {node: '>= 12.13.0'} + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-optional-catch-binding': registry.nlark.com/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.16.0 + p-locate: 5.0.0 dev: true - registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-VtvDlwglaDYI6e+1XqgsKi1sjcA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/7.16.0 - name: '@babel/plugin-proposal-optional-chaining' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /lodash._reinterpolate@3.0.0: + resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} + dev: true + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: true + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.template@4.5.0: + resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/7.16.0 - '@babel/plugin-syntax-optional-chaining': registry.nlark.com/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.16.0 + lodash._reinterpolate: 3.0.0 + lodash.templatesettings: 4.2.0 dev: true - registry.npmmirror.com/@babel/plugin-proposal-private-methods/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-tNr7nHF+QwHFd2sw0IDWODyJr/Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-private-methods/7.16.0 - name: '@babel/plugin-proposal-private-methods' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /lodash.templatesettings@4.2.0: + resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.16.0_@babel+core@7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - transitivePeerDependencies: - - supports-color + lodash._reinterpolate: 3.0.0 dev: true - registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-aek1ssXHnSSIES2IbwxOJ5D+528=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/download/@babel/plugin-proposal-private-property-in-object-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/7.16.0 - name: '@babel/plugin-proposal-private-property-in-object' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true + + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure/7.16.0 - '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.16.0_@babel+core@7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-private-property-in-object': registry.nlark.com/@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.16.0 - transitivePeerDependencies: - - supports-color + js-tokens: 4.0.0 + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 dev: true - registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-iQSC38XqN45C4Zpx5wlyjKvxhhI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/7.16.0 - name: '@babel/plugin-proposal-unicode-property-regex' - version: 7.16.0 - engines: {node: '>=4'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/7.16.0_@babel+core@7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + sourcemap-codec: 1.4.8 dev: true - registry.npmmirror.com/@babel/plugin-syntax-typescript/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-L+6xPZM0zFguqREdNQb3cxdBebs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-typescript/download/@babel/plugin-syntax-typescript-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-typescript/7.16.0 - name: '@babel/plugin-syntax-typescript' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true - registry.npmmirror.com/@babel/plugin-transform-arrow-functions/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-lRcG+LRJyDTtB71HTAkkyUS5Wo4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-arrow-functions/7.16.0 - name: '@babel/plugin-transform-arrow-functions' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + requiresBuild: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + pify: 4.0.1 + semver: 5.7.2 dev: true + optional: true - registry.npmmirror.com/@babel/plugin-transform-async-to-generator/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-3xJjf5Yw3foO+dehG8QU1inThgQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-async-to-generator/7.16.0 - name: '@babel/plugin-transform-async-to-generator' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: true + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true + + /memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-remap-async-to-generator': registry.npmmirror.com/@babel/helper-remap-async-to-generator/7.16.4 - transitivePeerDependencies: - - supports-color + fs-monkey: 1.0.6 dev: true - registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-xhh2MjOtAoR4BavKxMNFzp3nFF0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/7.16.0 - name: '@babel/plugin-transform-block-scoped-functions' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + braces: 3.0.2 + picomatch: 2.3.1 dev: true - registry.npmmirror.com/@babel/plugin-transform-block-scoping/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-vPQz+0gv6MPTtOimaxxKjnfTfBY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-block-scoping/7.16.0 - name: '@babel/plugin-transform-block-scoping' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + mime-db: 1.52.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-classes/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-VM9f8LIkLGVz11PNS/xwd6iygvU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-classes/7.16.0 - name: '@babel/plugin-transform-classes' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure/7.16.0 - '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.16.0 - '@babel/helper-optimise-call-expression': registry.npmmirror.com/@babel/helper-optimise-call-expression/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers/7.16.0 - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.16.0 - globals: registry.npmmirror.com/globals/11.12.0 - transitivePeerDependencies: - - supports-color + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true dev: true - registry.npmmirror.com/@babel/plugin-transform-computed-properties/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-4MOFUH0h4bCwdtZr7W1SMbhRELc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-computed-properties/7.16.0 - name: '@babel/plugin-transform-computed-properties' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + brace-expansion: 1.1.11 dev: true - registry.npmmirror.com/@babel/plugin-transform-destructuring/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-rT1+dFhK1epOrbHmZCFGxZDe4zw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-destructuring/7.16.0 - name: '@babel/plugin-transform-destructuring' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + requiresBuild: true + dev: true + optional: true + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + requiresBuild: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + minimist: 1.2.8 dev: true + optional: true - registry.npmmirror.com/@babel/plugin-transform-dotall-regex/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-ULqwDBCEthYtClioGAMc9XeY4G8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-dotall-regex/7.16.0 - name: '@babel/plugin-transform-dotall-regex' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/7.16.0_@babel+core@7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + dns-packet: 5.6.1 + thunky: 1.1.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-i8LiGBPj6J5eW/O2CqX8RYV1oXY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/7.16.0 - name: '@babel/plugin-transform-duplicate-keys' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /native-request@1.1.0: + resolution: {integrity: sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw==} + requiresBuild: true + dev: true + optional: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + lower-case: 2.0.2 + tslib: 2.6.2 dev: true - registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-oYDNKIHjUzzvnTkB5I2tD77/S+Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/7.16.0 - name: '@babel/plugin-transform-exponentiation-operator' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-builder-binary-assignment-operator-visitor': registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + path-key: 3.1.1 dev: true - registry.npmmirror.com/@babel/plugin-transform-for-of/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-96us7RVSYOJGE1m7x8ckispea9I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-for-of/7.16.0 - name: '@babel/plugin-transform-for-of' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + boolbase: 1.0.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-function-name/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-AuNpnChMYmIjZZn3UQZcXV8fQA4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-function-name/7.16.0 - name: '@babel/plugin-transform-function-name' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /number-precision@1.6.0: + resolution: {integrity: sha512-05OLPgbgmnixJw+VvEh18yNPUo3iyp4BEWJcrLu4X9W05KmMifN7Mu5exYvQXqxxeNWhvIF+j3Rij+HmddM/hQ==} + dev: false + + /oauth-sign@0.8.2: + resolution: {integrity: sha512-VlF07iu3VV3+BTXj43Nmp6Irt/G7j/NgEctUS6IweH1RGhURjjCc2NWtzXFPXXWWfc7hgbXQdtiQu2LGp6MxUg==} + requiresBuild: true + dev: true + optional: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 dev: true - registry.npmmirror.com/@babel/plugin-transform-literals/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-eXEeZw/86zG9KYIp1Q82IfeYDKw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-literals/7.16.0 - name: '@babel/plugin-transform-literals' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-UlG0zOAer4MUQD0hrtsmnXn15ks=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/7.16.0 - name: '@babel/plugin-transform-member-expression-literals' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-modules-amd/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-CavUHhjc9P1HnFmMHO97056xM34=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-modules-amd/7.16.0 - name: '@babel/plugin-transform-modules-amd' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - babel-plugin-dynamic-import-node: registry.nlark.com/babel-plugin-dynamic-import-node/2.3.3 - transitivePeerDependencies: - - supports-color + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-rdWOY4yN3Eh1vZqey1xZRhP2ySI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/7.16.0 - name: '@babel/plugin-transform-modules-commonjs' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access/7.16.0 - babel-plugin-dynamic-import-node: registry.nlark.com/babel-plugin-dynamic-import-node/2.3.3 - transitivePeerDependencies: - - supports-color + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-qSzyQK/rYF9MoWZwRTAkQl5CHqQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/7.16.0 - name: '@babel/plugin-transform-modules-systemjs' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables/7.16.0 - '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-validator-identifier': registry.nlark.com/@babel/helper-validator-identifier/7.15.7 - babel-plugin-dynamic-import-node: registry.nlark.com/babel-plugin-dynamic-import-node/2.3.3 - transitivePeerDependencies: - - supports-color + /obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: true - registry.npmmirror.com/@babel/plugin-transform-modules-umd/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-GV8mwq1tajkbcIgO/84YzmJeBqc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-modules-umd/7.16.0 - name: '@babel/plugin-transform-modules-umd' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - transitivePeerDependencies: - - supports-color + ee-first: 1.1.1 dev: true - registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-09thzF1bl5hlWZZ81eqD5cMglso=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/7.16.0 - name: '@babel/plugin-transform-named-capturing-groups-regex' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/7.16.0_@babel+core@7.16.0 + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} dev: true - registry.npmmirror.com/@babel/plugin-transform-new-target/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-r4I6tXb3UiFaSZN3eaQcplglqzU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-new-target/7.16.0 - name: '@babel/plugin-transform-new-target' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + wrappy: 1.0.2 dev: true - registry.npmmirror.com/@babel/plugin-transform-object-super/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-+yDVgG3GSRoGKWrBTqjo1v7dpys=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-object-super/7.16.0 - name: '@babel/plugin-transform-object-super' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers/7.16.0 - transitivePeerDependencies: - - supports-color + mimic-fn: 2.1.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-parameters/7.16.3_@babel+core@7.16.0: - resolution: {integrity: sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.16.3.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-parameters/7.16.3 - name: '@babel/plugin-transform-parameters' - version: 7.16.3 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-property-literals/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-qVxVIYmpagAFn2d23E4A42kMeNE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-property-literals/7.16.0 - name: '@babel/plugin-transform-property-literals' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + /opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true dev: true - registry.npmmirror.com/@babel/plugin-transform-regenerator/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-6u5CLISwIy0Drqfbmcl97q9hJaQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-regenerator/7.16.0 - name: '@babel/plugin-transform-regenerator' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - regenerator-transform: registry.nlark.com/regenerator-transform/0.14.5 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 dev: true - registry.npmmirror.com/@babel/plugin-transform-reserved-words/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-//S53LGeEmGTlL2hctFPLQTAN5w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-reserved-words/7.16.0 - name: '@babel/plugin-transform-reserved-words' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} dev: true - registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-CQNy4xQffMMk7XCz2vU3nfL6OE0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/7.16.0 - name: '@babel/plugin-transform-shorthand-properties' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + yocto-queue: 0.1.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-spread/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-0hygmbvVOrMHqGIeAZp70PQM3Ps=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-spread/7.16.0 - name: '@babel/plugin-transform-spread' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/7.16.0 + p-limit: 3.1.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-sticky-regex/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-w16jGgLYa+SF9qpRAYS2d6kXOP0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-sticky-regex/7.16.0 - name: '@babel/plugin-transform-sticky-regex' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + eventemitter3: 4.0.7 + p-timeout: 3.2.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-template-literals/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-qOztOo57ji1A7E7EVIpFkSYw0wI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-template-literals/7.16.0 - name: '@babel/plugin-transform-template-literals' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + '@types/retry': 0.12.0 + retry: 0.13.1 dev: true - registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-ixmiRMb4ydZo3Kam91Stbq0RKPI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/7.16.0 - name: '@babel/plugin-transform-typeof-symbol' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + p-finally: 1.0.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-typescript/7.16.1_@babel+core@7.16.0: - resolution: {integrity: sha1-zAZwsoIrAzg1W8Gz0iRqQrgWZAk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-typescript/download/@babel/plugin-transform-typescript-7.16.1.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-typescript/7.16.1 - name: '@babel/plugin-transform-typescript' - version: 7.16.1 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.16.0_@babel+core@7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-syntax-typescript': registry.npmmirror.com/@babel/plugin-syntax-typescript/7.16.0_@babel+core@7.16.0 - transitivePeerDependencies: - - supports-color + dot-case: 3.0.4 + tslib: 2.6.2 dev: true - registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-GjVAZLTEVmOjIzT0b6DPYQC1sfM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/7.16.0 - name: '@babel/plugin-transform-unicode-escapes' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + callsites: 3.1.0 dev: true - registry.npmmirror.com/@babel/plugin-transform-unicode-regex/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-KTuAlQF3yMha7eh87ygCWfuZVAI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.16.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-unicode-regex/7.16.0 - name: '@babel/plugin-transform-unicode-regex' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /parse5@7.1.1: + resolution: {integrity: sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/7.16.0_@babel+core@7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 + entities: 4.5.0 dev: true - registry.npmmirror.com/@babel/preset-env/7.16.4_@babel+core@7.16.0: - resolution: {integrity: sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/preset-env/download/@babel/preset-env-7.16.4.tgz} - id: registry.npmmirror.com/@babel/preset-env/7.16.4 - name: '@babel/preset-env' - version: 7.16.4 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': registry.npmmirror.com/@babel/compat-data/7.16.4 - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets/7.16.3_@babel+core@7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-validator-option': registry.nlark.com/@babel/helper-validator-option/7.14.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.2_@babel+core@7.16.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-async-generator-functions': registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/7.16.4_@babel+core@7.16.0 - '@babel/plugin-proposal-class-properties': registry.npmmirror.com/@babel/plugin-proposal-class-properties/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-class-static-block': registry.npmmirror.com/@babel/plugin-proposal-class-static-block/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-dynamic-import': registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-export-namespace-from': registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-json-strings': registry.npmmirror.com/@babel/plugin-proposal-json-strings/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-numeric-separator': registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-object-rest-spread': registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-optional-catch-binding': registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-optional-chaining': registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-private-methods': registry.npmmirror.com/@babel/plugin-proposal-private-methods/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-private-property-in-object': registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/7.16.0_@babel+core@7.16.0 - '@babel/plugin-proposal-unicode-property-regex': registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/7.16.0_@babel+core@7.16.0 - '@babel/plugin-syntax-async-generators': registry.nlark.com/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.16.0 - '@babel/plugin-syntax-class-properties': registry.nlark.com/@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.16.0 - '@babel/plugin-syntax-class-static-block': registry.nlark.com/@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.16.0 - '@babel/plugin-syntax-dynamic-import': registry.nlark.com/@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-json-strings': registry.nlark.com/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-logical-assignment-operators': registry.nlark.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.16.0 - '@babel/plugin-syntax-nullish-coalescing-operator': registry.nlark.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.16.0 - '@babel/plugin-syntax-object-rest-spread': registry.nlark.com/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-optional-catch-binding': registry.nlark.com/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-optional-chaining': registry.nlark.com/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-private-property-in-object': registry.nlark.com/@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.16.0 - '@babel/plugin-syntax-top-level-await': registry.nlark.com/@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.16.0 - '@babel/plugin-transform-arrow-functions': registry.npmmirror.com/@babel/plugin-transform-arrow-functions/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-async-to-generator': registry.npmmirror.com/@babel/plugin-transform-async-to-generator/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-block-scoped-functions': registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-block-scoping': registry.npmmirror.com/@babel/plugin-transform-block-scoping/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-classes': registry.npmmirror.com/@babel/plugin-transform-classes/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-computed-properties': registry.npmmirror.com/@babel/plugin-transform-computed-properties/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-destructuring': registry.npmmirror.com/@babel/plugin-transform-destructuring/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-dotall-regex': registry.npmmirror.com/@babel/plugin-transform-dotall-regex/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-duplicate-keys': registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-exponentiation-operator': registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-for-of': registry.npmmirror.com/@babel/plugin-transform-for-of/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-function-name': registry.npmmirror.com/@babel/plugin-transform-function-name/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-literals': registry.npmmirror.com/@babel/plugin-transform-literals/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-member-expression-literals': registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-modules-amd': registry.npmmirror.com/@babel/plugin-transform-modules-amd/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-modules-commonjs': registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-modules-systemjs': registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-modules-umd': registry.npmmirror.com/@babel/plugin-transform-modules-umd/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-named-capturing-groups-regex': registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-new-target': registry.npmmirror.com/@babel/plugin-transform-new-target/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-object-super': registry.npmmirror.com/@babel/plugin-transform-object-super/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-parameters': registry.npmmirror.com/@babel/plugin-transform-parameters/7.16.3_@babel+core@7.16.0 - '@babel/plugin-transform-property-literals': registry.npmmirror.com/@babel/plugin-transform-property-literals/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-regenerator': registry.npmmirror.com/@babel/plugin-transform-regenerator/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-reserved-words': registry.npmmirror.com/@babel/plugin-transform-reserved-words/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-shorthand-properties': registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-spread': registry.npmmirror.com/@babel/plugin-transform-spread/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-sticky-regex': registry.npmmirror.com/@babel/plugin-transform-sticky-regex/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-template-literals': registry.npmmirror.com/@babel/plugin-transform-template-literals/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-typeof-symbol': registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-unicode-escapes': registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-unicode-regex': registry.npmmirror.com/@babel/plugin-transform-unicode-regex/7.16.0_@babel+core@7.16.0 - '@babel/preset-modules': registry.npmmirror.com/@babel/preset-modules/0.1.5_@babel+core@7.16.0 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - babel-plugin-polyfill-corejs2: registry.npmmirror.com/babel-plugin-polyfill-corejs2/0.3.0_@babel+core@7.16.0 - babel-plugin-polyfill-corejs3: registry.npmmirror.com/babel-plugin-polyfill-corejs3/0.4.0_@babel+core@7.16.0 - babel-plugin-polyfill-regenerator: registry.npmmirror.com/babel-plugin-polyfill-regenerator/0.3.0_@babel+core@7.16.0 - core-js-compat: registry.npmmirror.com/core-js-compat/3.19.1 - semver: registry.nlark.com/semver/6.3.0 - transitivePeerDependencies: - - supports-color + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} dev: true - registry.npmmirror.com/@babel/preset-modules/0.1.5_@babel+core@7.16.0: - resolution: {integrity: sha1-75Odbn8miCfhhBY43G/5VRXhFdk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/preset-modules/download/@babel/preset-modules-0.1.5.tgz} - id: registry.npmmirror.com/@babel/preset-modules/0.1.5 - name: '@babel/preset-modules' - version: 0.1.5 - peerDependencies: - '@babel/core': ^7.0.0-0 + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/plugin-proposal-unicode-property-regex': registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-dotall-regex': registry.npmmirror.com/@babel/plugin-transform-dotall-regex/7.16.0_@babel+core@7.16.0 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - esutils: registry.nlark.com/esutils/2.0.3 + no-case: 3.0.4 + tslib: 2.6.2 dev: true - registry.npmmirror.com/@babel/preset-typescript/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha1-sLTxBbhV+z1jHsA2zcnR/9H6Xqw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/preset-typescript/download/@babel/preset-typescript-7.16.0.tgz?cache=0&sync_timestamp=1636114317029&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-typescript%2Fdownload%2F%40babel%2Fpreset-typescript-7.16.0.tgz} - id: registry.npmmirror.com/@babel/preset-typescript/7.16.0 - name: '@babel/preset-typescript' - version: 7.16.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@babel/helper-validator-option': registry.nlark.com/@babel/helper-validator-option/7.14.5 - '@babel/plugin-transform-typescript': registry.npmmirror.com/@babel/plugin-transform-typescript/7.16.1_@babel+core@7.16.0 - transitivePeerDependencies: - - supports-color + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /performance-now@0.2.0: + resolution: {integrity: sha512-YHk5ez1hmMR5LOkb9iJkLKqoBlL7WD5M8ljC75ZfzXriuBIVNuecaXuU7e+hOwyqf24Wxhh7Vxgt7Hnw9288Tg==} + requiresBuild: true + dev: true + optional: 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@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + requiresBuild: true dev: true + optional: true - registry.npmmirror.com/@babel/runtime/7.16.3: - resolution: {integrity: sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.16.3.tgz} - name: '@babel/runtime' - version: 7.16.3 - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: registry.nlark.com/regenerator-runtime/0.13.9 + /pify@5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} + engines: {node: '>=10'} dev: true - registry.npmmirror.com/@babel/template/7.16.0: - resolution: {integrity: sha1-0Wo16/TNdOICCDNW+rId2JNj3dY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/template/download/@babel/template-7.16.0.tgz} - name: '@babel/template' - version: 7.16.0 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.16.0 - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} dev: true - registry.npmmirror.com/@babel/traverse/7.16.3: - resolution: {integrity: sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/traverse/download/@babel/traverse-7.16.3.tgz} - name: '@babel/traverse' - version: 7.16.3 - engines: {node: '>=6.9.0'} + /postcss-calc@8.2.4(postcss@8.3.11): + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 dependencies: - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.16.0 - '@babel/generator': registry.npmmirror.com/@babel/generator/7.16.0 - '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.16.0 - '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables/7.16.0 - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.16.0 - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - debug: registry.npmmirror.com/debug/4.3.2 - globals: registry.npmmirror.com/globals/11.12.0 - transitivePeerDependencies: - - supports-color + postcss: 8.3.11 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@babel/types/7.16.0: - resolution: {integrity: sha1-2zsxOAT5aq3Qt3bEgj4SetZyibo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/download/@babel/types-7.16.0.tgz} - name: '@babel/types' - version: 7.16.0 - engines: {node: '>=6.9.0'} + /postcss-colormin@5.3.1(postcss@8.3.11): + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@babel/helper-validator-identifier': registry.nlark.com/@babel/helper-validator-identifier/7.15.7 - to-fast-properties: registry.nlark.com/to-fast-properties/2.0.0 + browserslist: 4.23.0 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@bcoe/v8-coverage/0.2.3: - resolution: {integrity: sha1-daLotRy3WKdVPWgEpZMteqznXDk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@bcoe/v8-coverage/download/@bcoe/v8-coverage-0.2.3.tgz} - name: '@bcoe/v8-coverage' - version: 0.2.3 + /postcss-convert-values@5.1.3(postcss@8.3.11): + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.23.0 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@eslint/eslintrc/0.4.3: - resolution: {integrity: sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint/eslintrc/download/@eslint/eslintrc-0.4.3.tgz} - name: '@eslint/eslintrc' - version: 0.4.3 - engines: {node: ^10.12.0 || >=12.0.0} + /postcss-discard-comments@5.1.2(postcss@8.3.11): + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - ajv: registry.npmmirror.com/ajv/6.12.6 - debug: registry.npmmirror.com/debug/4.3.2 - espree: registry.nlark.com/espree/7.3.1 - globals: registry.npmmirror.com/globals/13.12.0 - ignore: registry.npmmirror.com/ignore/4.0.6 - import-fresh: registry.nlark.com/import-fresh/3.3.0 - js-yaml: registry.nlark.com/js-yaml/3.14.1 - minimatch: registry.nlark.com/minimatch/3.0.4 - strip-json-comments: registry.nlark.com/strip-json-comments/3.1.1 - transitivePeerDependencies: - - supports-color + postcss: 8.3.11 dev: true - registry.npmmirror.com/@humanwhocodes/config-array/0.5.0: - resolution: {integrity: sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.5.0.tgz} - name: '@humanwhocodes/config-array' - version: 0.5.0 - engines: {node: '>=10.10.0'} + /postcss-discard-duplicates@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@humanwhocodes/object-schema': registry.npmmirror.com/@humanwhocodes/object-schema/1.2.1 - debug: registry.npmmirror.com/debug/4.3.2 - minimatch: registry.nlark.com/minimatch/3.0.4 - transitivePeerDependencies: - - supports-color + postcss: 8.3.11 dev: true - registry.npmmirror.com/@humanwhocodes/object-schema/1.2.1: - resolution: {integrity: sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz} - name: '@humanwhocodes/object-schema' - version: 1.2.1 + /postcss-discard-empty@5.1.1(postcss@8.3.11): + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.3.11 dev: true - registry.npmmirror.com/@jest/console/27.3.1: - resolution: {integrity: sha1-6Oo6R10/gWLyPWnvv6qcvkhr7pM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/console/download/@jest/console-27.3.1.tgz} - name: '@jest/console' - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /postcss-discard-overridden@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - chalk: registry.nlark.com/chalk/4.1.2 - jest-message-util: registry.npmmirror.com/jest-message-util/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - slash: registry.nlark.com/slash/3.0.0 + postcss: 8.3.11 dev: true - registry.npmmirror.com/@jest/core/27.3.1: - resolution: {integrity: sha1-BJku8bWLF8RZr7h6tW2B5j04aSU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/core/download/@jest/core-27.3.1.tgz} - name: '@jest/core' - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /postcss-load-config@3.1.4(postcss@8.3.11): + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + postcss: '>=8.0.9' + ts-node: '>=9.0.0' peerDependenciesMeta: - node-notifier: + postcss: + optional: true + ts-node: optional: true dependencies: - '@jest/console': registry.npmmirror.com/@jest/console/27.3.1 - '@jest/reporters': registry.npmmirror.com/@jest/reporters/27.3.1 - '@jest/test-result': registry.npmmirror.com/@jest/test-result/27.3.1 - '@jest/transform': registry.npmmirror.com/@jest/transform/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - ansi-escapes: registry.nlark.com/ansi-escapes/4.3.2 - chalk: registry.nlark.com/chalk/4.1.2 - emittery: registry.nlark.com/emittery/0.8.1 - exit: 0.1.2 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jest-changed-files: registry.npmmirror.com/jest-changed-files/27.3.0 - jest-config: registry.npmmirror.com/jest-config/27.3.1 - jest-haste-map: registry.npmmirror.com/jest-haste-map/27.3.1 - jest-message-util: registry.npmmirror.com/jest-message-util/27.3.1 - jest-regex-util: registry.nlark.com/jest-regex-util/27.0.6 - jest-resolve: registry.npmmirror.com/jest-resolve/27.3.1 - jest-resolve-dependencies: registry.npmmirror.com/jest-resolve-dependencies/27.3.1 - jest-runner: registry.npmmirror.com/jest-runner/27.3.1 - jest-runtime: registry.npmmirror.com/jest-runtime/27.3.1 - jest-snapshot: registry.npmmirror.com/jest-snapshot/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - jest-validate: registry.npmmirror.com/jest-validate/27.3.1 - jest-watcher: registry.npmmirror.com/jest-watcher/27.3.1 - micromatch: registry.nlark.com/micromatch/4.0.4 - rimraf: registry.nlark.com/rimraf/3.0.2 - slash: registry.nlark.com/slash/3.0.0 - strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate + lilconfig: 2.1.0 + postcss: 8.3.11 + yaml: 1.10.2 dev: true - registry.npmmirror.com/@jest/environment/27.3.1: - resolution: {integrity: sha1-IYLe+86NOF/VHF58cFD1EL1MhrE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/environment/download/@jest/environment-27.3.1.tgz} - name: '@jest/environment' - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /postcss-merge-longhand@5.1.7(postcss@8.3.11): + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@jest/fake-timers': registry.npmmirror.com/@jest/fake-timers/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - jest-mock: registry.npmmirror.com/jest-mock/27.3.0 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.1(postcss@8.3.11) dev: true - registry.npmmirror.com/@jest/fake-timers/27.3.1: - resolution: {integrity: sha1-H62GDumxMDR2LNuUJm6VYJ385kE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/fake-timers/download/@jest/fake-timers-27.3.1.tgz} - name: '@jest/fake-timers' - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /postcss-merge-rules@5.1.4(postcss@8.3.11): + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@sinonjs/fake-timers': registry.npmmirror.com/@sinonjs/fake-timers/8.1.0 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - jest-message-util: registry.npmmirror.com/jest-message-util/27.3.1 - jest-mock: registry.npmmirror.com/jest-mock/27.3.0 - jest-util: registry.npmmirror.com/jest-util/27.3.1 + browserslist: 4.23.0 + caniuse-api: 3.0.0 + cssnano-utils: 3.1.0(postcss@8.3.11) + postcss: 8.3.11 + postcss-selector-parser: 6.0.16 dev: true - registry.npmmirror.com/@jest/globals/27.3.1: - resolution: {integrity: sha1-zh37A9N5I3qdpsG5ns+soZIqX54=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/globals/download/@jest/globals-27.3.1.tgz} - name: '@jest/globals' - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /postcss-minify-font-values@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@jest/environment': registry.npmmirror.com/@jest/environment/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - expect: registry.npmmirror.com/expect/27.3.1 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@jest/reporters/27.3.1: - resolution: {integrity: sha1-KLXB9XiUgeI3iASPqCLtFUhkMLk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/reporters/download/@jest/reporters-27.3.1.tgz} - name: '@jest/reporters' - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /postcss-minify-gradients@5.1.1(postcss@8.3.11): + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + postcss: ^8.2.15 dependencies: - '@bcoe/v8-coverage': registry.npmmirror.com/@bcoe/v8-coverage/0.2.3 - '@jest/console': registry.npmmirror.com/@jest/console/27.3.1 - '@jest/test-result': registry.npmmirror.com/@jest/test-result/27.3.1 - '@jest/transform': registry.npmmirror.com/@jest/transform/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - chalk: registry.nlark.com/chalk/4.1.2 - collect-v8-coverage: registry.nlark.com/collect-v8-coverage/1.0.1 - exit: 0.1.2 - glob: registry.npmmirror.com/glob/7.2.0 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage/3.2.0 - istanbul-lib-instrument: registry.npmmirror.com/istanbul-lib-instrument/4.0.3 - istanbul-lib-report: registry.nlark.com/istanbul-lib-report/3.0.0 - istanbul-lib-source-maps: registry.npmmirror.com/istanbul-lib-source-maps/4.0.1 - istanbul-reports: registry.npmmirror.com/istanbul-reports/3.0.5 - jest-haste-map: registry.npmmirror.com/jest-haste-map/27.3.1 - jest-resolve: registry.npmmirror.com/jest-resolve/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - jest-worker: registry.npmmirror.com/jest-worker/27.3.1 - slash: registry.nlark.com/slash/3.0.0 - source-map: registry.nlark.com/source-map/0.6.1 - string-length: registry.nlark.com/string-length/4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: registry.npmmirror.com/v8-to-istanbul/8.1.0 - transitivePeerDependencies: - - supports-color + colord: 2.9.3 + cssnano-utils: 3.1.0(postcss@8.3.11) + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@jest/test-result/27.3.1: - resolution: {integrity: sha1-ia3ui3cYd8abO41Z9S8p3MwwAZQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/test-result/download/@jest/test-result-27.3.1.tgz} - name: '@jest/test-result' - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /postcss-minify-params@5.1.4(postcss@8.3.11): + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@jest/console': registry.npmmirror.com/@jest/console/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.3 - collect-v8-coverage: registry.nlark.com/collect-v8-coverage/1.0.1 + browserslist: 4.23.0 + cssnano-utils: 3.1.0(postcss@8.3.11) + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@jest/test-sequencer/27.3.1: - resolution: {integrity: sha1-SzveLbsF7nSv2uYIzwdo4zVGg7E=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/test-sequencer/download/@jest/test-sequencer-27.3.1.tgz} - name: '@jest/test-sequencer' - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /postcss-minify-selectors@5.2.1(postcss@8.3.11): + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@jest/test-result': registry.npmmirror.com/@jest/test-result/27.3.1 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jest-haste-map: registry.npmmirror.com/jest-haste-map/27.3.1 - jest-runtime: registry.npmmirror.com/jest-runtime/27.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - registry.npmmirror.com/@jest/transform/27.3.1: - resolution: {integrity: sha1-/4Dq++q+gR6QJeS29FISZxhFUiA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/transform/download/@jest/transform-27.3.1.tgz} - name: '@jest/transform' - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul/6.1.1 - chalk: registry.nlark.com/chalk/4.1.2 - convert-source-map: registry.nlark.com/convert-source-map/1.8.0 - fast-json-stable-stringify: registry.nlark.com/fast-json-stable-stringify/2.1.0 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jest-haste-map: registry.npmmirror.com/jest-haste-map/27.3.1 - jest-regex-util: registry.nlark.com/jest-regex-util/27.0.6 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - micromatch: registry.nlark.com/micromatch/4.0.4 - pirates: registry.nlark.com/pirates/4.0.1 - slash: registry.nlark.com/slash/3.0.0 - source-map: registry.nlark.com/source-map/0.6.1 - write-file-atomic: registry.nlark.com/write-file-atomic/3.0.3 - transitivePeerDependencies: - - supports-color + postcss: 8.3.11 + postcss-selector-parser: 6.0.16 dev: true - registry.npmmirror.com/@jest/types/27.2.5: - resolution: {integrity: sha1-QgdlwFJgXnVoaYLSSwYbTLuiITI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/types/download/@jest/types-27.2.5.tgz} - name: '@jest/types' - version: 27.2.5 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /postcss-modules-extract-imports@3.1.0(postcss@8.3.11): + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: - '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.3 - '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports/3.0.1 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - '@types/yargs': registry.npmmirror.com/@types/yargs/16.0.4 - chalk: registry.nlark.com/chalk/4.1.2 + postcss: 8.3.11 dev: true - registry.npmmirror.com/@rollup/plugin-commonjs/20.0.0_rollup@2.60.0: - resolution: {integrity: sha1-MkaHLcvLGKVKqmJ3qMfX8bFVt0U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-commonjs/download/@rollup/plugin-commonjs-20.0.0.tgz} - id: registry.npmmirror.com/@rollup/plugin-commonjs/20.0.0 - name: '@rollup/plugin-commonjs' - version: 20.0.0 - engines: {node: '>= 8.0.0'} + /postcss-modules-local-by-default@4.0.5(postcss@8.3.11): + resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + engines: {node: ^10 || ^12 || >= 14} peerDependencies: - rollup: ^2.38.3 + postcss: ^8.1.0 dependencies: - '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/3.1.0_rollup@2.60.0 - commondir: registry.nlark.com/commondir/1.0.1 - estree-walker: 2.0.2 - glob: registry.npmmirror.com/glob/7.2.0 - is-reference: registry.npmmirror.com/is-reference/1.2.1 - magic-string: registry.nlark.com/magic-string/0.25.7 - resolve: registry.nlark.com/resolve/1.20.0 - rollup: registry.npmmirror.com/rollup/2.60.0 - dev: true - - registry.npmmirror.com/@rollup/plugin-json/4.1.0_rollup@2.60.0: - resolution: {integrity: sha1-VOCYZ65pY8WThE2L16nHGClElvM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-json/download/@rollup/plugin-json-4.1.0.tgz} - id: registry.npmmirror.com/@rollup/plugin-json/4.1.0 - name: '@rollup/plugin-json' - version: 4.1.0 + icss-utils: 5.1.0(postcss@8.3.11) + postcss: 8.3.11 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-scope@3.2.0(postcss@8.3.11): + resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + engines: {node: ^10 || ^12 || >= 14} peerDependencies: - rollup: ^1.20.0 || ^2.0.0 + postcss: ^8.1.0 dependencies: - '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/3.1.0_rollup@2.60.0 - rollup: registry.npmmirror.com/rollup/2.60.0 + postcss: 8.3.11 + postcss-selector-parser: 6.0.16 dev: true - registry.npmmirror.com/@rollup/plugin-node-resolve/13.0.6_rollup@2.60.0: - resolution: {integrity: sha1-KWKQcLt2dWe+gVf1dc+o8rjp73c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/download/@rollup/plugin-node-resolve-13.0.6.tgz} - id: registry.npmmirror.com/@rollup/plugin-node-resolve/13.0.6 - name: '@rollup/plugin-node-resolve' - version: 13.0.6 - engines: {node: '>= 10.0.0'} + /postcss-modules-values@4.0.0(postcss@8.3.11): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} peerDependencies: - rollup: ^2.42.0 + postcss: ^8.1.0 dependencies: - '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/3.1.0_rollup@2.60.0 - '@types/resolve': registry.npmmirror.com/@types/resolve/1.17.1 - builtin-modules: registry.nlark.com/builtin-modules/3.2.0 - deepmerge: registry.nlark.com/deepmerge/4.2.2 - is-module: 1.0.0 - resolve: registry.nlark.com/resolve/1.20.0 - rollup: registry.npmmirror.com/rollup/2.60.0 + icss-utils: 5.1.0(postcss@8.3.11) + postcss: 8.3.11 dev: true - registry.npmmirror.com/@sinonjs/fake-timers/8.1.0: - resolution: {integrity: sha1-P9wrbLWJNbIb+40WJesTAEhDFuc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sinonjs/fake-timers/download/@sinonjs/fake-timers-8.1.0.tgz} - name: '@sinonjs/fake-timers' - version: 8.1.0 + /postcss-modules@4.3.1(postcss@8.3.11): + resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} + peerDependencies: + postcss: ^8.0.0 dependencies: - '@sinonjs/commons': 1.8.3 + generic-names: 4.0.0 + icss-replace-symbols: 1.1.0 + lodash.camelcase: 4.3.0 + postcss: 8.3.11 + postcss-modules-extract-imports: 3.1.0(postcss@8.3.11) + postcss-modules-local-by-default: 4.0.5(postcss@8.3.11) + postcss-modules-scope: 3.2.0(postcss@8.3.11) + postcss-modules-values: 4.0.0(postcss@8.3.11) + string-hash: 1.1.3 dev: true - registry.npmmirror.com/@tootallnate/once/1.1.2: - resolution: {integrity: sha1-zLkURTYBeaBOf+av94wA/8Hur4I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tootallnate/once/download/@tootallnate/once-1.1.2.tgz} - name: '@tootallnate/once' - version: 1.1.2 - engines: {node: '>= 6'} + /postcss-normalize-charset@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.3.11 dev: true - registry.npmmirror.com/@trysound/sax/0.2.0: - resolution: {integrity: sha1-zMqrdYr1Z2Hre/N69vA/Mm3XmK0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@trysound/sax/download/@trysound/sax-0.2.0.tgz} - name: '@trysound/sax' - version: 0.2.0 - engines: {node: '>=10.13.0'} + /postcss-normalize-display-values@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@types/babel__core/7.1.16: - resolution: {integrity: sha1-vBLHS31l6C0ph2tdC69cYlrFhwI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__core/download/@types/babel__core-7.1.16.tgz} - name: '@types/babel__core' - version: 7.1.16 + /postcss-normalize-positions@5.1.1(postcss@8.3.11): + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - '@types/babel__generator': registry.npmmirror.com/@types/babel__generator/7.6.3 - '@types/babel__template': registry.npmmirror.com/@types/babel__template/7.4.1 - '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse/7.14.2 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@types/babel__generator/7.6.3: - resolution: {integrity: sha1-9Fa0ss55E392iqEw0kI9LwzPq6U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__generator/download/@types/babel__generator-7.6.3.tgz} - name: '@types/babel__generator' - version: 7.6.3 + /postcss-normalize-repeat-style@5.1.1(postcss@8.3.11): + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@types/babel__template/7.4.1: - resolution: {integrity: sha1-PRpI/Z1sDt/Vby/1eNrtSPNsiWk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__template/download/@types/babel__template-7.4.1.tgz} - name: '@types/babel__template' - version: 7.4.1 + /postcss-normalize-string@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@types/babel__traverse/7.14.2: - resolution: {integrity: sha1-/81HC7s/i/MEgWePtVAieMqDOkM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__traverse/download/@types/babel__traverse-7.14.2.tgz} - name: '@types/babel__traverse' - version: 7.14.2 + /postcss-normalize-timing-functions@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@types/estree/0.0.39: - resolution: {integrity: sha1-4Xfmme4bjCLSMXTKqnQiZEOJUJ8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/download/@types/estree-0.0.39.tgz} - name: '@types/estree' - version: 0.0.39 + /postcss-normalize-unicode@5.1.1(postcss@8.3.11): + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.23.0 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@types/estree/0.0.50: - resolution: {integrity: sha1-Hgyqk2TT/M0pMcPtlv2+ql1MyoM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/download/@types/estree-0.0.50.tgz} - name: '@types/estree' - version: 0.0.50 + /postcss-normalize-url@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + normalize-url: 6.1.0 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@types/graceful-fs/4.1.5: - resolution: {integrity: sha1-If+6DZjaQ1DbZIkfkqnl2zzbThU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/graceful-fs/download/@types/graceful-fs-4.1.5.tgz} - name: '@types/graceful-fs' - version: 4.1.5 + /postcss-normalize-whitespace@5.1.1(postcss@8.3.11): + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@types/node': registry.npmmirror.com/@types/node/16.11.9 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.3: - resolution: {integrity: sha1-S6jdtyAiH0MuRDvV+RF/0iz9R2I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-coverage/download/@types/istanbul-lib-coverage-2.0.3.tgz} - name: '@types/istanbul-lib-coverage' - version: 2.0.3 + /postcss-ordered-values@5.1.3(postcss@8.3.11): + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-utils: 3.1.0(postcss@8.3.11) + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@types/istanbul-lib-report/3.0.0: - resolution: {integrity: sha1-wUwk8Y6oGQwRjudWK3/5mjZVJoY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-report/download/@types/istanbul-lib-report-3.0.0.tgz} - name: '@types/istanbul-lib-report' - version: 3.0.0 + /postcss-reduce-initial@5.1.2(postcss@8.3.11): + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.3 + browserslist: 4.23.0 + caniuse-api: 3.0.0 + postcss: 8.3.11 dev: true - registry.npmmirror.com/@types/istanbul-reports/3.0.1: - resolution: {integrity: sha1-kVP+mLuivVZaY63ZQ21vDX+EaP8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-reports/download/@types/istanbul-reports-3.0.1.tgz} - name: '@types/istanbul-reports' - version: 3.0.1 + /postcss-reduce-transforms@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@types/istanbul-lib-report': registry.npmmirror.com/@types/istanbul-lib-report/3.0.0 + postcss: 8.3.11 + postcss-value-parser: 4.2.0 dev: true - registry.npmmirror.com/@types/jquery/3.5.8: - resolution: {integrity: sha1-g7+8305iXFRxWQ+ScDwGqtsFKgk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/jquery/download/@types/jquery-3.5.8.tgz} - name: '@types/jquery' - version: 3.5.8 + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} dependencies: - '@types/sizzle': registry.npmmirror.com/@types/sizzle/2.3.3 + cssesc: 3.0.0 + util-deprecate: 1.0.2 dev: true - registry.npmmirror.com/@types/json-schema/7.0.9: - resolution: {integrity: sha1-l+3JA36gw4WFMgsolk3eOznkZg0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz} - name: '@types/json-schema' - version: 7.0.9 + /postcss-svgo@5.1.0(postcss@8.3.11): + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.3.11 + postcss-value-parser: 4.2.0 + svgo: 2.8.0 dev: true - registry.npmmirror.com/@types/node/16.11.9: - resolution: {integrity: sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/download/@types/node-16.11.9.tgz} - name: '@types/node' - version: 16.11.9 + /postcss-unique-selectors@5.1.1(postcss@8.3.11): + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.3.11 + postcss-selector-parser: 6.0.16 dev: true - registry.npmmirror.com/@types/prettier/2.4.2: - resolution: {integrity: sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/prettier/download/@types/prettier-2.4.2.tgz} - name: '@types/prettier' - version: 2.4.2 + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - registry.npmmirror.com/@types/resolve/1.17.1: - resolution: {integrity: sha1-Ov1q2JZ8d+Q3bFmKgt3Vj0bsRdY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/resolve/download/@types/resolve-1.17.1.tgz} - name: '@types/resolve' - version: 1.17.1 + /postcss@8.3.11: + resolution: {integrity: sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==} + engines: {node: ^10 || ^12 || >=14} dependencies: - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - dev: true - - registry.npmmirror.com/@types/sizzle/2.3.3: - resolution: {integrity: sha1-/14vGQKWnTBSJaBHyKD9XJFc6+8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/sizzle/download/@types/sizzle-2.3.3.tgz} - name: '@types/sizzle' - version: 2.3.3 + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 0.6.2 dev: true - registry.npmmirror.com/@types/yargs-parser/20.2.1: - resolution: {integrity: sha1-O5ziSJkZ2eT+pDm3aRarw0st8Sk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs-parser/download/@types/yargs-parser-20.2.1.tgz} - name: '@types/yargs-parser' - version: 20.2.1 + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} dev: true - registry.npmmirror.com/@types/yargs/16.0.4: - resolution: {integrity: sha1-JqrZjdLCo45CEIbqmtQrnlFkKXc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs/download/@types/yargs-16.0.4.tgz} - name: '@types/yargs' - version: 16.0.4 + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} dependencies: - '@types/yargs-parser': registry.npmmirror.com/@types/yargs-parser/20.2.1 + fast-diff: 1.3.0 dev: true - registry.npmmirror.com/@typescript-eslint/eslint-plugin/4.33.0_d00b196ac5df1286ea7e45797bebddbc: - resolution: {integrity: sha1-wk3HyAacdwa8QNmfb6h+3LIAUnY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-4.33.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/4.33.0 - name: '@typescript-eslint/eslint-plugin' - version: 4.33.0 - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - '@typescript-eslint/parser': ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/experimental-utils': registry.npmmirror.com/@typescript-eslint/experimental-utils/4.33.0_eslint@7.32.0+typescript@4.5.2 - '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/4.33.0_eslint@7.32.0+typescript@4.5.2 - '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/4.33.0 - debug: registry.npmmirror.com/debug/4.3.2 - eslint: registry.npmmirror.com/eslint/7.32.0 - functional-red-black-tree: registry.nlark.com/functional-red-black-tree/1.0.1 - ignore: registry.npmmirror.com/ignore/5.1.9 - regexpp: registry.nlark.com/regexpp/3.2.0 - semver: registry.nlark.com/semver/7.3.5 - tsutils: registry.nlark.com/tsutils/3.21.0_typescript@4.5.2 - typescript: registry.npmmirror.com/typescript/4.5.2 - transitivePeerDependencies: - - supports-color + /prettier@2.3.2: + resolution: {integrity: sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==} + engines: {node: '>=10.13.0'} + hasBin: true dev: true - registry.npmmirror.com/@typescript-eslint/experimental-utils/4.33.0_eslint@7.32.0+typescript@4.5.2: - resolution: {integrity: sha1-byp4akIJ+iIimJ6TgLUzGygQ9/0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-4.33.0.tgz?cache=0&sync_timestamp=1637372199864&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fexperimental-utils%2Fdownload%2F%40typescript-eslint%2Fexperimental-utils-4.33.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/experimental-utils/4.33.0 - name: '@typescript-eslint/experimental-utils' - version: 4.33.0 - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - dependencies: - '@types/json-schema': registry.npmmirror.com/@types/json-schema/7.0.9 - '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/4.33.0 - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/4.33.0 - '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/4.33.0_typescript@4.5.2 - eslint: registry.npmmirror.com/eslint/7.32.0 - eslint-scope: registry.npmmirror.com/eslint-scope/5.1.1 - eslint-utils: registry.nlark.com/eslint-utils/3.0.0_eslint@7.32.0 - transitivePeerDependencies: - - supports-color - - typescript + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - registry.npmmirror.com/@typescript-eslint/parser/4.33.0_eslint@7.32.0+typescript@4.5.2: - resolution: {integrity: sha1-3+eXVw2WlOVgUo0Y7srYbIx0SJk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/download/@typescript-eslint/parser-4.33.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/parser/4.33.0 - name: '@typescript-eslint/parser' - version: 4.33.0 - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/4.33.0 - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/4.33.0 - '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/4.33.0_typescript@4.5.2 - debug: registry.npmmirror.com/debug/4.3.2 - eslint: registry.npmmirror.com/eslint/7.32.0 - typescript: registry.npmmirror.com/typescript/4.5.2 - transitivePeerDependencies: - - supports-color + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} dev: true - registry.npmmirror.com/@typescript-eslint/scope-manager/4.33.0: - resolution: {integrity: sha1-045JKA2YPody4pEhz4xukiHygKM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-4.33.0.tgz} - name: '@typescript-eslint/scope-manager' - version: 4.33.0 - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/4.33.0 - '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/4.33.0 + /promise.series@0.2.0: + resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==} + engines: {node: '>=0.12'} dev: true - registry.npmmirror.com/@typescript-eslint/types/4.33.0: - resolution: {integrity: sha1-oeWQNqO1OuhDDO6/KpGdx/mvbXI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-4.33.0.tgz} - name: '@typescript-eslint/types' - version: 4.33.0 - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + /promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + requiresBuild: true + dependencies: + asap: 2.0.6 dev: true + optional: true - registry.npmmirror.com/@typescript-eslint/typescript-estree/4.33.0_typescript@4.5.2: - resolution: {integrity: sha1-DftRwpCPaMXAjYKu/q8WahfCRgk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-4.33.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/typescript-estree/4.33.0 - name: '@typescript-eslint/typescript-estree' - version: 4.33.0 - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/4.33.0 - '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/4.33.0 - debug: registry.npmmirror.com/debug/4.3.2 - globby: registry.nlark.com/globby/11.0.4 - is-glob: registry.npmmirror.com/is-glob/4.0.3 - semver: registry.nlark.com/semver/7.3.5 - tsutils: registry.nlark.com/tsutils/3.21.0_typescript@4.5.2 - typescript: registry.npmmirror.com/typescript/4.5.2 - transitivePeerDependencies: - - supports-color - dev: true + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 - registry.npmmirror.com/@typescript-eslint/visitor-keys/4.33.0: - resolution: {integrity: sha1-KiL3ekFgQom3oYZYbp7EjKku8d0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-4.33.0.tgz} - name: '@typescript-eslint/visitor-keys' - version: 4.33.0 - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} dependencies: - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/4.33.0 - eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/2.1.0 + forwarded: 0.2.0 + ipaddr.js: 1.9.1 dev: true - registry.npmmirror.com/acorn/7.4.1: - resolution: {integrity: sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1637226387207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz} - name: acorn - version: 7.4.1 - engines: {node: '>=0.4.0'} - hasBin: true + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + requiresBuild: true dev: true + optional: true - registry.npmmirror.com/acorn/8.6.0: - resolution: {integrity: sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/download/acorn-8.6.0.tgz?cache=0&sync_timestamp=1637226387207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-8.6.0.tgz} - name: acorn - version: 8.6.0 - engines: {node: '>=0.4.0'} - hasBin: true + /punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + requiresBuild: true dev: true + optional: true - registry.npmmirror.com/ajv/6.12.6: - resolution: {integrity: sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz} - name: ajv - version: 6.12.6 - dependencies: - fast-deep-equal: registry.nlark.com/fast-deep-equal/3.1.3 - fast-json-stable-stringify: registry.nlark.com/fast-json-stable-stringify/2.1.0 - json-schema-traverse: registry.nlark.com/json-schema-traverse/0.4.1 - uri-js: registry.nlark.com/uri-js/4.4.1 + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} dev: true - registry.npmmirror.com/ajv/8.8.1: - resolution: {integrity: sha512-6CiMNDrzv0ZR916u2T+iRunnD60uWmNn8SkdB44/6stVORUg0aAkWO7PkOhpCmjmW8f2I/G/xnowD66fxGyQJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv/download/ajv-8.8.1.tgz} - name: ajv - version: 8.8.1 + /qs@6.10.3: + resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} + engines: {node: '>=0.6'} dependencies: - fast-deep-equal: registry.nlark.com/fast-deep-equal/3.1.3 - json-schema-traverse: registry.nlark.com/json-schema-traverse/1.0.0 - require-from-string: registry.nlark.com/require-from-string/2.0.2 - uri-js: registry.nlark.com/uri-js/4.4.1 + side-channel: 1.0.6 dev: true - registry.npmmirror.com/babel-jest/23.6.0_babel-core@7.0.0-bridge.0: - resolution: {integrity: sha1-pkQjI2ZVeiJAoMCD2msleGGFovE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-jest/download/babel-jest-23.6.0.tgz} - id: registry.npmmirror.com/babel-jest/23.6.0 - name: babel-jest - version: 23.6.0 - peerDependencies: - babel-core: ^6.0.0 || ^7.0.0-0 - dependencies: - babel-core: registry.nlark.com/babel-core/7.0.0-bridge.0_@babel+core@7.16.0 - babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul/4.1.6 - babel-preset-jest: registry.nlark.com/babel-preset-jest/23.2.0 + /qs@6.4.1: + resolution: {integrity: sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==} + engines: {node: '>=0.6'} + requiresBuild: true dev: true + optional: true - registry.npmmirror.com/babel-jest/27.3.1_@babel+core@7.16.0: - resolution: {integrity: sha1-BjajQExo4HAB5DSsSVbYLaioACI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-jest/download/babel-jest-27.3.1.tgz} - id: registry.npmmirror.com/babel-jest/27.3.1 - name: babel-jest - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@jest/transform': registry.npmmirror.com/@jest/transform/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/babel__core': registry.npmmirror.com/@types/babel__core/7.1.16 - babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul/6.1.1 - babel-preset-jest: registry.nlark.com/babel-preset-jest/27.2.0_@babel+core@7.16.0 - chalk: registry.nlark.com/chalk/4.1.2 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - slash: registry.nlark.com/slash/3.0.0 - transitivePeerDependencies: - - supports-color + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - registry.npmmirror.com/babel-plugin-istanbul/4.1.6: - resolution: {integrity: sha1-NsWbIZLvzoHFs3gyG3QXWt0cmkU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-istanbul/download/babel-plugin-istanbul-4.1.6.tgz} - name: babel-plugin-istanbul - version: 4.1.6 + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: - babel-plugin-syntax-object-rest-spread: 6.13.0 - find-up: registry.npmmirror.com/find-up/2.1.0 - istanbul-lib-instrument: registry.npmmirror.com/istanbul-lib-instrument/1.10.2 - test-exclude: registry.nlark.com/test-exclude/4.2.3 + safe-buffer: 5.2.1 dev: true - registry.npmmirror.com/babel-plugin-istanbul/6.1.1: - resolution: {integrity: sha1-+ojsWSMv2bTjbbvFQKjsmptH2nM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-istanbul/download/babel-plugin-istanbul-6.1.1.tgz} - name: babel-plugin-istanbul - version: 6.1.1 - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': registry.nlark.com/@babel/helper-plugin-utils/7.14.5 - '@istanbuljs/load-nyc-config': registry.nlark.com/@istanbuljs/load-nyc-config/1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: registry.npmmirror.com/istanbul-lib-instrument/5.1.0 - test-exclude: registry.nlark.com/test-exclude/6.0.0 - transitivePeerDependencies: - - supports-color + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} dev: true - registry.npmmirror.com/babel-plugin-polyfill-corejs2/0.3.0_@babel+core@7.16.0: - resolution: {integrity: sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.3.0.tgz} - id: registry.npmmirror.com/babel-plugin-polyfill-corejs2/0.3.0 - name: babel-plugin-polyfill-corejs2 - version: 0.3.0 - peerDependencies: - '@babel/core': ^7.0.0-0 + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} dependencies: - '@babel/compat-data': registry.npmmirror.com/@babel/compat-data/7.16.4 - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-define-polyfill-provider': registry.npmmirror.com/@babel/helper-define-polyfill-provider/0.3.0_@babel+core@7.16.0 - semver: registry.nlark.com/semver/6.3.0 - transitivePeerDependencies: - - supports-color + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 dev: true - registry.npmmirror.com/babel-plugin-polyfill-corejs3/0.4.0_@babel+core@7.16.0: - resolution: {integrity: sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.4.0.tgz} - id: registry.npmmirror.com/babel-plugin-polyfill-corejs3/0.4.0 - name: babel-plugin-polyfill-corejs3 - version: 0.4.0 + /react-clientside-effect@1.2.6(react@17.0.2): + resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} peerDependencies: - '@babel/core': ^7.0.0-0 + react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-define-polyfill-provider': registry.npmmirror.com/@babel/helper-define-polyfill-provider/0.3.0_@babel+core@7.16.0 - core-js-compat: registry.npmmirror.com/core-js-compat/3.19.1 - transitivePeerDependencies: - - supports-color - dev: true + '@babel/runtime': 7.24.5 + react: 17.0.2 + dev: false - registry.npmmirror.com/babel-plugin-polyfill-regenerator/0.3.0_@babel+core@7.16.0: - resolution: {integrity: sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.3.0.tgz} - id: registry.npmmirror.com/babel-plugin-polyfill-regenerator/0.3.0 - name: babel-plugin-polyfill-regenerator - version: 0.3.0 + /react-dom@17.0.2(react@17.0.2): + resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} peerDependencies: - '@babel/core': ^7.0.0-0 + react: 17.0.2 dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-define-polyfill-provider': registry.npmmirror.com/@babel/helper-define-polyfill-provider/0.3.0_@babel+core@7.16.0 - transitivePeerDependencies: - - supports-color - dev: true + loose-envify: 1.4.0 + object-assign: 4.1.1 + react: 17.0.2 + scheduler: 0.20.2 + dev: false - registry.npmmirror.com/babel-template/6.26.0: - resolution: {integrity: sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-template/download/babel-template-6.26.0.tgz} - name: babel-template - version: 6.26.0 + /react-focus-lock@2.12.1(@types/react@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-lfp8Dve4yJagkHiFrC1bGtib3mF2ktqwPJw4/WGcgPW+pJ/AVQA5X2vI7xgp13FcxFEpYBBHpXai/N2DBNC0Jw==} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - babel-runtime: registry.nlark.com/babel-runtime/6.26.0 - babel-traverse: registry.npmmirror.com/babel-traverse/6.26.0 - babel-types: registry.npmmirror.com/babel-types/6.26.0 - babylon: registry.nlark.com/babylon/6.18.0 - lodash: 4.17.21 + '@babel/runtime': 7.24.5 + '@types/react': 17.0.2 + focus-lock: 1.3.5 + prop-types: 15.8.1 + react: 17.0.2 + react-clientside-effect: 1.2.6(react@17.0.2) + use-callback-ref: 1.3.2(@types/react@17.0.2)(react@17.0.2) + use-sidecar: 1.1.2(@types/react@17.0.2)(react@17.0.2) + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} dev: true - registry.npmmirror.com/babel-traverse/6.26.0: - resolution: {integrity: sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-traverse/download/babel-traverse-6.26.0.tgz} - name: babel-traverse - version: 6.26.0 + /react-transition-group@4.4.5(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' dependencies: - babel-code-frame: registry.nlark.com/babel-code-frame/6.26.0 - babel-messages: registry.nlark.com/babel-messages/6.23.0 - babel-runtime: registry.nlark.com/babel-runtime/6.26.0 - babel-types: registry.npmmirror.com/babel-types/6.26.0 - babylon: registry.nlark.com/babylon/6.18.0 - debug: registry.npmmirror.com/debug/2.6.9 - globals: registry.npmmirror.com/globals/9.18.0 - invariant: registry.nlark.com/invariant/2.2.4 - lodash: 4.17.21 - dev: true + '@babel/runtime': 7.24.5 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + dev: false - registry.npmmirror.com/babel-types/6.26.0: - resolution: {integrity: sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-types/download/babel-types-6.26.0.tgz} - name: babel-types - version: 6.26.0 + /react@17.0.2: + resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} + engines: {node: '>=0.10.0'} dependencies: - babel-runtime: registry.nlark.com/babel-runtime/6.26.0 - esutils: registry.nlark.com/esutils/2.0.3 - lodash: 4.17.21 - to-fast-properties: registry.nlark.com/to-fast-properties/1.0.3 - dev: true + loose-envify: 1.4.0 + object-assign: 4.1.1 + dev: false - registry.npmmirror.com/browserslist/4.18.1: - resolution: {integrity: sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserslist/download/browserslist-4.18.1.tgz} - name: browserslist - version: 4.18.1 - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: - caniuse-lite: registry.npmmirror.com/caniuse-lite/1.0.30001282 - electron-to-chromium: registry.npmmirror.com/electron-to-chromium/1.3.903 - escalade: registry.nlark.com/escalade/3.1.1 - node-releases: registry.npmmirror.com/node-releases/2.0.1 - picocolors: registry.npmmirror.com/picocolors/1.0.0 + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 dev: true - registry.npmmirror.com/bs-logger/0.2.6: - resolution: {integrity: sha1-6302UwenLPl0zGzadraDVK0za9g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bs-logger/download/bs-logger-0.2.6.tgz} - name: bs-logger - version: 0.2.6 + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} dependencies: - fast-json-stable-stringify: registry.nlark.com/fast-json-stable-stringify/2.1.0 - dev: true - - registry.npmmirror.com/camelcase/5.3.1: - resolution: {integrity: sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945320461&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz} - name: camelcase - version: 5.3.1 - engines: {node: '>=6'} - dev: true - - registry.npmmirror.com/camelcase/6.2.1: - resolution: {integrity: sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/download/camelcase-6.2.1.tgz?cache=0&sync_timestamp=1636945320461&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-6.2.1.tgz} - name: camelcase - version: 6.2.1 - engines: {node: '>=10'} + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 dev: true - registry.npmmirror.com/caniuse-lite/1.0.30001282: - resolution: {integrity: sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/caniuse-lite/download/caniuse-lite-1.0.30001282.tgz} - name: caniuse-lite - version: 1.0.30001282 + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 dev: true - registry.npmmirror.com/chalk/2.4.2: - resolution: {integrity: sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/download/chalk-2.4.2.tgz} - name: chalk - version: 2.4.2 - engines: {node: '>=4'} + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} dependencies: - ansi-styles: registry.nlark.com/ansi-styles/3.2.1 - escape-string-regexp: registry.nlark.com/escape-string-regexp/1.0.5 - supports-color: registry.npmmirror.com/supports-color/5.5.0 + resolve: 1.22.8 dev: true - registry.npmmirror.com/char-regex/1.0.2: - resolution: {integrity: sha1-10Q1giYhf5ge1Y9Hmx1rzClUXc8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/char-regex/download/char-regex-1.0.2.tgz} - name: char-regex - version: 1.0.2 - engines: {node: '>=10'} - dev: true + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: false - registry.npmmirror.com/color-convert/1.9.3: - resolution: {integrity: sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/download/color-convert-1.9.3.tgz} - name: color-convert - version: 1.9.3 + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} dependencies: - color-name: registry.nlark.com/color-name/1.1.3 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 dev: true - registry.npmmirror.com/colord/2.9.1: - resolution: {integrity: sha1-yWHqDv61fJ8PSDRFjybLnMSj+Q4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/colord/download/colord-2.9.1.tgz} - name: colord - version: 2.9.1 + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} dev: true - registry.npmmirror.com/commander/7.2.0: - resolution: {integrity: sha1-o2y1fQtQHOEI5NIFWaFQo5HZerc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/download/commander-7.2.0.tgz} - name: commander - version: 7.2.0 - engines: {node: '>= 10'} + /relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} dev: true - registry.npmmirror.com/concat-with-sourcemaps/1.1.0: - resolution: {integrity: sha1-1OqT8FriV5CVG5nns7CeOQikCC4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-with-sourcemaps/download/concat-with-sourcemaps-1.1.0.tgz} - name: concat-with-sourcemaps - version: 1.1.0 + /request@2.81.0: + resolution: {integrity: sha512-IZnsR7voF0miGSu29EXPRgPTuEsI/+aibNSBbN1pplrfartF5wDYGADz3iD9vmBVf2r00rckWZf8BtS5kk7Niw==} + engines: {node: '>= 4'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + requiresBuild: true dependencies: - source-map: registry.nlark.com/source-map/0.6.1 + aws-sign2: 0.6.0 + aws4: 1.12.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.1.4 + har-validator: 4.2.1 + hawk: 3.1.3 + http-signature: 1.1.1 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.8.2 + performance-now: 0.2.0 + qs: 6.4.1 + safe-buffer: 5.2.1 + stringstream: 0.0.6 + tough-cookie: 2.3.4 + tunnel-agent: 0.6.0 + uuid: 3.4.0 dev: true + optional: true - registry.npmmirror.com/core-js-compat/3.19.1: - resolution: {integrity: sha1-/lmPGpvzcxDXfDgTlo6ffHu5lHY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js-compat/download/core-js-compat-3.19.1.tgz} - name: core-js-compat - version: 3.19.1 - dependencies: - browserslist: registry.npmmirror.com/browserslist/4.18.1 - semver: registry.nlark.com/semver/7.0.0 + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} dev: true - registry.npmmirror.com/core-js/2.6.12: - resolution: {integrity: sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js/download/core-js-2.6.12.tgz} - name: core-js - version: 2.6.12 - deprecated: core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. - requiresBuild: true + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} dev: true - registry.npmmirror.com/css-what/5.1.0: - resolution: {integrity: sha1-P3tweq32M7r2LCzrhXm1RbtA9/4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-what/download/css-what-5.1.0.tgz} - name: css-what - version: 5.1.0 - engines: {node: '>= 6'} + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true - registry.npmmirror.com/cssnano-preset-default/5.1.7_postcss@8.3.11: - resolution: {integrity: sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssnano-preset-default/download/cssnano-preset-default-5.1.7.tgz} - id: registry.npmmirror.com/cssnano-preset-default/5.1.7 - name: cssnano-preset-default - version: 5.1.7 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - css-declaration-sorter: registry.nlark.com/css-declaration-sorter/6.1.3_postcss@8.3.11 - cssnano-utils: registry.npmmirror.com/cssnano-utils/2.0.1_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-calc: registry.nlark.com/postcss-calc/8.0.0_postcss@8.3.11 - postcss-colormin: registry.npmmirror.com/postcss-colormin/5.2.1_postcss@8.3.11 - postcss-convert-values: registry.npmmirror.com/postcss-convert-values/5.0.2_postcss@8.3.11 - postcss-discard-comments: registry.nlark.com/postcss-discard-comments/5.0.1_postcss@8.3.11 - postcss-discard-duplicates: registry.nlark.com/postcss-discard-duplicates/5.0.1_postcss@8.3.11 - postcss-discard-empty: registry.nlark.com/postcss-discard-empty/5.0.1_postcss@8.3.11 - postcss-discard-overridden: registry.nlark.com/postcss-discard-overridden/5.0.1_postcss@8.3.11 - postcss-merge-longhand: registry.npmmirror.com/postcss-merge-longhand/5.0.4_postcss@8.3.11 - postcss-merge-rules: registry.npmmirror.com/postcss-merge-rules/5.0.3_postcss@8.3.11 - postcss-minify-font-values: registry.nlark.com/postcss-minify-font-values/5.0.1_postcss@8.3.11 - postcss-minify-gradients: registry.npmmirror.com/postcss-minify-gradients/5.0.3_postcss@8.3.11 - postcss-minify-params: registry.npmmirror.com/postcss-minify-params/5.0.2_postcss@8.3.11 - postcss-minify-selectors: registry.nlark.com/postcss-minify-selectors/5.1.0_postcss@8.3.11 - postcss-normalize-charset: registry.nlark.com/postcss-normalize-charset/5.0.1_postcss@8.3.11 - postcss-normalize-display-values: registry.nlark.com/postcss-normalize-display-values/5.0.1_postcss@8.3.11 - postcss-normalize-positions: registry.nlark.com/postcss-normalize-positions/5.0.1_postcss@8.3.11 - postcss-normalize-repeat-style: registry.nlark.com/postcss-normalize-repeat-style/5.0.1_postcss@8.3.11 - postcss-normalize-string: registry.nlark.com/postcss-normalize-string/5.0.1_postcss@8.3.11 - postcss-normalize-timing-functions: registry.nlark.com/postcss-normalize-timing-functions/5.0.1_postcss@8.3.11 - postcss-normalize-unicode: registry.nlark.com/postcss-normalize-unicode/5.0.1_postcss@8.3.11 - postcss-normalize-url: registry.npmmirror.com/postcss-normalize-url/5.0.3_postcss@8.3.11 - postcss-normalize-whitespace: registry.nlark.com/postcss-normalize-whitespace/5.0.1_postcss@8.3.11 - postcss-ordered-values: registry.nlark.com/postcss-ordered-values/5.0.2_postcss@8.3.11 - postcss-reduce-initial: registry.nlark.com/postcss-reduce-initial/5.0.1_postcss@8.3.11 - postcss-reduce-transforms: registry.nlark.com/postcss-reduce-transforms/5.0.1_postcss@8.3.11 - postcss-svgo: registry.npmmirror.com/postcss-svgo/5.0.3_postcss@8.3.11 - postcss-unique-selectors: registry.npmmirror.com/postcss-unique-selectors/5.0.2_postcss@8.3.11 - dev: true - - registry.npmmirror.com/cssnano-utils/2.0.1_postcss@8.3.11: - resolution: {integrity: sha1-hmCqKzfthp0uLyKRgZapqLZJjOI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssnano-utils/download/cssnano-utils-2.0.1.tgz} - id: registry.npmmirror.com/cssnano-utils/2.0.1 - name: cssnano-utils - version: 2.0.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - dev: true + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false - registry.npmmirror.com/cssnano/5.0.11_postcss@8.3.11: - resolution: {integrity: sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssnano/download/cssnano-5.0.11.tgz} - id: registry.npmmirror.com/cssnano/5.0.11 - name: cssnano - version: 5.0.11 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-preset-default: registry.npmmirror.com/cssnano-preset-default/5.1.7_postcss@8.3.11 - is-resolvable: registry.nlark.com/is-resolvable/1.1.0 - lilconfig: registry.npmmirror.com/lilconfig/2.0.4 - postcss: registry.npmmirror.com/postcss/8.3.11 - yaml: registry.npmmirror.com/yaml/1.10.2 + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} dev: true - registry.npmmirror.com/data-urls/2.0.0: - resolution: {integrity: sha1-FWSFpyljqXD11YIar2Qr7yvy25s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/data-urls/download/data-urls-2.0.0.tgz} - name: data-urls - version: 2.0.0 - engines: {node: '>=10'} - dependencies: - abab: registry.nlark.com/abab/2.0.5 - whatwg-mimetype: registry.npmmirror.com/whatwg-mimetype/2.3.0 - whatwg-url: registry.npmmirror.com/whatwg-url/8.7.0 + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} dev: true - registry.npmmirror.com/data-urls/3.0.1: - resolution: {integrity: sha1-WX/CrjD4vE289zH80bGVQ1Ovxvg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/data-urls/download/data-urls-3.0.1.tgz} - name: data-urls - version: 3.0.1 - engines: {node: '>=12'} + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true dependencies: - abab: registry.nlark.com/abab/2.0.5 - whatwg-mimetype: registry.npmmirror.com/whatwg-mimetype/3.0.0 - whatwg-url: registry.npmmirror.com/whatwg-url/10.0.0 + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 dev: true - registry.npmmirror.com/debug/2.6.9: - resolution: {integrity: sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz} - name: debug - version: 2.6.9 + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true dependencies: - ms: registry.npmmirror.com/ms/2.0.0 + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 dev: true - registry.npmmirror.com/debug/4.3.2: - resolution: {integrity: sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/download/debug-4.3.2.tgz} - name: debug - version: 4.3.2 - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: registry.npmmirror.com/ms/2.1.2 + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} dev: true - registry.npmmirror.com/detect-newline/3.1.0: - resolution: {integrity: sha1-V29d/GOuGhkv8ZLYrTr2MImRtlE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-newline/download/detect-newline-3.1.0.tgz} - name: detect-newline - version: 3.1.0 - engines: {node: '>=8'} + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - registry.npmmirror.com/domexception/2.0.1: - resolution: {integrity: sha1-+0Su+6eT4VdLCvau0oAdBXUp8wQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domexception/download/domexception-2.0.1.tgz} - name: domexception - version: 2.0.1 - engines: {node: '>=8'} + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true dependencies: - webidl-conversions: registry.nlark.com/webidl-conversions/5.0.0 - dev: true - - registry.npmmirror.com/electron-to-chromium/1.3.903: - resolution: {integrity: sha512-+PnYAyniRRTkNq56cqYDLq9LyklZYk0hqoDy9GpcU11H5QjRmFZVDbxtgHUMK/YzdNTcn1XWP5gb+hFlSCr20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.3.903.tgz} - name: electron-to-chromium - version: 1.3.903 + glob: 7.2.3 dev: true - registry.npmmirror.com/emoji-regex/8.0.0: - resolution: {integrity: sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1632752407178&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz} - name: emoji-regex - version: 8.0.0 + /rollup-plugin-esbuild@4.10.1(esbuild@0.15.10)(rollup@2.56.3): + resolution: {integrity: sha512-/ymcRB283zjFp1JTBXO8ekxv0c9vRc2L6OTljghsLthQ4vqeDSDWa9BVz1tHiVrx6SbUnUpDPLC0K/MXK7j5TA==} + engines: {node: '>=12'} + peerDependencies: + esbuild: '>=0.10.1' + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': 4.2.1 + debug: 4.3.4 + es-module-lexer: 0.9.3 + esbuild: 0.15.10 + joycon: 3.1.1 + jsonc-parser: 3.2.1 + rollup: 2.56.3 + transitivePeerDependencies: + - supports-color dev: true - registry.npmmirror.com/eslint-plugin-jest/24.7.0_2da712defe3c3d483336ef1879e5f55b: - resolution: {integrity: sha1-IGrAgzhB5Z43UXCxX40JVSGcSIk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-jest/download/eslint-plugin-jest-24.7.0.tgz} - id: registry.npmmirror.com/eslint-plugin-jest/24.7.0 - name: eslint-plugin-jest - version: 24.7.0 + /rollup-plugin-postcss@4.0.1(postcss@8.3.11): + resolution: {integrity: sha512-kUJHlpDGl9+kDfdUUbnerW0Mx1R0PL/6dgciUE/w19swYDBjug7RQfxIRvRGtO/cvCkynYyU8e/YFMI544vskA==} engines: {node: '>=10'} peerDependencies: - '@typescript-eslint/eslint-plugin': '>= 4' - eslint: '>=5' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true + postcss: 8.x dependencies: - '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/4.33.0_d00b196ac5df1286ea7e45797bebddbc - '@typescript-eslint/experimental-utils': registry.npmmirror.com/@typescript-eslint/experimental-utils/4.33.0_eslint@7.32.0+typescript@4.5.2 - eslint: registry.npmmirror.com/eslint/7.32.0 + chalk: 4.1.2 + concat-with-sourcemaps: 1.1.0 + cssnano: 5.1.15(postcss@8.3.11) + import-cwd: 3.0.0 + p-queue: 6.6.2 + pify: 5.0.0 + postcss: 8.3.11 + postcss-load-config: 3.1.4(postcss@8.3.11) + postcss-modules: 4.3.1(postcss@8.3.11) + promise.series: 0.2.0 + resolve: 1.22.8 + rollup-pluginutils: 2.8.2 + safe-identifier: 0.4.2 + style-inject: 0.3.0 transitivePeerDependencies: - - supports-color - - typescript + - ts-node dev: true - registry.npmmirror.com/eslint-plugin-prettier/3.4.1_6e975bd57c7acf028c1a9ddbbf60c898: - resolution: {integrity: sha1-6d2yAO+289Bf/oOxZlpxavSjh+U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-prettier/download/eslint-plugin-prettier-3.4.1.tgz} - id: registry.npmmirror.com/eslint-plugin-prettier/3.4.1 - name: eslint-plugin-prettier - version: 3.4.1 - engines: {node: '>=6.0.0'} - peerDependencies: - eslint: '>=5.0.0' - eslint-config-prettier: '*' - prettier: '>=1.13.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true + /rollup-plugin-userscript-metablock@0.3.1: + resolution: {integrity: sha512-FwGgBQ8oD9MYkUI2CRPD4TJr3hV0UP4YCOGFQDK8PqMZLD6IbPvuraG3qhMCFhukzeTgfEs6uGsUO0xujeJEFw==} dependencies: - eslint: registry.npmmirror.com/eslint/7.32.0 - eslint-config-prettier: registry.nlark.com/eslint-config-prettier/8.3.0_eslint@7.32.0 - prettier: registry.nlark.com/prettier/2.4.1 - prettier-linter-helpers: registry.nlark.com/prettier-linter-helpers/1.0.0 + chalk: 4.1.2 + debug: 4.3.4 + js-yaml: 4.1.0 + magic-string: 0.25.9 + semver: 7.6.2 + valid-url: 1.0.9 + transitivePeerDependencies: + - supports-color dev: true - registry.npmmirror.com/eslint-scope/5.1.1: - resolution: {integrity: sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/download/eslint-scope-5.1.1.tgz} - name: eslint-scope - version: 5.1.1 - engines: {node: '>=8.0.0'} + /rollup-pluginutils@2.8.2: + resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} dependencies: - esrecurse: registry.nlark.com/esrecurse/4.3.0 - estraverse: registry.npmmirror.com/estraverse/4.3.0 + estree-walker: 0.6.1 dev: true - registry.npmmirror.com/eslint-visitor-keys/1.3.0: - resolution: {integrity: sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1636424001648&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz} - name: eslint-visitor-keys - version: 1.3.0 - engines: {node: '>=4'} + /rollup@2.56.3: + resolution: {integrity: sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 dev: true - registry.npmmirror.com/eslint-visitor-keys/2.1.0: - resolution: {integrity: sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz?cache=0&sync_timestamp=1636424001648&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-2.1.0.tgz} - name: eslint-visitor-keys - version: 2.1.0 - engines: {node: '>=10'} + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 dev: true - registry.npmmirror.com/eslint/7.32.0: - resolution: {integrity: sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint/download/eslint-7.32.0.tgz} - name: eslint - version: 7.32.0 - engines: {node: ^10.12.0 || >=12.0.0} - hasBin: true + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} dependencies: - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.12.11 - '@eslint/eslintrc': registry.npmmirror.com/@eslint/eslintrc/0.4.3 - '@humanwhocodes/config-array': registry.npmmirror.com/@humanwhocodes/config-array/0.5.0 - ajv: registry.npmmirror.com/ajv/6.12.6 - chalk: registry.nlark.com/chalk/4.1.2 - cross-spawn: registry.nlark.com/cross-spawn/7.0.3 - debug: registry.npmmirror.com/debug/4.3.2 - doctrine: registry.nlark.com/doctrine/3.0.0 - enquirer: 2.3.6 - escape-string-regexp: registry.nlark.com/escape-string-regexp/4.0.0 - eslint-scope: registry.npmmirror.com/eslint-scope/5.1.1 - eslint-utils: registry.nlark.com/eslint-utils/2.1.0 - eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/2.1.0 - espree: registry.nlark.com/espree/7.3.1 - esquery: registry.nlark.com/esquery/1.4.0 - esutils: registry.nlark.com/esutils/2.0.3 - fast-deep-equal: registry.nlark.com/fast-deep-equal/3.1.3 - file-entry-cache: registry.nlark.com/file-entry-cache/6.0.1 - functional-red-black-tree: registry.nlark.com/functional-red-black-tree/1.0.1 - glob-parent: registry.npmmirror.com/glob-parent/5.1.2 - globals: registry.npmmirror.com/globals/13.12.0 - ignore: registry.npmmirror.com/ignore/4.0.6 - import-fresh: registry.nlark.com/import-fresh/3.3.0 - imurmurhash: registry.nlark.com/imurmurhash/0.1.4 - is-glob: registry.npmmirror.com/is-glob/4.0.3 - js-yaml: registry.nlark.com/js-yaml/3.14.1 - json-stable-stringify-without-jsonify: registry.nlark.com/json-stable-stringify-without-jsonify/1.0.1 - levn: registry.nlark.com/levn/0.4.1 - lodash.merge: 4.6.2 - minimatch: registry.nlark.com/minimatch/3.0.4 - natural-compare: registry.nlark.com/natural-compare/1.4.0 - optionator: registry.nlark.com/optionator/0.9.1 - progress: registry.nlark.com/progress/2.0.3 - regexpp: registry.nlark.com/regexpp/3.2.0 - semver: registry.nlark.com/semver/7.3.5 - strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 - strip-json-comments: registry.nlark.com/strip-json-comments/3.1.1 - table: registry.npmmirror.com/table/6.7.3 - text-table: registry.nlark.com/text-table/0.2.0 - v8-compile-cache: registry.nlark.com/v8-compile-cache/2.3.0 - transitivePeerDependencies: - - supports-color + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 dev: true - registry.npmmirror.com/estraverse/4.3.0: - resolution: {integrity: sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz} - name: estraverse - version: 4.3.0 - engines: {node: '>=4.0'} + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true - registry.npmmirror.com/estraverse/5.3.0: - resolution: {integrity: sha1-LupSkHAvJquP5TcDcP+GyWXSESM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz} - name: estraverse - version: 5.3.0 - engines: {node: '>=4.0'} + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - registry.npmmirror.com/estree-walker/0.6.1: - resolution: {integrity: sha1-UwSRQ/QMbrkYsjZx0f4yGfOhs2I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/download/estree-walker-0.6.1.tgz} - name: estree-walker - version: 0.6.1 + /safe-identifier@0.4.2: + resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==} dev: true - registry.npmmirror.com/execa/5.1.1: - resolution: {integrity: sha1-+ArZy/Qpj3vR1MlVXCHpN0HEEd0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/download/execa-5.1.1.tgz} - name: execa - version: 5.1.1 - engines: {node: '>=10'} - dependencies: - cross-spawn: registry.nlark.com/cross-spawn/7.0.3 - get-stream: 6.0.1 - human-signals: registry.nlark.com/human-signals/2.1.0 - is-stream: registry.nlark.com/is-stream/2.0.1 - merge-stream: registry.nlark.com/merge-stream/2.0.0 - npm-run-path: registry.npmmirror.com/npm-run-path/4.0.1 - onetime: registry.nlark.com/onetime/5.1.2 - signal-exit: registry.npmmirror.com/signal-exit/3.0.6 - strip-final-newline: registry.nlark.com/strip-final-newline/2.0.0 - dev: true - - registry.npmmirror.com/expect/27.3.1: - resolution: {integrity: sha1-0PFwsfXIogCbqwvv/Uu5TwQ+OOc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/expect/download/expect-27.3.1.tgz} - name: expect - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - ansi-styles: registry.nlark.com/ansi-styles/5.2.0 - jest-get-type: registry.npmmirror.com/jest-get-type/27.3.1 - jest-matcher-utils: registry.npmmirror.com/jest-matcher-utils/27.3.1 - jest-message-util: registry.npmmirror.com/jest-message-util/27.3.1 - jest-regex-util: registry.nlark.com/jest-regex-util/27.0.6 - dev: true - - registry.npmmirror.com/find-up/1.1.2: - resolution: {integrity: sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/download/find-up-1.1.2.tgz} - name: find-up - version: 1.1.2 - engines: {node: '>=0.10.0'} + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} dependencies: - path-exists: registry.nlark.com/path-exists/2.1.0 - pinkie-promise: registry.nlark.com/pinkie-promise/2.0.1 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 dev: true - registry.npmmirror.com/find-up/2.1.0: - resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz} - name: find-up - version: 2.1.0 - engines: {node: '>=4'} - dependencies: - locate-path: registry.nlark.com/locate-path/2.0.0 + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - registry.npmmirror.com/find-up/4.1.0: - resolution: {integrity: sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/download/find-up-4.1.0.tgz} - name: find-up - version: 4.1.0 - engines: {node: '>=8'} + /sass-loader@13.3.2(sass@1.52.3)(webpack@5.91.0): + resolution: {integrity: sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==} + engines: {node: '>= 14.15.0'} + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + sass: ^1.3.0 + sass-embedded: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + sass-embedded: + optional: true dependencies: - locate-path: registry.nlark.com/locate-path/5.0.0 - path-exists: registry.nlark.com/path-exists/4.0.0 + neo-async: 2.6.2 + sass: 1.52.3 + webpack: 5.91.0(esbuild@0.15.10) dev: true - registry.npmmirror.com/flatted/3.2.4: - resolution: {integrity: sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flatted/download/flatted-3.2.4.tgz} - name: flatted - version: 3.2.4 + /sass@1.52.3: + resolution: {integrity: sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + chokidar: 3.6.0 + immutable: 4.3.5 + source-map-js: 1.2.0 dev: true - registry.npmmirror.com/fsevents/2.3.2: - resolution: {integrity: sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz} - name: fsevents - version: 2.3.2 - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true + /scheduler@0.20.2: + resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + dev: false - registry.npmmirror.com/glob-parent/2.0.0: - resolution: {integrity: sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/download/glob-parent-2.0.0.tgz} - name: glob-parent - version: 2.0.0 + /schema-utils@2.7.1: + resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} + engines: {node: '>= 8.9.0'} dependencies: - is-glob: registry.npmmirror.com/is-glob/2.0.1 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) dev: true - registry.npmmirror.com/glob-parent/5.1.2: - resolution: {integrity: sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz} - name: glob-parent - version: 5.1.2 - engines: {node: '>= 6'} + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} dependencies: - is-glob: registry.npmmirror.com/is-glob/4.0.3 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) dev: true - registry.npmmirror.com/glob/7.2.0: - resolution: {integrity: sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz} - name: glob - version: 7.2.0 + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} dependencies: - fs.realpath: registry.nlark.com/fs.realpath/1.0.0 - inflight: registry.nlark.com/inflight/1.0.6 - inherits: 2.0.4 - minimatch: registry.nlark.com/minimatch/3.0.4 - once: registry.nlark.com/once/1.4.0 - path-is-absolute: registry.nlark.com/path-is-absolute/1.0.1 + '@types/json-schema': 7.0.15 + ajv: 8.13.0 + ajv-formats: 2.1.1(ajv@8.13.0) + ajv-keywords: 5.1.0(ajv@8.13.0) dev: true - registry.npmmirror.com/globals/11.12.0: - resolution: {integrity: sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globals/download/globals-11.12.0.tgz} - name: globals - version: 11.12.0 - engines: {node: '>=4'} + /scroll-into-view-if-needed@2.2.20: + resolution: {integrity: sha512-P9kYMrhi9f6dvWwTGpO5I3HgjSU/8Mts7xL3lkoH5xlewK7O9Obdc5WmMCzppln7bCVGNmf3qfoZXrpCeyNJXw==} + dependencies: + compute-scroll-into-view: 1.0.11 + dev: false + + /select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} dev: true - registry.npmmirror.com/globals/13.12.0: - resolution: {integrity: sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz} - name: globals - version: 13.12.0 - engines: {node: '>=8'} + /selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} dependencies: - type-fest: registry.npmmirror.com/type-fest/0.20.2 + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 dev: true - registry.npmmirror.com/globals/9.18.0: - resolution: {integrity: sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globals/download/globals-9.18.0.tgz} - name: globals - version: 9.18.0 - engines: {node: '>=0.10.0'} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true dev: true - registry.npmmirror.com/graceful-fs/4.2.8: - resolution: {integrity: sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz} - name: graceful-fs - version: 4.2.8 + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true dev: true - registry.npmmirror.com/html-encoding-sniffer/2.0.1: - resolution: {integrity: sha1-QqbcT9M/ACgRduiyN1nKTk+hhfM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-encoding-sniffer/download/html-encoding-sniffer-2.0.1.tgz} - name: html-encoding-sniffer - version: 2.0.1 + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} - dependencies: - whatwg-encoding: registry.npmmirror.com/whatwg-encoding/1.0.5 + hasBin: true dev: true - registry.npmmirror.com/http-proxy-agent/4.0.1: - resolution: {integrity: sha1-ioyO9/WTLM+VPClsqCkblap0qjo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/http-proxy-agent/download/http-proxy-agent-4.0.1.tgz} - name: http-proxy-agent - version: 4.0.1 - engines: {node: '>= 6'} + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} dependencies: - '@tootallnate/once': registry.npmmirror.com/@tootallnate/once/1.1.2 - agent-base: registry.nlark.com/agent-base/6.0.2 - debug: registry.npmmirror.com/debug/4.3.2 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 transitivePeerDependencies: - supports-color dev: true - registry.npmmirror.com/iconv-lite/0.4.24: - resolution: {integrity: sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/download/iconv-lite-0.4.24.tgz} - name: iconv-lite - version: 0.4.24 - engines: {node: '>=0.10.0'} + /serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: - safer-buffer: registry.nlark.com/safer-buffer/2.1.2 + randombytes: 2.1.0 dev: true - registry.npmmirror.com/ignore/4.0.6: - resolution: {integrity: sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz} - name: ignore - version: 4.0.6 - engines: {node: '>= 4'} + /serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color dev: true - registry.npmmirror.com/ignore/5.1.9: - resolution: {integrity: sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ignore/download/ignore-5.1.9.tgz} - name: ignore - version: 5.1.9 - engines: {node: '>= 4'} + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color dev: true - registry.npmmirror.com/import-local/3.0.3: - resolution: {integrity: sha1-TVHCxJXKk5PaJZ7Ga2LgIpICEeA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-local/download/import-local-3.0.3.tgz} - name: import-local - version: 3.0.3 - engines: {node: '>=8'} - hasBin: true + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} dependencies: - pkg-dir: registry.npmmirror.com/pkg-dir/4.2.0 - resolve-cwd: registry.nlark.com/resolve-cwd/3.0.0 + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 dev: true - registry.npmmirror.com/is-core-module/2.8.0: - resolution: {integrity: sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/download/is-core-module-2.8.0.tgz} - name: is-core-module - version: 2.8.0 + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} dependencies: - has: registry.nlark.com/has/1.0.3 + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 dev: true - registry.npmmirror.com/is-finite/1.1.0: - resolution: {integrity: sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-finite/download/is-finite-1.1.0.tgz} - name: is-finite - version: 1.1.0 - engines: {node: '>=0.10.0'} + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} dev: true - registry.npmmirror.com/is-glob/2.0.1: - resolution: {integrity: sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-glob/download/is-glob-2.0.1.tgz} - name: is-glob - version: 2.0.1 - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: registry.nlark.com/is-extglob/1.0.0 + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true - registry.npmmirror.com/is-glob/4.0.3: - resolution: {integrity: sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz} - name: is-glob - version: 4.0.3 - engines: {node: '>=0.10.0'} + /shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: - is-extglob: registry.nlark.com/is-extglob/2.1.1 + shebang-regex: 3.0.0 dev: true - registry.npmmirror.com/is-posix-bracket/0.1.1: - resolution: {integrity: sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz} - name: is-posix-bracket - version: 0.1.1 - engines: {node: '>=0.10.0'} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} dev: true - registry.npmmirror.com/is-reference/1.2.1: - resolution: {integrity: sha1-iy2sCzcfS8mU/eq6nrVC0DAC0Lc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-reference/download/is-reference-1.2.1.tgz} - name: is-reference - version: 1.2.1 - dependencies: - '@types/estree': registry.npmmirror.com/@types/estree/0.0.50 + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: true - registry.npmmirror.com/istanbul-lib-coverage/1.2.1: - resolution: {integrity: sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.1.tgz} - name: istanbul-lib-coverage - version: 1.2.1 + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 dev: true - registry.npmmirror.com/istanbul-lib-coverage/3.2.0: - resolution: {integrity: sha1-GJ55CdCjn6Wj361bA/cZR3cBkdM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-coverage/download/istanbul-lib-coverage-3.2.0.tgz} - name: istanbul-lib-coverage - version: 3.2.0 - engines: {node: '>=8'} + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - registry.npmmirror.com/istanbul-lib-instrument/1.10.2: - resolution: {integrity: sha1-H1XtEKw8R/K93dUweTUSZ1TQqco=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-instrument/download/istanbul-lib-instrument-1.10.2.tgz} - name: istanbul-lib-instrument - version: 1.10.2 + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: - babel-generator: 6.26.1 - babel-template: registry.npmmirror.com/babel-template/6.26.0 - babel-traverse: registry.npmmirror.com/babel-traverse/6.26.0 - babel-types: registry.npmmirror.com/babel-types/6.26.0 - babylon: registry.nlark.com/babylon/6.18.0 - istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage/1.2.1 - semver: registry.nlark.com/semver/5.7.1 - dev: true + is-arrayish: 0.3.2 + dev: false - registry.npmmirror.com/istanbul-lib-instrument/4.0.3: - resolution: {integrity: sha1-hzxv/4l0UBGCIndGlqPyiQLXfB0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-instrument/download/istanbul-lib-instrument-4.0.3.tgz} - name: istanbul-lib-instrument - version: 4.0.3 - engines: {node: '>=8'} + /sirv@1.0.19: + resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} + engines: {node: '>= 10'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage/3.2.0 - semver: registry.nlark.com/semver/6.3.0 - transitivePeerDependencies: - - supports-color + '@polka/url': 1.0.0-next.25 + mrmime: 1.0.1 + totalist: 1.1.0 dev: true - registry.npmmirror.com/istanbul-lib-instrument/5.1.0: - resolution: {integrity: sha1-e0kZi2V7J6cwuOnLYB8eG/8kxZo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-instrument/download/istanbul-lib-instrument-5.1.0.tgz} - name: istanbul-lib-instrument - version: 5.1.0 + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage/3.2.0 - semver: registry.nlark.com/semver/6.3.0 - transitivePeerDependencies: - - supports-color dev: true - registry.npmmirror.com/istanbul-lib-source-maps/4.0.1: - resolution: {integrity: sha1-iV86cJ/PujTG3lpCk5Ai8+Q1hVE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-source-maps/download/istanbul-lib-source-maps-4.0.1.tgz} - name: istanbul-lib-source-maps - version: 4.0.1 + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} dependencies: - debug: registry.npmmirror.com/debug/4.3.2 - istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage/3.2.0 - source-map: registry.nlark.com/source-map/0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - - registry.npmmirror.com/istanbul-reports/3.0.5: - resolution: {integrity: sha1-olgBB+cSeeptZh3e3pKf/G1pM4Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-reports/download/istanbul-reports-3.0.5.tgz} - name: istanbul-reports - version: 3.0.5 - engines: {node: '>=8'} - dependencies: - html-escaper: registry.nlark.com/html-escaper/2.0.2 - istanbul-lib-report: registry.nlark.com/istanbul-lib-report/3.0.0 - dev: true - - registry.npmmirror.com/jest-changed-files/27.3.0: - resolution: {integrity: sha1-IqAswrNFg/xm5EMXHcJxwFKdJjw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-changed-files/download/jest-changed-files-27.3.0.tgz} - name: jest-changed-files - version: 27.3.0 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - execa: registry.npmmirror.com/execa/5.1.1 - throat: registry.nlark.com/throat/6.0.1 - dev: true - - registry.npmmirror.com/jest-circus/27.3.1: - resolution: {integrity: sha1-FnnnQ4fLvwxqi0LeljJQpkaeB5c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-circus/download/jest-circus-27.3.1.tgz} - name: jest-circus - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': registry.npmmirror.com/@jest/environment/27.3.1 - '@jest/test-result': registry.npmmirror.com/@jest/test-result/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - chalk: registry.nlark.com/chalk/4.1.2 - co: registry.nlark.com/co/4.6.0 - dedent: registry.nlark.com/dedent/0.7.0 - expect: registry.npmmirror.com/expect/27.3.1 - is-generator-fn: registry.nlark.com/is-generator-fn/2.1.0 - jest-each: registry.npmmirror.com/jest-each/27.3.1 - jest-matcher-utils: registry.npmmirror.com/jest-matcher-utils/27.3.1 - jest-message-util: registry.npmmirror.com/jest-message-util/27.3.1 - jest-runtime: registry.npmmirror.com/jest-runtime/27.3.1 - jest-snapshot: registry.npmmirror.com/jest-snapshot/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - pretty-format: registry.npmmirror.com/pretty-format/27.3.1 - slash: registry.nlark.com/slash/3.0.0 - stack-utils: registry.npmmirror.com/stack-utils/2.0.5 - throat: registry.nlark.com/throat/6.0.1 - transitivePeerDependencies: - - supports-color + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 dev: true - registry.npmmirror.com/jest-cli/27.3.1: - resolution: {integrity: sha1-tXb50Ua6ZkPOChYteCtAFStrHRY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-cli/download/jest-cli-27.3.1.tgz} - name: jest-cli - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + /sntp@1.0.9: + resolution: {integrity: sha512-7bgVOAnPj3XjrKY577S+puCKGCRlUrcrEdsMeRXlg9Ghf5df/xNi6sONUa43WrHUd3TjJBF7O04jYoiY0FVa0A==} + engines: {node: '>=0.8.0'} + deprecated: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues. + requiresBuild: true dependencies: - '@jest/core': registry.npmmirror.com/@jest/core/27.3.1 - '@jest/test-result': registry.npmmirror.com/@jest/test-result/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - chalk: registry.nlark.com/chalk/4.1.2 - exit: 0.1.2 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - import-local: registry.npmmirror.com/import-local/3.0.3 - jest-config: registry.npmmirror.com/jest-config/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - jest-validate: registry.npmmirror.com/jest-validate/27.3.1 - prompts: registry.npmmirror.com/prompts/2.4.2 - yargs: registry.npmmirror.com/yargs/16.2.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate + hoek: 2.16.3 dev: true + optional: true - registry.npmmirror.com/jest-config/27.3.1: - resolution: {integrity: sha1-yzt/aqqMCn2q1PK5VziZyn4Ju60=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-config/download/jest-config-27.3.1.tgz} - name: jest-config - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true + /sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@jest/test-sequencer': registry.npmmirror.com/@jest/test-sequencer/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - babel-jest: registry.npmmirror.com/babel-jest/27.3.1_@babel+core@7.16.0 - chalk: registry.nlark.com/chalk/4.1.2 - ci-info: registry.nlark.com/ci-info/3.2.0 - deepmerge: registry.nlark.com/deepmerge/4.2.2 - glob: registry.npmmirror.com/glob/7.2.0 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jest-circus: registry.npmmirror.com/jest-circus/27.3.1 - jest-environment-jsdom: registry.npmmirror.com/jest-environment-jsdom/27.3.1 - jest-environment-node: registry.npmmirror.com/jest-environment-node/27.3.1 - jest-get-type: registry.npmmirror.com/jest-get-type/27.3.1 - jest-jasmine2: registry.npmmirror.com/jest-jasmine2/27.3.1 - jest-regex-util: registry.nlark.com/jest-regex-util/27.0.6 - jest-resolve: registry.npmmirror.com/jest-resolve/27.3.1 - jest-runner: registry.npmmirror.com/jest-runner/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - jest-validate: registry.npmmirror.com/jest-validate/27.3.1 - micromatch: registry.nlark.com/micromatch/4.0.4 - pretty-format: registry.npmmirror.com/pretty-format/27.3.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 dev: true - registry.npmmirror.com/jest-diff/27.3.1: - resolution: {integrity: sha1-0ndf6hVBH19a7aKl4CwvNkQPbVU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-diff/download/jest-diff-27.3.1.tgz} - name: jest-diff - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: registry.nlark.com/chalk/4.1.2 - diff-sequences: registry.nlark.com/diff-sequences/27.0.6 - jest-get-type: registry.npmmirror.com/jest-get-type/27.3.1 - pretty-format: registry.npmmirror.com/pretty-format/27.3.1 - dev: true - - registry.npmmirror.com/jest-each/27.3.1: - resolution: {integrity: sha1-FMVrtPGN0Y3GvdhTkZtfFqF3Yf8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-each/download/jest-each-27.3.1.tgz} - name: jest-each - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - chalk: registry.nlark.com/chalk/4.1.2 - jest-get-type: registry.npmmirror.com/jest-get-type/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - pretty-format: registry.npmmirror.com/pretty-format/27.3.1 - dev: true - - registry.npmmirror.com/jest-environment-jsdom/27.3.1: - resolution: {integrity: sha1-Y6w21o96kwNJTfeDSUhWIitX9z4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-environment-jsdom/download/jest-environment-jsdom-27.3.1.tgz} - name: jest-environment-jsdom - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': registry.npmmirror.com/@jest/environment/27.3.1 - '@jest/fake-timers': registry.npmmirror.com/@jest/fake-timers/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - jest-mock: registry.npmmirror.com/jest-mock/27.3.0 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - jsdom: registry.npmmirror.com/jsdom/16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate + /source-map-js@0.6.2: + resolution: {integrity: sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==} + engines: {node: '>=0.10.0'} dev: true - registry.npmmirror.com/jest-environment-node/27.3.1: - resolution: {integrity: sha1-r30O7QTtr7dAMRswPz/nyMJwFLs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-environment-node/download/jest-environment-node-27.3.1.tgz} - name: jest-environment-node - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': registry.npmmirror.com/@jest/environment/27.3.1 - '@jest/fake-timers': registry.npmmirror.com/@jest/fake-timers/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - jest-mock: registry.npmmirror.com/jest-mock/27.3.0 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - dev: true - - registry.npmmirror.com/jest-get-type/27.3.1: - resolution: {integrity: sha1-qKKwoStQFpdzCZ7uYKDm3RFCPv8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-get-type/download/jest-get-type-27.3.1.tgz} - name: jest-get-type - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - registry.npmmirror.com/jest-haste-map/27.3.1: - resolution: {integrity: sha1-dlb71kv0i9qQTnWfydk+LIBzU+4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-haste-map/download/jest-haste-map-27.3.1.tgz} - name: jest-haste-map - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/graceful-fs': registry.npmmirror.com/@types/graceful-fs/4.1.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - anymatch: registry.nlark.com/anymatch/3.1.2 - fb-watchman: 2.0.1 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jest-regex-util: registry.nlark.com/jest-regex-util/27.0.6 - jest-serializer: registry.nlark.com/jest-serializer/27.0.6 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - jest-worker: registry.npmmirror.com/jest-worker/27.3.1 - micromatch: registry.nlark.com/micromatch/4.0.4 - walker: registry.npmmirror.com/walker/1.0.8 - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents/2.3.2 - dev: true - - registry.npmmirror.com/jest-jasmine2/27.3.1: - resolution: {integrity: sha1-3209B8fa/DRP60OgBypvCUWNMrA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-jasmine2/download/jest-jasmine2-27.3.1.tgz} - name: jest-jasmine2 - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.16.3 - '@jest/environment': registry.npmmirror.com/@jest/environment/27.3.1 - '@jest/source-map': registry.nlark.com/@jest/source-map/27.0.6 - '@jest/test-result': registry.npmmirror.com/@jest/test-result/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - chalk: registry.nlark.com/chalk/4.1.2 - co: registry.nlark.com/co/4.6.0 - expect: registry.npmmirror.com/expect/27.3.1 - is-generator-fn: registry.nlark.com/is-generator-fn/2.1.0 - jest-each: registry.npmmirror.com/jest-each/27.3.1 - jest-matcher-utils: registry.npmmirror.com/jest-matcher-utils/27.3.1 - jest-message-util: registry.npmmirror.com/jest-message-util/27.3.1 - jest-runtime: registry.npmmirror.com/jest-runtime/27.3.1 - jest-snapshot: registry.npmmirror.com/jest-snapshot/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - pretty-format: registry.npmmirror.com/pretty-format/27.3.1 - throat: registry.nlark.com/throat/6.0.1 - transitivePeerDependencies: - - supports-color + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} dev: true - registry.npmmirror.com/jest-leak-detector/27.3.1: - resolution: {integrity: sha1-f7Yywpku9weh5zKG4ecE+cwXcrI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-leak-detector/download/jest-leak-detector-27.3.1.tgz} - name: jest-leak-detector - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: - jest-get-type: registry.npmmirror.com/jest-get-type/27.3.1 - pretty-format: registry.npmmirror.com/pretty-format/27.3.1 + buffer-from: 1.1.2 + source-map: 0.6.1 dev: true - registry.npmmirror.com/jest-matcher-utils/27.3.1: - resolution: {integrity: sha1-JXrWHlSm1AROCA2F29xKCIEenBw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-matcher-utils/download/jest-matcher-utils-27.3.1.tgz} - name: jest-matcher-utils - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: registry.nlark.com/chalk/4.1.2 - jest-diff: registry.npmmirror.com/jest-diff/27.3.1 - jest-get-type: registry.npmmirror.com/jest-get-type/27.3.1 - pretty-format: registry.npmmirror.com/pretty-format/27.3.1 + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + requiresBuild: true dev: true + optional: true - registry.npmmirror.com/jest-message-util/27.3.1: - resolution: {integrity: sha1-98JWiK00EKsQvLhivP4xUjRcZDY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-message-util/download/jest-message-util-27.3.1.tgz} - name: jest-message-util - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.16.0 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/stack-utils': registry.nlark.com/@types/stack-utils/2.0.1 - chalk: registry.nlark.com/chalk/4.1.2 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - micromatch: registry.nlark.com/micromatch/4.0.4 - pretty-format: registry.npmmirror.com/pretty-format/27.3.1 - slash: registry.nlark.com/slash/3.0.0 - stack-utils: registry.npmmirror.com/stack-utils/2.0.5 + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} dev: true - registry.npmmirror.com/jest-mock/27.3.0: - resolution: {integrity: sha1-3fDsPMPmjIzNSJvvTR9SVXGhuGc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-mock/download/jest-mock-27.3.0.tgz} - name: jest-mock - version: 27.3.0 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} dev: true - registry.npmmirror.com/jest-pnp-resolver/1.2.2_jest-resolve@27.3.1: - resolution: {integrity: sha1-twSsCuAoqJEIpNBAs/kZ393I4zw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-pnp-resolver/download/jest-pnp-resolver-1.2.2.tgz} - id: registry.npmmirror.com/jest-pnp-resolver/1.2.2 - name: jest-pnp-resolver - version: 1.2.2 - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: registry.npmmirror.com/jest-resolve/27.3.1 + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead dev: true - registry.npmmirror.com/jest-resolve-dependencies/27.3.1: - resolution: {integrity: sha1-hbmb29+kbiyBxiKPxMkQdvYk9uI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-resolve-dependencies/download/jest-resolve-dependencies-27.3.1.tgz} - name: jest-resolve-dependencies - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - jest-regex-util: registry.nlark.com/jest-regex-util/27.0.6 - jest-snapshot: registry.npmmirror.com/jest-snapshot/27.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - registry.npmmirror.com/jest-resolve/27.3.1: - resolution: {integrity: sha1-DlVCFyoaoCcL5vZqZYiGR73XSj4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-resolve/download/jest-resolve-27.3.1.tgz} - name: jest-resolve - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - chalk: registry.nlark.com/chalk/4.1.2 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jest-haste-map: registry.npmmirror.com/jest-haste-map/27.3.1 - jest-pnp-resolver: registry.npmmirror.com/jest-pnp-resolver/1.2.2_jest-resolve@27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - jest-validate: registry.npmmirror.com/jest-validate/27.3.1 - resolve: registry.nlark.com/resolve/1.20.0 - resolve.exports: registry.npmmirror.com/resolve.exports/1.1.0 - slash: registry.nlark.com/slash/3.0.0 - dev: true - - registry.npmmirror.com/jest-runner/27.3.1: - resolution: {integrity: sha1-HVlNy/O9hgCn6DnnkDhFWer5bj4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-runner/download/jest-runner-27.3.1.tgz} - name: jest-runner - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': registry.npmmirror.com/@jest/console/27.3.1 - '@jest/environment': registry.npmmirror.com/@jest/environment/27.3.1 - '@jest/test-result': registry.npmmirror.com/@jest/test-result/27.3.1 - '@jest/transform': registry.npmmirror.com/@jest/transform/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - chalk: registry.nlark.com/chalk/4.1.2 - emittery: registry.nlark.com/emittery/0.8.1 - exit: 0.1.2 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jest-docblock: registry.nlark.com/jest-docblock/27.0.6 - jest-environment-jsdom: registry.npmmirror.com/jest-environment-jsdom/27.3.1 - jest-environment-node: registry.npmmirror.com/jest-environment-node/27.3.1 - jest-haste-map: registry.npmmirror.com/jest-haste-map/27.3.1 - jest-leak-detector: registry.npmmirror.com/jest-leak-detector/27.3.1 - jest-message-util: registry.npmmirror.com/jest-message-util/27.3.1 - jest-resolve: registry.npmmirror.com/jest-resolve/27.3.1 - jest-runtime: registry.npmmirror.com/jest-runtime/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - jest-worker: registry.npmmirror.com/jest-worker/27.3.1 - source-map-support: registry.npmmirror.com/source-map-support/0.5.21 - throat: registry.nlark.com/throat/6.0.1 + debug: 4.3.4 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 transitivePeerDependencies: - - bufferutil - - canvas - supports-color - - utf-8-validate dev: true - registry.npmmirror.com/jest-runtime/27.3.1: - resolution: {integrity: sha1-gPoy64X+WvV1hl3fN5h0d37pk9c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-runtime/download/jest-runtime-27.3.1.tgz} - name: jest-runtime - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': registry.npmmirror.com/@jest/console/27.3.1 - '@jest/environment': registry.npmmirror.com/@jest/environment/27.3.1 - '@jest/globals': registry.npmmirror.com/@jest/globals/27.3.1 - '@jest/source-map': registry.nlark.com/@jest/source-map/27.0.6 - '@jest/test-result': registry.npmmirror.com/@jest/test-result/27.3.1 - '@jest/transform': registry.npmmirror.com/@jest/transform/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/yargs': registry.npmmirror.com/@types/yargs/16.0.4 - chalk: registry.nlark.com/chalk/4.1.2 - cjs-module-lexer: registry.nlark.com/cjs-module-lexer/1.2.2 - collect-v8-coverage: registry.nlark.com/collect-v8-coverage/1.0.1 - execa: registry.npmmirror.com/execa/5.1.1 - exit: 0.1.2 - glob: registry.npmmirror.com/glob/7.2.0 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jest-haste-map: registry.npmmirror.com/jest-haste-map/27.3.1 - jest-message-util: registry.npmmirror.com/jest-message-util/27.3.1 - jest-mock: registry.npmmirror.com/jest-mock/27.3.0 - jest-regex-util: registry.nlark.com/jest-regex-util/27.0.6 - jest-resolve: registry.npmmirror.com/jest-resolve/27.3.1 - jest-snapshot: registry.npmmirror.com/jest-snapshot/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - jest-validate: registry.npmmirror.com/jest-validate/27.3.1 - slash: registry.nlark.com/slash/3.0.0 - strip-bom: registry.nlark.com/strip-bom/4.0.0 - yargs: registry.npmmirror.com/yargs/16.2.0 + /spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + dependencies: + debug: 4.3.4 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 transitivePeerDependencies: - supports-color dev: true - registry.npmmirror.com/jest-snapshot/27.3.1: - resolution: {integrity: sha1-HaXAcSolLXCRfUbANwVPWRjEnuQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-snapshot/download/jest-snapshot-27.3.1.tgz} - name: jest-snapshot - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/generator': registry.npmmirror.com/@babel/generator/7.16.0 - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 - '@babel/plugin-syntax-typescript': registry.npmmirror.com/@babel/plugin-syntax-typescript/7.16.0_@babel+core@7.16.0 - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.16.3 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 - '@jest/transform': registry.npmmirror.com/@jest/transform/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse/7.14.2 - '@types/prettier': registry.npmmirror.com/@types/prettier/2.4.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.16.0 - chalk: registry.nlark.com/chalk/4.1.2 - expect: registry.npmmirror.com/expect/27.3.1 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jest-diff: registry.npmmirror.com/jest-diff/27.3.1 - jest-get-type: registry.npmmirror.com/jest-get-type/27.3.1 - jest-haste-map: registry.npmmirror.com/jest-haste-map/27.3.1 - jest-matcher-utils: registry.npmmirror.com/jest-matcher-utils/27.3.1 - jest-message-util: registry.npmmirror.com/jest-message-util/27.3.1 - jest-resolve: registry.npmmirror.com/jest-resolve/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - natural-compare: registry.nlark.com/natural-compare/1.4.0 - pretty-format: registry.npmmirror.com/pretty-format/27.3.1 - semver: registry.nlark.com/semver/7.3.5 - transitivePeerDependencies: - - supports-color + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - registry.npmmirror.com/jest-util/27.3.1: - resolution: {integrity: sha1-pYzce2yKVgyqye1r38Tk/yP4BCk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-util/download/jest-util-27.3.1.tgz} - name: jest-util - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - chalk: registry.nlark.com/chalk/4.1.2 - ci-info: registry.nlark.com/ci-info/3.2.0 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - picomatch: registry.nlark.com/picomatch/2.3.0 - dev: true - - registry.npmmirror.com/jest-validate/27.3.1: - resolution: {integrity: sha1-OjldYaGc0TrpBUr4za8pkRbviiQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-validate/download/jest-validate-27.3.1.tgz} - name: jest-validate - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - camelcase: registry.npmmirror.com/camelcase/6.2.1 - chalk: registry.nlark.com/chalk/4.1.2 - jest-get-type: registry.npmmirror.com/jest-get-type/27.3.1 - leven: registry.nlark.com/leven/3.1.0 - pretty-format: registry.npmmirror.com/pretty-format/27.3.1 - dev: true - - registry.npmmirror.com/jest-watcher/27.3.1: - resolution: {integrity: sha1-ul4LxqqENhK1Tdt/AJ0cv/fgXz4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-watcher/download/jest-watcher-27.3.1.tgz} - name: jest-watcher - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': registry.npmmirror.com/@jest/test-result/27.3.1 - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - ansi-escapes: registry.nlark.com/ansi-escapes/4.3.2 - chalk: registry.nlark.com/chalk/4.1.2 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - string-length: registry.nlark.com/string-length/4.0.2 - dev: true - - registry.npmmirror.com/jest-worker/27.3.1: - resolution: {integrity: sha1-De9/6uW4BCvjhHl5mut7X6ysJLI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/download/jest-worker-27.3.1.tgz?cache=0&sync_timestamp=1634628318833&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-27.3.1.tgz} - name: jest-worker - version: 27.3.1 - engines: {node: '>= 10.13.0'} + /sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true dependencies: - '@types/node': registry.npmmirror.com/@types/node/16.11.9 - merge-stream: registry.nlark.com/merge-stream/2.0.0 - supports-color: registry.npmmirror.com/supports-color/8.1.1 + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 dev: true + optional: true - registry.npmmirror.com/jest/27.3.1: - resolution: {integrity: sha1-tbq2To9WtvfidboYNomLDZ8eXIo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest/download/jest-27.3.1.tgz} - name: jest - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': registry.npmmirror.com/@jest/core/27.3.1 - import-local: registry.npmmirror.com/import-local/3.0.3 - jest-cli: registry.npmmirror.com/jest-cli/27.3.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' dev: true - registry.npmmirror.com/jsdom/16.7.0: - resolution: {integrity: sha1-kYrnGWVCSxl8gZ+Bg6dU4Yl3txA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsdom/download/jsdom-16.7.0.tgz} - name: jsdom - version: 16.7.0 - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: registry.nlark.com/abab/2.0.5 - acorn: registry.npmmirror.com/acorn/8.6.0 - acorn-globals: registry.nlark.com/acorn-globals/6.0.0 - cssom: registry.nlark.com/cssom/0.4.4 - cssstyle: 2.3.0 - data-urls: registry.npmmirror.com/data-urls/2.0.0 - decimal.js: registry.nlark.com/decimal.js/10.3.1 - domexception: registry.npmmirror.com/domexception/2.0.1 - escodegen: registry.nlark.com/escodegen/2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: registry.npmmirror.com/html-encoding-sniffer/2.0.1 - http-proxy-agent: registry.npmmirror.com/http-proxy-agent/4.0.1 - https-proxy-agent: 5.0.0 - is-potential-custom-element-name: registry.nlark.com/is-potential-custom-element-name/1.0.1 - nwsapi: registry.nlark.com/nwsapi/2.2.0 - parse5: registry.nlark.com/parse5/6.0.1 - saxes: registry.npmmirror.com/saxes/5.0.1 - symbol-tree: registry.nlark.com/symbol-tree/3.2.4 - tough-cookie: registry.nlark.com/tough-cookie/4.0.0 - w3c-hr-time: registry.nlark.com/w3c-hr-time/1.0.2 - w3c-xmlserializer: registry.npmmirror.com/w3c-xmlserializer/2.0.0 - webidl-conversions: registry.nlark.com/webidl-conversions/6.1.0 - whatwg-encoding: registry.npmmirror.com/whatwg-encoding/1.0.5 - whatwg-mimetype: registry.npmmirror.com/whatwg-mimetype/2.3.0 - whatwg-url: registry.npmmirror.com/whatwg-url/8.7.0 - ws: registry.npmmirror.com/ws/7.5.5 - xml-name-validator: registry.npmmirror.com/xml-name-validator/3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + /stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} dev: true - registry.npmmirror.com/jsdom/17.0.0: - resolution: {integrity: sha1-PsgtHTADBknI3v7cRf/2qj5dBq4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsdom/download/jsdom-17.0.0.tgz} - name: jsdom - version: 17.0.0 - engines: {node: '>=12'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: registry.nlark.com/abab/2.0.5 - acorn: registry.npmmirror.com/acorn/8.6.0 - acorn-globals: registry.nlark.com/acorn-globals/6.0.0 - cssom: registry.nlark.com/cssom/0.5.0 - cssstyle: 2.3.0 - data-urls: registry.npmmirror.com/data-urls/3.0.1 - decimal.js: registry.nlark.com/decimal.js/10.3.1 - domexception: registry.npmmirror.com/domexception/2.0.1 - escodegen: registry.nlark.com/escodegen/2.0.0 - form-data: 4.0.0 - html-encoding-sniffer: registry.npmmirror.com/html-encoding-sniffer/2.0.1 - http-proxy-agent: registry.npmmirror.com/http-proxy-agent/4.0.1 - https-proxy-agent: 5.0.0 - is-potential-custom-element-name: registry.nlark.com/is-potential-custom-element-name/1.0.1 - nwsapi: registry.nlark.com/nwsapi/2.2.0 - parse5: registry.nlark.com/parse5/6.0.1 - saxes: registry.npmmirror.com/saxes/5.0.1 - symbol-tree: registry.nlark.com/symbol-tree/3.2.4 - tough-cookie: registry.nlark.com/tough-cookie/4.0.0 - w3c-hr-time: registry.nlark.com/w3c-hr-time/1.0.2 - w3c-xmlserializer: registry.npmmirror.com/w3c-xmlserializer/2.0.0 - webidl-conversions: registry.nlark.com/webidl-conversions/6.1.0 - whatwg-encoding: registry.npmmirror.com/whatwg-encoding/1.0.5 - whatwg-mimetype: registry.npmmirror.com/whatwg-mimetype/2.3.0 - whatwg-url: registry.npmmirror.com/whatwg-url/9.1.0 - ws: registry.npmmirror.com/ws/8.2.3 - xml-name-validator: registry.npmmirror.com/xml-name-validator/3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} dev: true - registry.npmmirror.com/lilconfig/2.0.4: - resolution: {integrity: sha1-9FB9BD1wWLOAtqj1y3vNSzTO4II=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lilconfig/download/lilconfig-2.0.4.tgz} - name: lilconfig - version: 2.0.4 - engines: {node: '>=10'} + /string-hash@1.1.3: + resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} dev: true - registry.npmmirror.com/loader-utils/1.4.0: - resolution: {integrity: sha1-xXm140yzSxp07cbB+za/o3HVphM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636696843043&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz} - name: loader-utils - version: 1.4.0 - engines: {node: '>=4.0.0'} + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: - big.js: registry.nlark.com/big.js/5.2.2 - emojis-list: registry.nlark.com/emojis-list/3.0.0 - json5: registry.nlark.com/json5/1.0.1 + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 dev: true - registry.npmmirror.com/lodash.camelcase/4.3.0: - resolution: {integrity: sha1-soqmKIorn8ZRA1x3EfZathkDMaY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz} - name: lodash.camelcase - version: 4.3.0 + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 + dev: true + + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - registry.npmmirror.com/makeerror/1.0.12: - resolution: {integrity: sha1-Pl3SB5qC6BLpg8xmEMSiyw6qgBo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/makeerror/download/makeerror-1.0.12.tgz} - name: makeerror - version: 1.0.12 + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: - tmpl: registry.nlark.com/tmpl/1.0.5 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 dev: true - registry.npmmirror.com/mime-db/1.51.0: - resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-db/download/mime-db-1.51.0.tgz} - name: mime-db - version: 1.51.0 - engines: {node: '>= 0.6'} + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 dev: true - registry.npmmirror.com/mime-types/2.1.34: - resolution: {integrity: sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-types/download/mime-types-2.1.34.tgz} - name: mime-types - version: 2.1.34 - engines: {node: '>= 0.6'} + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: - mime-db: registry.npmmirror.com/mime-db/1.51.0 + safe-buffer: 5.1.2 dev: true - registry.npmmirror.com/ms/2.0.0: - resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz} - name: ms - version: 2.0.0 + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 dev: true - registry.npmmirror.com/ms/2.1.2: - resolution: {integrity: sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz} - name: ms - version: 2.1.2 + /stringstream@0.0.6: + resolution: {integrity: sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==} + requiresBuild: true dev: true + optional: true - registry.npmmirror.com/nanoid/3.1.30: - resolution: {integrity: sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz} - name: nanoid - version: 3.1.30 - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 dev: true - registry.npmmirror.com/node-releases/2.0.1: - resolution: {integrity: sha1-PR05XyBPHy8ppUNYuftnh2WtL8U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-releases/download/node-releases-2.0.1.tgz} - name: node-releases - version: 2.0.1 + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} dev: true - registry.npmmirror.com/npm-run-path/4.0.1: - resolution: {integrity: sha1-t+zR5e1T2o43pV4cImnguX7XSOo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/download/npm-run-path-4.0.1.tgz} - name: npm-run-path - version: 4.0.1 + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - dependencies: - path-key: registry.nlark.com/path-key/3.1.1 dev: true - registry.npmmirror.com/p-timeout/3.2.0: - resolution: {integrity: sha1-x+F6vJcdKnli74NiazXWNazyPf4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-timeout/download/p-timeout-3.2.0.tgz} - name: p-timeout - version: 3.2.0 - engines: {node: '>=8'} - dependencies: - p-finally: registry.nlark.com/p-finally/1.0.0 + /style-inject@0.3.0: + resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} dev: true - registry.npmmirror.com/p-try/1.0.0: - resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz} - name: p-try - version: 1.0.0 - engines: {node: '>=4'} + /stylehacks@5.1.1(postcss@8.3.11): + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.23.0 + postcss: 8.3.11 + postcss-selector-parser: 6.0.16 dev: true - registry.npmmirror.com/p-try/2.2.0: - resolution: {integrity: sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-try/download/p-try-2.2.0.tgz} - name: p-try - version: 2.2.0 - engines: {node: '>=6'} + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 dev: true - registry.npmmirror.com/parent-module/1.0.1: - resolution: {integrity: sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz} - name: parent-module - version: 1.0.1 - engines: {node: '>=6'} + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: - callsites: registry.nlark.com/callsites/3.1.0 + has-flag: 4.0.0 dev: true - registry.npmmirror.com/parse-json/2.2.0: - resolution: {integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-json/download/parse-json-2.2.0.tgz?cache=0&sync_timestamp=1636945316673&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz} - name: parse-json - version: 2.2.0 - engines: {node: '>=0.10.0'} + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: - error-ex: registry.nlark.com/error-ex/1.3.2 + has-flag: 4.0.0 dev: true - registry.npmmirror.com/picocolors/1.0.0: - resolution: {integrity: sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/download/picocolors-1.0.0.tgz} - name: picocolors - version: 1.0.0 + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} dev: true - registry.npmmirror.com/pkg-dir/4.2.0: - resolution: {integrity: sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pkg-dir/download/pkg-dir-4.2.0.tgz} - name: pkg-dir - version: 4.2.0 - engines: {node: '>=8'} + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true dependencies: - find-up: registry.npmmirror.com/find-up/4.1.0 + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.0 + stable: 0.1.8 dev: true - registry.npmmirror.com/postcss-colormin/5.2.1_postcss@8.3.11: - resolution: {integrity: sha1-bkRKgG/TxXiCfbrQInYt8ZM0QU0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-colormin/download/postcss-colormin-5.2.1.tgz} - id: registry.npmmirror.com/postcss-colormin/5.2.1 - name: postcss-colormin - version: 5.2.1 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /table@6.8.2: + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} + engines: {node: '>=10.0.0'} dependencies: - browserslist: registry.npmmirror.com/browserslist/4.18.1 - caniuse-api: registry.nlark.com/caniuse-api/3.0.0 - colord: registry.npmmirror.com/colord/2.9.1 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + ajv: 8.13.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 dev: true - registry.npmmirror.com/postcss-convert-values/5.0.2_postcss@8.3.11: - resolution: {integrity: sha1-h5uEncNnfH1ryUtqLBo/CAh5gFk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-convert-values/download/postcss-convert-values-5.0.2.tgz} - id: registry.npmmirror.com/postcss-convert-values/5.0.2 - name: postcss-convert-values - version: 5.0.2 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} dev: true - registry.npmmirror.com/postcss-load-config/3.1.0: - resolution: {integrity: sha1-05xHCRxK7Df1AnI3OmpkjvXpeCk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-load-config/download/postcss-load-config-3.1.0.tgz} - name: postcss-load-config - version: 3.1.0 - engines: {node: '>= 10'} + /terser-webpack-plugin@5.3.10(esbuild@0.15.10)(webpack@5.76.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} peerDependencies: - ts-node: '>=9.0.0' + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 peerDependenciesMeta: - ts-node: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: optional: true dependencies: - import-cwd: 3.0.0 - lilconfig: registry.npmmirror.com/lilconfig/2.0.4 - yaml: registry.npmmirror.com/yaml/1.10.2 + '@jridgewell/trace-mapping': 0.3.25 + esbuild: 0.15.10 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.31.0 + webpack: 5.76.0(esbuild@0.15.10) dev: true - registry.npmmirror.com/postcss-merge-longhand/5.0.4_postcss@8.3.11: - resolution: {integrity: sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-merge-longhand/download/postcss-merge-longhand-5.0.4.tgz} - id: registry.npmmirror.com/postcss-merge-longhand/5.0.4 - name: postcss-merge-longhand - version: 5.0.4 - engines: {node: ^10 || ^12 || >=14.0} + /terser-webpack-plugin@5.3.10(esbuild@0.15.10)(webpack@5.91.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} peerDependencies: - postcss: ^8.2.15 + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 - stylehacks: registry.nlark.com/stylehacks/5.0.1_postcss@8.3.11 + '@jridgewell/trace-mapping': 0.3.25 + esbuild: 0.15.10 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.31.0 + webpack: 5.91.0(esbuild@0.15.10) dev: true - registry.npmmirror.com/postcss-merge-rules/5.0.3_postcss@8.3.11: - resolution: {integrity: sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-merge-rules/download/postcss-merge-rules-5.0.3.tgz} - id: registry.npmmirror.com/postcss-merge-rules/5.0.3 - name: postcss-merge-rules - version: 5.0.3 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /terser@5.31.0: + resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} + engines: {node: '>=10'} + hasBin: true dependencies: - browserslist: registry.npmmirror.com/browserslist/4.18.1 - caniuse-api: registry.nlark.com/caniuse-api/3.0.0 - cssnano-utils: registry.npmmirror.com/cssnano-utils/2.0.1_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 + '@jridgewell/source-map': 0.3.6 + acorn: 8.11.3 + commander: 2.20.3 + source-map-support: 0.5.21 dev: true - registry.npmmirror.com/postcss-minify-gradients/5.0.3_postcss@8.3.11: - resolution: {integrity: sha1-+XChHMceCOkJXnjsOms0uRwZVQ4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-minify-gradients/download/postcss-minify-gradients-5.0.3.tgz} - id: registry.npmmirror.com/postcss-minify-gradients/5.0.3 - name: postcss-minify-gradients - version: 5.0.3 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - colord: registry.npmmirror.com/colord/2.9.1 - cssnano-utils: registry.npmmirror.com/cssnano-utils/2.0.1_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - registry.npmmirror.com/postcss-minify-params/5.0.2_postcss@8.3.11: - resolution: {integrity: sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-minify-params/download/postcss-minify-params-5.0.2.tgz} - id: registry.npmmirror.com/postcss-minify-params/5.0.2 - name: postcss-minify-params - version: 5.0.2 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - alphanum-sort: registry.nlark.com/alphanum-sort/1.0.2 - browserslist: registry.npmmirror.com/browserslist/4.18.1 - cssnano-utils: registry.npmmirror.com/cssnano-utils/2.0.1_postcss@8.3.11 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + /thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: true - registry.npmmirror.com/postcss-normalize-url/5.0.3_postcss@8.3.11: - resolution: {integrity: sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-normalize-url/download/postcss-normalize-url-5.0.3.tgz} - id: registry.npmmirror.com/postcss-normalize-url/5.0.3 - name: postcss-normalize-url - version: 5.0.3 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: - is-absolute-url: registry.nlark.com/is-absolute-url/3.0.3 - normalize-url: registry.nlark.com/normalize-url/6.1.0 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 + is-number: 7.0.0 dev: true - registry.npmmirror.com/postcss-svgo/5.0.3_postcss@8.3.11: - resolution: {integrity: sha1-2UUYV1bl36rgf57bDTyuf/efmzA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-svgo/download/postcss-svgo-5.0.3.tgz} - id: registry.npmmirror.com/postcss-svgo/5.0.3 - name: postcss-svgo - version: 5.0.3 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-value-parser: registry.nlark.com/postcss-value-parser/4.1.0 - svgo: registry.npmmirror.com/svgo/2.8.0 + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} dev: true - registry.npmmirror.com/postcss-unique-selectors/5.0.2_postcss@8.3.11: - resolution: {integrity: sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-unique-selectors/download/postcss-unique-selectors-5.0.2.tgz} - id: registry.npmmirror.com/postcss-unique-selectors/5.0.2 - name: postcss-unique-selectors - version: 5.0.2 - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - alphanum-sort: registry.nlark.com/alphanum-sort/1.0.2 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-selector-parser: registry.nlark.com/postcss-selector-parser/6.0.6 + /totalist@1.1.0: + resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} + engines: {node: '>=6'} dev: true - registry.npmmirror.com/postcss/8.3.11: - resolution: {integrity: sha1-w77KfqgRzV4cSj7G0udZnvH4+Fg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/download/postcss-8.3.11.tgz} - name: postcss - version: 8.3.11 - engines: {node: ^10 || ^12 || >=14} + /tough-cookie@2.3.4: + resolution: {integrity: sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==} + engines: {node: '>=0.8'} + requiresBuild: true dependencies: - nanoid: registry.npmmirror.com/nanoid/3.1.30 - picocolors: registry.npmmirror.com/picocolors/1.0.0 - source-map-js: registry.npmmirror.com/source-map-js/0.6.2 + punycode: 1.4.1 dev: true + optional: true - registry.npmmirror.com/pretty-format/27.3.1: - resolution: {integrity: sha1-fpSGNlzN1KUCBh+nYdOrnKG3jfU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pretty-format/download/pretty-format-27.3.1.tgz} - name: pretty-format - version: 27.3.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /ts-node@10.9.1(@types/node@20.8.0)(typescript@4.6.2): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true dependencies: - '@jest/types': registry.npmmirror.com/@jest/types/27.2.5 - ansi-regex: registry.nlark.com/ansi-regex/5.0.1 - ansi-styles: registry.nlark.com/ansi-styles/5.2.0 - react-is: registry.npmmirror.com/react-is/17.0.2 + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.8.0 + acorn: 8.11.3 + acorn-walk: 8.3.2 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.6.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 dev: true - registry.npmmirror.com/promise.series/0.2.0: - resolution: {integrity: sha1-LMfr6Vn8OmYZwEq029yeRS2GS70=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/promise.series/download/promise.series-0.2.0.tgz} - name: promise.series - version: 0.2.0 - engines: {node: '>=0.12'} + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - registry.npmmirror.com/prompts/2.4.2: - resolution: {integrity: sha1-e1fnOzpIAprRDr1E90sBcipMsGk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prompts/download/prompts-2.4.2.tgz} - name: prompts - version: 2.4.2 + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + /tsutils@3.21.0(typescript@4.6.2): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: - kleur: registry.nlark.com/kleur/3.0.3 - sisteransi: registry.nlark.com/sisteransi/1.0.5 + tslib: 1.14.1 + typescript: 4.6.2 dev: true - registry.npmmirror.com/randomatic/3.1.1: - resolution: {integrity: sha1-t3bvxZN1mE42xTey9RofCv8Noe0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/randomatic/download/randomatic-3.1.1.tgz} - name: randomatic - version: 3.1.1 - engines: {node: '>= 0.10.0'} + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + requiresBuild: true dependencies: - is-number: registry.nlark.com/is-number/4.0.0 - kind-of: registry.nlark.com/kind-of/6.0.3 - math-random: registry.nlark.com/math-random/1.0.4 + safe-buffer: 5.2.1 dev: true + optional: true - registry.npmmirror.com/react-is/17.0.2: - resolution: {integrity: sha1-5pHUqOnHiTZWVVOas3J2Kw77VPA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/download/react-is-17.0.2.tgz} - name: react-is - version: 17.0.2 + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + requiresBuild: true dev: true + optional: true - registry.npmmirror.com/read-pkg-up/1.0.1: - resolution: {integrity: sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/read-pkg-up/download/read-pkg-up-1.0.1.tgz} - name: read-pkg-up - version: 1.0.1 - engines: {node: '>=0.10.0'} + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: - find-up: registry.npmmirror.com/find-up/1.1.2 - read-pkg: registry.nlark.com/read-pkg/1.1.0 + prelude-ls: 1.2.1 dev: true - registry.npmmirror.com/regjsgen/0.5.2: - resolution: {integrity: sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regjsgen/download/regjsgen-0.5.2.tgz} - name: regjsgen - version: 0.5.2 - dev: true - - registry.npmmirror.com/resolve.exports/1.1.0: - resolution: {integrity: sha1-XOhCuUsFFGwOAwdphdHQ5+SMkMk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve.exports/download/resolve.exports-1.1.0.tgz} - name: resolve.exports - version: 1.1.0 + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true - registry.npmmirror.com/rollup-plugin-babel/4.4.0_@babel+core@7.16.0+rollup@2.60.0: - resolution: {integrity: sha1-0VvSWUZqnRrMvbL+L/8XxS0DCss=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-babel/download/rollup-plugin-babel-4.4.0.tgz?cache=0&sync_timestamp=1637286211186&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frollup-plugin-babel%2Fdownload%2Frollup-plugin-babel-4.4.0.tgz} - id: registry.npmmirror.com/rollup-plugin-babel/4.4.0 - name: rollup-plugin-babel - version: 4.4.0 - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel. - peerDependencies: - '@babel/core': 7 || ^7.0.0-rc.2 - rollup: '>=0.60.0 <3' + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.16.0 - rollup: registry.npmmirror.com/rollup/2.60.0 - rollup-pluginutils: registry.nlark.com/rollup-pluginutils/2.8.2 + media-typer: 0.3.0 + mime-types: 2.1.35 dev: true - registry.npmmirror.com/rollup-plugin-postcss/4.0.1_postcss@8.3.11: - resolution: {integrity: sha1-KFZGW2N+wCUTZ2ZZqr8co4QPOvA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-postcss/download/rollup-plugin-postcss-4.0.1.tgz} - id: registry.npmmirror.com/rollup-plugin-postcss/4.0.1 - name: rollup-plugin-postcss - version: 4.0.1 - engines: {node: '>=10'} - peerDependencies: - postcss: 8.x + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} dependencies: - chalk: registry.nlark.com/chalk/4.1.2 - concat-with-sourcemaps: registry.npmmirror.com/concat-with-sourcemaps/1.1.0 - cssnano: registry.npmmirror.com/cssnano/5.0.11_postcss@8.3.11 - import-cwd: 3.0.0 - p-queue: registry.nlark.com/p-queue/6.6.2 - pify: registry.nlark.com/pify/5.0.0 - postcss: registry.npmmirror.com/postcss/8.3.11 - postcss-load-config: registry.npmmirror.com/postcss-load-config/3.1.0 - postcss-modules: registry.nlark.com/postcss-modules/4.2.2_postcss@8.3.11 - promise.series: registry.npmmirror.com/promise.series/0.2.0 - resolve: registry.nlark.com/resolve/1.20.0 - rollup-pluginutils: registry.nlark.com/rollup-pluginutils/2.8.2 - safe-identifier: registry.npmmirror.com/safe-identifier/0.4.2 - style-inject: registry.npmmirror.com/style-inject/0.3.0 - transitivePeerDependencies: - - ts-node + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 dev: true - registry.npmmirror.com/rollup-plugin-typescript2/0.30.0_rollup@2.60.0+typescript@4.5.2: - resolution: {integrity: sha1-HMmawjCb9LnQo+vbwgAq7NVgg9M=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-typescript2/download/rollup-plugin-typescript2-0.30.0.tgz} - id: registry.npmmirror.com/rollup-plugin-typescript2/0.30.0 - name: rollup-plugin-typescript2 - version: 0.30.0 - peerDependencies: - rollup: '>=1.26.3' - typescript: '>=2.4.0' - dependencies: - '@rollup/pluginutils': registry.nlark.com/@rollup/pluginutils/4.1.1 - find-cache-dir: registry.nlark.com/find-cache-dir/3.3.2 - fs-extra: registry.nlark.com/fs-extra/8.1.0 - resolve: registry.nlark.com/resolve/1.20.0 - rollup: registry.npmmirror.com/rollup/2.60.0 - tslib: registry.nlark.com/tslib/2.1.0 - typescript: registry.npmmirror.com/typescript/4.5.2 - dev: true - - registry.npmmirror.com/rollup-plugin-userscript-metablock/0.3.1: - resolution: {integrity: sha1-BzM6jd36NLKXvSjtDVQnrzT7BCQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-userscript-metablock/download/rollup-plugin-userscript-metablock-0.3.1.tgz} - name: rollup-plugin-userscript-metablock - version: 0.3.1 - dependencies: - chalk: registry.nlark.com/chalk/4.1.2 - debug: registry.npmmirror.com/debug/4.3.2 - js-yaml: registry.nlark.com/js-yaml/4.1.0 - magic-string: registry.nlark.com/magic-string/0.25.7 - semver: registry.nlark.com/semver/7.3.5 - valid-url: registry.npmmirror.com/valid-url/1.0.9 - transitivePeerDependencies: - - supports-color + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 dev: true - registry.npmmirror.com/rollup/2.60.0: - resolution: {integrity: sha512-cHdv9GWd58v58rdseC8e8XIaPUo8a9cgZpnCMMDGZFDZKEODOiPPEQFXLriWr/TjXzhPPmG5bkAztPsOARIcGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/download/rollup-2.60.0.tgz} - name: rollup - version: 2.60.0 - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents/2.3.2 + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 dev: true - registry.npmmirror.com/safe-identifier/0.4.2: - resolution: {integrity: sha1-z2v8oxwol8WICS0XUNMO9QHVn8s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-identifier/download/safe-identifier-0.4.2.tgz} - name: safe-identifier - version: 0.4.2 + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 dev: true - registry.npmmirror.com/saxes/5.0.1: - resolution: {integrity: sha1-7rq5U/o7dgjb6U5drbFciI+maW0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/saxes/download/saxes-5.0.1.tgz} - name: saxes - version: 5.0.1 - engines: {node: '>=10'} - dependencies: - xmlchars: registry.nlark.com/xmlchars/2.2.0 + /typescript@4.6.2: + resolution: {integrity: sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==} + engines: {node: '>=4.2.0'} + hasBin: true dev: true - registry.npmmirror.com/signal-exit/3.0.6: - resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/signal-exit/download/signal-exit-3.0.6.tgz?cache=0&sync_timestamp=1637284186155&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.6.tgz} - name: signal-exit - version: 3.0.6 + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 dev: true - registry.npmmirror.com/source-map-js/0.6.2: - resolution: {integrity: sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/download/source-map-js-0.6.2.tgz} - name: source-map-js - version: 0.6.2 - engines: {node: '>=0.10.0'} + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} dev: true - registry.npmmirror.com/source-map-support/0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-support/download/source-map-support-0.5.21.tgz?cache=0&sync_timestamp=1637334484309&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.21.tgz} - name: source-map-support - version: 0.5.21 + /update-browserslist-db@1.0.15(browserslist@4.23.0): + resolution: {integrity: sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: - buffer-from: registry.nlark.com/buffer-from/1.1.2 - source-map: registry.nlark.com/source-map/0.6.1 + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.0 dev: true - registry.npmmirror.com/spdx-license-ids/3.0.11: - resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-license-ids/download/spdx-license-ids-3.0.11.tgz} - name: spdx-license-ids - version: 3.0.11 + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 dev: true - registry.npmmirror.com/stable/0.1.8: - resolution: {integrity: sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stable/download/stable-0.1.8.tgz} - name: stable - version: 0.1.8 - dev: true + /use-callback-ref@1.3.2(@types/react@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 17.0.2 + react: 17.0.2 + tslib: 2.6.2 + dev: false - registry.npmmirror.com/stack-utils/2.0.5: - resolution: {integrity: sha1-0lJl/KmVFUZZ27+6O0klR3jS/dU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stack-utils/download/stack-utils-2.0.5.tgz} - name: stack-utils - version: 2.0.5 + /use-sidecar@1.1.2(@types/react@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - escape-string-regexp: registry.nlark.com/escape-string-regexp/2.0.0 + '@types/react': 17.0.2 + detect-node-es: 1.1.0 + react: 17.0.2 + tslib: 2.6.2 + dev: false + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - registry.npmmirror.com/string-width/4.2.3: - resolution: {integrity: sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz} - name: string-width - version: 4.2.3 - engines: {node: '>=8'} + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} dependencies: - emoji-regex: registry.npmmirror.com/emoji-regex/8.0.0 - is-fullwidth-code-point: registry.nlark.com/is-fullwidth-code-point/3.0.0 - strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 dev: true - registry.npmmirror.com/strip-ansi/3.0.1: - resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz} - name: strip-ansi - version: 3.0.1 - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: registry.nlark.com/ansi-regex/2.1.1 + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} dev: true - registry.npmmirror.com/strip-ansi/6.0.1: - resolution: {integrity: sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz} - name: strip-ansi - version: 6.0.1 - engines: {node: '>=8'} - dependencies: - ansi-regex: registry.nlark.com/ansi-regex/5.0.1 + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + requiresBuild: true dev: true + optional: true - registry.npmmirror.com/style-inject/0.3.0: - resolution: {integrity: sha1-0hxHev/skYEcyCNVgypwDSK/jdM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-inject/download/style-inject-0.3.0.tgz} - name: style-inject - version: 0.3.0 + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true dev: true - registry.npmmirror.com/supports-color/2.0.0: - resolution: {integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/download/supports-color-2.0.0.tgz} - name: supports-color - version: 2.0.0 - engines: {node: '>=0.8.0'} + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - registry.npmmirror.com/supports-color/5.5.0: - resolution: {integrity: sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/download/supports-color-5.5.0.tgz} - name: supports-color - version: 5.5.0 - engines: {node: '>=4'} - dependencies: - has-flag: registry.nlark.com/has-flag/3.0.0 + /v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} dev: true - registry.npmmirror.com/supports-color/7.2.0: - resolution: {integrity: sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz} - name: supports-color - version: 7.2.0 - engines: {node: '>=8'} - dependencies: - has-flag: registry.nlark.com/has-flag/4.0.0 + /valid-url@1.0.9: + resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} dev: true - registry.npmmirror.com/supports-color/8.1.1: - resolution: {integrity: sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/download/supports-color-8.1.1.tgz} - name: supports-color - version: 8.1.1 - engines: {node: '>=10'} + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + requiresBuild: true dependencies: - has-flag: registry.nlark.com/has-flag/4.0.0 + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 dev: true + optional: true - registry.npmmirror.com/svgo/2.8.0: - resolution: {integrity: sha1-T/gMzmcQ3CeV8MfHQQHmdkz8zSQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgo/download/svgo-2.8.0.tgz} - name: svgo - version: 2.8.0 + /watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} engines: {node: '>=10.13.0'} - hasBin: true dependencies: - '@trysound/sax': registry.npmmirror.com/@trysound/sax/0.2.0 - commander: registry.npmmirror.com/commander/7.2.0 - css-select: registry.nlark.com/css-select/4.1.3 - css-tree: registry.nlark.com/css-tree/1.1.3 - csso: registry.nlark.com/csso/4.2.0 - picocolors: registry.npmmirror.com/picocolors/1.0.0 - stable: registry.npmmirror.com/stable/0.1.8 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 dev: true - registry.npmmirror.com/table/6.7.3: - resolution: {integrity: sha1-JVOIQ5cVpzg5G9LuTLyomk0Fqbc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/table/download/table-6.7.3.tgz} - name: table - version: 6.7.3 - engines: {node: '>=10.0.0'} + /wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} dependencies: - ajv: registry.npmmirror.com/ajv/8.8.1 - lodash.truncate: 4.4.2 - slice-ansi: registry.nlark.com/slice-ansi/4.0.0 - string-width: registry.npmmirror.com/string-width/4.2.3 - strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + minimalistic-assert: 1.0.1 dev: true - registry.npmmirror.com/tr46/2.1.0: - resolution: {integrity: sha1-+oeqgcpdWUHajL8fm3SdyWmk4kA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tr46/download/tr46-2.1.0.tgz} - name: tr46 - version: 2.1.0 - engines: {node: '>=8'} + /webpack-bundle-analyzer@4.6.1: + resolution: {integrity: sha512-oKz9Oz9j3rUciLNfpGFjOb49/jEpXNmWdVH8Ls//zNcnLlQdTGXQQMsBbb/gR7Zl8WNLxVCq+0Hqbx3zv6twBw==} + engines: {node: '>= 10.13.0'} + hasBin: true dependencies: - punycode: registry.nlark.com/punycode/2.1.1 + acorn: 8.11.3 + acorn-walk: 8.3.2 + chalk: 4.1.2 + commander: 7.2.0 + gzip-size: 6.0.0 + lodash: 4.17.21 + opener: 1.5.2 + sirv: 1.0.19 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate dev: true - registry.npmmirror.com/tr46/3.0.0: - resolution: {integrity: sha1-VVxOKXqVBhfo7t3vYzyH1NnWy/k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tr46/download/tr46-3.0.0.tgz} - name: tr46 - version: 3.0.0 - engines: {node: '>=12'} + /webpack-dev-middleware@5.3.4(webpack@5.76.0): + resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 dependencies: - punycode: registry.nlark.com/punycode/2.1.1 + colorette: 2.0.19 + memfs: 3.5.3 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.2.0 + webpack: 5.76.0(esbuild@0.15.10) dev: true - registry.npmmirror.com/trim-right/1.0.1: - resolution: {integrity: sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trim-right/download/trim-right-1.0.1.tgz} - name: trim-right - version: 1.0.1 - engines: {node: '>=0.10.0'} + /webpack-dev-middleware@6.0.2(webpack@5.76.0): + resolution: {integrity: sha512-iOddiJzPcQC6lwOIu60vscbGWth8PCRcWRCwoQcTQf9RMoOWBHg5EyzpGdtSmGMrSPd5vHEfFXmVErQEmkRngQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + dependencies: + colorette: 2.0.19 + memfs: 3.5.3 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.2.0 + webpack: 5.76.0(esbuild@0.15.10) dev: true - registry.npmmirror.com/ts-jest/27.0.7_9c352fe8ccc2be965804f3cbe24c9cac: - resolution: {integrity: sha1-+3yMjLVSarNxvBsj0G50VlLMotA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-jest/download/ts-jest-27.0.7.tgz} - id: registry.npmmirror.com/ts-jest/27.0.7 - name: ts-jest - version: 27.0.7 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /webpack-dev-server@4.13.1(webpack@5.76.0): + resolution: {integrity: sha512-5tWg00bnWbYgkN+pd5yISQKDejRBYGEw15RaEEslH+zdbNDxxaZvEAO2WulaSaFKb5n3YG8JXsGaDsut1D0xdA==} + engines: {node: '>= 12.13.0'} hasBin: true peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@types/jest': ^27.0.0 - babel-jest: '>=27.0.0 <28' - jest: ^27.0.0 - typescript: '>=3.8 <5.0' + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' peerDependenciesMeta: - '@babel/core': + webpack: optional: true - '@types/jest': - optional: true - babel-jest: + webpack-cli: optional: true dependencies: - '@babel/core': registry.npmmirror.com/@babel/core/7.16.0 - babel-jest: registry.npmmirror.com/babel-jest/23.6.0_babel-core@7.0.0-bridge.0 - bs-logger: registry.npmmirror.com/bs-logger/0.2.6 - fast-json-stable-stringify: registry.nlark.com/fast-json-stable-stringify/2.1.0 - jest: registry.npmmirror.com/jest/27.3.1 - jest-util: registry.npmmirror.com/jest-util/27.3.1 - json5: registry.nlark.com/json5/2.2.0 - lodash.memoize: registry.nlark.com/lodash.memoize/4.1.2 - make-error: registry.nlark.com/make-error/1.3.6 - semver: registry.nlark.com/semver/7.3.5 - typescript: registry.npmmirror.com/typescript/4.5.2 - yargs-parser: registry.npmmirror.com/yargs-parser/20.2.9 - dev: true - - registry.npmmirror.com/type-fest/0.20.2: - resolution: {integrity: sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz} - name: type-fest - version: 0.20.2 - engines: {node: '>=10'} + '@types/bonjour': 3.5.13 + '@types/connect-history-api-fallback': 1.5.4 + '@types/express': 4.17.21 + '@types/serve-index': 1.9.4 + '@types/serve-static': 1.15.7 + '@types/sockjs': 0.3.36 + '@types/ws': 8.5.10 + ansi-html-community: 0.0.8 + bonjour-service: 1.2.1 + chokidar: 3.6.0 + colorette: 2.0.19 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.1 + graceful-fs: 4.2.11 + html-entities: 2.5.2 + http-proxy-middleware: 2.0.6(@types/express@4.17.21) + ipaddr.js: 2.2.0 + launch-editor: 2.6.1 + open: 8.4.2 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.2.0 + selfsigned: 2.4.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.76.0(esbuild@0.15.10) + webpack-dev-middleware: 5.3.4(webpack@5.76.0) + ws: 8.17.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate dev: true - registry.npmmirror.com/type-fest/0.21.3: - resolution: {integrity: sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/download/type-fest-0.21.3.tgz} - name: type-fest - version: 0.21.3 - engines: {node: '>=10'} + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} dev: true - registry.npmmirror.com/typescript/4.5.2: - resolution: {integrity: sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typescript/download/typescript-4.5.2.tgz} - name: typescript - version: 4.5.2 - engines: {node: '>=4.2.0'} + /webpack@5.76.0(esbuild@0.15.10): + resolution: {integrity: sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==} + engines: {node: '>=10.13.0'} hasBin: true - dev: true - - registry.npmmirror.com/v8-to-istanbul/8.1.0: - resolution: {integrity: sha1-Cut2OJTxoKFnat+Ki3YSo4kCRGw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8-to-istanbul/download/v8-to-istanbul-8.1.0.tgz} - name: v8-to-istanbul - version: 8.1.0 - engines: {node: '>=10.12.0'} + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true dependencies: - '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.3 - convert-source-map: registry.nlark.com/convert-source-map/1.8.0 - source-map: registry.nlark.com/source-map/0.7.3 + '@types/eslint-scope': 3.7.7 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + browserslist: 4.23.0 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.16.1 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(esbuild@0.15.10)(webpack@5.76.0) + watchpack: 2.4.1 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js dev: true - registry.npmmirror.com/valid-url/1.0.9: - resolution: {integrity: sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/valid-url/download/valid-url-1.0.9.tgz} - name: valid-url - version: 1.0.9 + /webpack@5.91.0(esbuild@0.15.10): + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + browserslist: 4.23.0 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.16.1 + es-module-lexer: 1.5.2 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(esbuild@0.15.10)(webpack@5.91.0) + watchpack: 2.4.1 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js dev: true - registry.npmmirror.com/w3c-xmlserializer/2.0.0: - resolution: {integrity: sha1-PnEEoFt1FGzGD1ZDgLf2g6zxAgo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/w3c-xmlserializer/download/w3c-xmlserializer-2.0.0.tgz} - name: w3c-xmlserializer - version: 2.0.0 - engines: {node: '>=10'} + /websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} dependencies: - xml-name-validator: registry.npmmirror.com/xml-name-validator/3.0.0 + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 dev: true - registry.npmmirror.com/walker/1.0.8: - resolution: {integrity: sha1-vUmNtHev5XPcBBhfAR06uKjXZT8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/walker/download/walker-1.0.8.tgz} - name: walker - version: 1.0.8 - dependencies: - makeerror: registry.npmmirror.com/makeerror/1.0.12 + /websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} dev: true - registry.npmmirror.com/whatwg-encoding/1.0.5: - resolution: {integrity: sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz} - name: whatwg-encoding - version: 1.0.5 + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: - iconv-lite: registry.npmmirror.com/iconv-lite/0.4.24 + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 dev: true - registry.npmmirror.com/whatwg-mimetype/2.3.0: - resolution: {integrity: sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz} - name: whatwg-mimetype - version: 2.3.0 + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 dev: true - registry.npmmirror.com/whatwg-mimetype/3.0.0: - resolution: {integrity: sha1-X6GnYjhn/xr2yj3HKta4pCCL66c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/whatwg-mimetype/download/whatwg-mimetype-3.0.0.tgz} - name: whatwg-mimetype - version: 3.0.0 - engines: {node: '>=12'} + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 dev: true - registry.npmmirror.com/whatwg-url/10.0.0: - resolution: {integrity: sha1-NyZPcgtXW0oxG9QJTtjHYMqqBdo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/whatwg-url/download/whatwg-url-10.0.0.tgz} - name: whatwg-url - version: 10.0.0 - engines: {node: '>=12'} - dependencies: - tr46: registry.npmmirror.com/tr46/3.0.0 - webidl-conversions: registry.nlark.com/webidl-conversions/7.0.0 + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} dev: true - registry.npmmirror.com/whatwg-url/8.7.0: - resolution: {integrity: sha1-ZWp45RD/jzk3vAvL6fXArDWUG3c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/whatwg-url/download/whatwg-url-8.7.0.tgz} - name: whatwg-url - version: 8.7.0 + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: - lodash: 4.17.21 - tr46: registry.npmmirror.com/tr46/2.1.0 - webidl-conversions: registry.nlark.com/webidl-conversions/6.1.0 + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 dev: true - registry.npmmirror.com/whatwg-url/9.1.0: - resolution: {integrity: sha1-GxEs8jfXLNZPp4grnD9iNKHDBQ0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/whatwg-url/download/whatwg-url-9.1.0.tgz} - name: whatwg-url - version: 9.1.0 - engines: {node: '>=12'} - dependencies: - tr46: registry.npmmirror.com/tr46/2.1.0 - webidl-conversions: registry.nlark.com/webidl-conversions/6.1.0 + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - registry.npmmirror.com/ws/7.5.5: - resolution: {integrity: sha1-i0vEr1GM+r0Ec65PmRRCh7M+uIE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ws/download/ws-7.5.5.tgz} - name: ws - version: 7.5.5 + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7740,10 +6516,21 @@ packages: optional: true dev: true - registry.npmmirror.com/ws/8.2.3: - resolution: {integrity: sha1-Y6VkVtsbBDZ9C3IaC4DK5ti+y7o=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ws/download/ws-8.2.3.tgz} - name: ws - version: 8.2.3 + /ws@8.17.0: + resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /ws@8.8.1: + resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7755,37 +6542,53 @@ packages: optional: true dev: true - registry.npmmirror.com/xml-name-validator/3.0.0: - resolution: {integrity: sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xml-name-validator/download/xml-name-validator-3.0.0.tgz} - name: xml-name-validator - version: 3.0.0 + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} dev: true - registry.npmmirror.com/yaml/1.10.2: - resolution: {integrity: sha1-IwHF/78StGfejaIzOkWeKeeSDks=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yaml/download/yaml-1.10.2.tgz} - name: yaml - version: 1.10.2 + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} dev: true - registry.npmmirror.com/yargs-parser/20.2.9: - resolution: {integrity: sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs-parser/download/yargs-parser-20.2.9.tgz?cache=0&sync_timestamp=1637030996429&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.2.9.tgz} - name: yargs-parser - version: 20.2.9 - engines: {node: '>=10'} + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} dev: true - registry.npmmirror.com/yargs/16.2.0: - resolution: {integrity: sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs/download/yargs-16.2.0.tgz} - name: yargs - version: 16.2.0 - engines: {node: '>=10'} + /yargs@17.6.2: + resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==} + engines: {node: '>=12'} dependencies: - cliui: registry.nlark.com/cliui/7.0.4 - escalade: registry.nlark.com/escalade/3.1.1 + cliui: 8.0.1 + escalade: 3.1.2 get-caller-file: 2.0.5 - require-directory: registry.nlark.com/require-directory/2.1.1 - string-width: registry.npmmirror.com/string-width/4.2.3 - y18n: registry.nlark.com/y18n/5.0.8 - yargs-parser: registry.npmmirror.com/yargs-parser/20.2.9 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /zod-validation-error@1.2.0(zod@3.23.8): + resolution: {integrity: sha512-laJkD/ugwEh8CpuH+xXv5L9Z+RLz3lH8alNxolfaHZJck611OJj97R4Rb+ZqA7WNly2kNtTo4QwjdjXw9scpiw==} + engines: {node: ^14.17 || >=16.0.0} + peerDependencies: + zod: ^3.18.0 + dependencies: + zod: 3.23.8 + dev: true + + /zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..ccdc80c --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - "packages/*" \ No newline at end of file diff --git a/publish-scripts.sh b/publish-scripts.sh new file mode 100755 index 0000000..29d1780 --- /dev/null +++ b/publish-scripts.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -ex + +npx rollup -c +cp ./packages/expansion/expansion.user.js ./dist/expansion.user.js +cp ./packages/captcha/captcha.user.js ./dist/captcha.user.js +cp ./packages/completion/completion.user.js ./dist/completion.user.js +cp ./README.md ./dist/README.md diff --git a/rollup.config.js b/rollup.config.js index 967137e..c1f741b 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,101 +1,119 @@ import postcss from "rollup-plugin-postcss"; -import babel from "rollup-plugin-babel"; -// import { uglify } from "rollup-plugin-uglify"; +import esbuild from "rollup-plugin-esbuild"; import metablock from "rollup-plugin-userscript-metablock"; -import ts from "rollup-plugin-typescript2"; import path from "path"; +import replace from "@rollup/plugin-replace"; -const config = { - postcss: { - minimize: true, - extensions: [".css"], - }, - babel: { - exclude: ["node_modules/**"], - presets: [ - [ - "@babel/env", - { - modules: false, - targets: "last 2 versions, ie > 10", - }, - ], - ], - }, +const buildConfig = { + replace: { + "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV), + "process.env.CHANNEL": JSON.stringify(process.env.CHANNEL), + "preventAssignment": true, + }, + postcss: { + minimize: true, + extensions: [".css"], + }, + esbuild: { + exclude: [/node_modules/], + sourceMap: false, + target: "es2015", + minify: false, + charset: "utf8", + tsconfig: path.resolve(__dirname, "tsconfig.json"), + }, }; -const metas = { - copy: { - input: "./meta/blank.js", - output: { - file: "./dist/meta/copy.meta.js", - format: "es", - name: "copyMetaModule", - }, - plugins: [ - metablock({ - file: "./src/copy/meta.json", - }), - ], +const scriptConfig = [ + { + name: "Copy", + meta: { + input: "./meta/blank.ts", + output: "./dist/meta/copy.meta.js", + metaFile: "./packages/copy/meta.json", }, - siteDirector: { - input: "./meta/blank.js", - output: { - file: "./dist/meta/site-director.meta.js", - format: "es", - name: "copyMetaModule", - }, - plugins: [ - metablock({ - file: "./src/site-director/meta.json", - }), - ], + script: { + input: "./packages/copy/src/index.ts", + output: "./dist/copy.user.js", + injectCss: false, }, -}; - -const scripts = { - copy: { - input: "./src/copy/src/index.ts", - output: { - file: "./dist/copy.js", - format: "iife", - name: "copyModule", - }, - plugins: [ - postcss(config.postcss), - babel(config.babel), - ts({ - tsconfig: path.resolve(__dirname, "./tsconfig.json"), - extensions: [".ts"], - }), - // uglify(), - metablock({ - file: "./src/copy/meta.json", - }), - ], + }, + { + name: "CopyCurrency", + meta: { + input: "./meta/blank.ts", + output: "./dist/meta/copy-currency.meta.js", + metaFile: "./packages/copy-currency/meta.json", }, - siteDirector: { - input: "./src/site-director/src/index.ts", - output: { - file: "./dist/site-director.js", - format: "iife", - name: "linkModule", - }, - plugins: [ - postcss(config.postcss), - babel(config.babel), - ts({ - tsconfig: path.resolve(__dirname, "./tsconfig.json"), - extensions: [".ts"], - }), - // uglify(), - metablock({ - file: "./src/site-director/meta.json", - }), - ], + script: { + input: "./packages/copy-currency/src/index.ts", + output: "./dist/copy-currency.user.js", }, -}; - -export default [...Object.values(metas), ...Object.values(scripts)]; + }, + { + name: "SiteDirector", + meta: { + input: "./meta/blank.ts", + output: "./dist/meta/site-director.meta.js", + metaFile: "./packages/site-director/meta.json", + }, + script: { + input: "./packages/site-director/src/index.ts", + output: "./dist/site-director.user.js", + injectCss: false, + }, + }, + { + name: "WaterMark", + meta: { + input: "./meta/blank.ts", + output: "./dist/meta/water-mark.meta.js", + metaFile: "./packages/water-mark/meta.json", + }, + script: { + input: "./packages/water-mark/src/index.ts", + output: "./dist/water-mark.user.js", + injectCss: false, + }, + }, + { + name: "Devtools", + meta: { + input: "./meta/blank.ts", + output: "./dist/meta/devtools.meta.js", + metaFile: "./packages/devtools/meta.json", + }, + script: { + input: "./packages/devtools/src/index.ts", + output: "./dist/devtools.user.js", + injectCss: false, + }, + }, +]; -// https://segmentfault.com/a/1190000010628352 +export default [ + ...scriptConfig.map(item => ({ + input: item.meta.input, + output: { + file: item.meta.output, + format: "es", + name: item.name + "Meta", + }, + plugins: [metablock({ file: item.meta.metaFile })], + })), + ...scriptConfig.map(item => ({ + input: item.script.input, + output: { + file: item.script.output, + format: "iife", + name: item.name + "Module", + }, + plugins: [ + replace({ ...buildConfig.replace }), + postcss({ ...buildConfig.postcss, inject: item.script.injectCss }), + esbuild(buildConfig.esbuild), + // terser({ format: { comments: true } }), + metablock({ file: item.meta.metaFile }), + ], + })), +]; diff --git a/src/captcha/README.md b/src/captcha/README.md deleted file mode 100644 index 04665b3..0000000 --- a/src/captcha/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Captcha - -强智教务验证码识别 diff --git a/src/captcha/captcha.js b/src/captcha/captcha.js deleted file mode 100644 index 38e3cd2..0000000 --- a/src/captcha/captcha.js +++ /dev/null @@ -1,158 +0,0 @@ -// ==UserScript== -// @name SWVerifyCode -// @namespace http://tampermonkey.net/ -// @version 1.1 -// @description try to take over the world! -// @author Czy -// @match http://jwgl.sdust.edu.cn/jsxsd/ -// @match http://jwgl.sdust.edu.cn/ -// @grant none -// @github https://github.com/WindrunnerMax/SWVerifyCode -// @date 2020/02/18 -// ==/UserScript== - -/** - * 配置账号密码信息(选填) - */ -var username = ""; //账号 -var password = "" ; //密码 -var autologin = false; //自动登录 - - -var height = 22; -var width = 62; -var rgbThres = 150; -var charMap = { - '1' : "111100111110000111110000111111100111111100111111100111111100111111100111111100111111100111110000001110000001", - '2' : "100000111000000011111111001111111001111111001111110011111000111110011111100111111001111111000000001000000001", - '3' : "100000111000000011111110001111111001111110011110000111110000011111110001111111001111110001100000011100000111", - 'b' : "001111111001111111001111111001000011000000001000111000001111100001111100001111100000111000000000001001000011", - 'c' : "111111111111111111111111111110000011100000011000111111001111111001111111001111111000111111100000011110000011", - 'm' : "111111111111111111111111111001000011000000000000111000001111001001111001001111001001111001001111001001111001", - 'n' : "111111111111111111111111111001100001001000000000011100000111100001111100001111100001111100001111100001111100", - 'v' : "111111111111111111111111111111111011001110011001110011001110011100100111100100111100100111110001111110001111", - 'x' : "111111111111111111111111111001110011001110011100100111110001111110001111110001111100100111001110011001110011", - 'z' : "111111111111111111111111111000000011000000011111100111111001111110011111100111111001111111000000011000000011" -}; - - -function binaryImage(ctx){ - let imageData = ctx.getImageData(0, 0, width, height).data; - var imgArr = []; - for(let x=0; x 2) imgArr[i][k] = 1; - } - } - } - return imgArr; -} - -function cutImg(imgArr,arrX,arrY,n){ - var imgArrArr = []; - for(let i=0;i { - vx.forEach((vy) => { - s += vy; - }) - }) - return s; -} - -function comparedText(s1,s2){ - var percent = 0; - var n = s1.length; - for(let i = 0;i { - let maxMatch = 0; - let tempRecord = ""; - for(let char in charMap){ - let percent = comparedText(getString(imgArr),charMap[char]); - if(percent > maxMatch){ - maxMatch = percent; - tempRecord = char; - } - } - record += tempRecord; - }) - return record; -} - -function showImg(imgArr){ - var s = ""; - imgArr.forEach((vx) => { - vx.forEach((vy) => { - s += vy; - }) - s += "\n"; - }) - console.log(s); -} - -function main(){ - var img = document.getElementById("SafeCodeImg"); - const canvas = document.createElement("canvas"); - canvas.width = width; - canvas.height = height; - const ctx = canvas.getContext("2d"); - ctx.drawImage(img, 0, 0); - var imgArr = binaryImage(ctx); - imgArr = removeByLine(imgArr); - var imgArrArr = cutImg(imgArr,[[4, 13], [14, 23], [24, 33], [34, 43]],[[4, 16], [4, 16], [4, 16], [4, 16]],4); - showImg(imgArr); - var result = matchCode(imgArrArr); - console.log("识别为:",result); - document.getElementById("RANDOMCODE").value = result; - document.getElementById("userAccount").value = username; - document.getElementById("userPassword").value = password; - if (autologin) document.getElementById("btnSubmit").click(); -} - -(function() { - 'use strict'; - var img = document.getElementById("SafeCodeImg"); - img.onload = function(){main()}; - img.src = img.src; -})(); \ No newline at end of file diff --git a/src/completion/README.md b/src/completion/README.md deleted file mode 100644 index 58c9aba..0000000 --- a/src/completion/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# completion - -阿里矢量图标库添加`HTTP`按钮 diff --git a/src/completion/completion.js b/src/completion/completion.js deleted file mode 100644 index 1b23051..0000000 --- a/src/completion/completion.js +++ /dev/null @@ -1,36 +0,0 @@ -// ==UserScript== -// @name 阿里图标库CDN添加HTTP按钮 -// @namespace http://tampermonkey.net/ -// @version 1.0 -// @description try to take over the world! -// @author You -// @match https://www.iconfont.cn/manage/*manage_type=myprojects* -// @grant none -// ==/UserScript== - -function addProtocol(){ - var preTags = document.getElementsByTagName("pre"); - var n = preTags.length; - for(let i = 0 ; i < n; ++i) preTags[i].innerText = preTags[i].innerText.replace(/\/\/at.alicdn.com/g,"https://at.alicdn.com"); -} - -(function() { - 'use strict'; - console.log(document.getElementsByClassName("block-bar")); - var btn = document.createElement("div"); - btn.style.position="fixed"; - btn.style.top = "35%"; - btn.style.left = "10px"; - btn.style.background= "#4C98F7"; - btn.style.color = "#fff"; - btn.style.height = "50px"; - btn.style.width = "50px"; - btn.style.cursor = "pointer"; - btn.style['line-height'] = "50px"; - btn.style['text-align'] = "center"; - btn.style['border-radius'] = "50px"; - btn.innerText="HTTP"; - var body = document.getElementsByTagName("body")[0]; - btn.onclick = function(){addProtocol();} - body.appendChild(btn); -})(); \ No newline at end of file diff --git a/src/copy/README.md b/src/copy/README.md deleted file mode 100644 index cca5277..0000000 --- a/src/copy/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# copy - -[文本选中复制](https://greasyfork.org/zh-CN/scripts/405130) diff --git a/src/copy/meta.json b/src/copy/meta.json deleted file mode 100644 index 4ce7dd5..0000000 --- a/src/copy/meta.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "🔥🔥🔥文本选中复制🔥🔥🔥", - "namespace": "https://github.com/WindrunnerMax/TKScript", - "version": "3.1.0", - "description": "解除网站不允许复制的限制,文本选中后点击复制按钮即可复制,主要用于 百度文库 道客巴巴 无忧考网 学习啦 蓬勃范文 思否社区 力扣 知乎 语雀 等", - "author": "Czy", - "include": [ - "*://wenku.baidu.com/view/*", - "*://wenku.baidu.com/share/*", - "*://wenku.baidu.com/link*", - "*://www.51test.net/show/*", - "*://www.xuexi.la/*", - "*://www.xuexila.com/*", - "*://www.cspengbo.com/*", - "*://*.doc88.com/*", - "*://segmentfault.com/*", - "*://wk.baidu.com/view/*", - "*://leetcode-cn.com/problems/*", - "*://www.zhihu.com/*", - "*://z.30edu.com.cn/*", - "*://docs.qq.com/doc/*", - "*://boke112.com/post/*", - "*://www.yuque.com/*", - "*://www.commandlinux.com/*", - "*://*.diyifanwen.com/*", - "*://*.mbalib.com/*", - "*://*.cnitpm.com/*", - "*://bbs.mihoyo.com/ys/obc/*", - "*://*.ruiwen.com/*", - "*://www.uemeds.cn/*", - "*://www.oh100.com/*", - "*://www.aiyuke.com/news/*", - "*://www.fwsir.com/*", - "*://www.wenxm.cn/*", - "*://www.unjs.com/*", - "*://www.ahsrst.cn/*", - "*://*.yjbys.com/*", - "*://*.qidian.com/*", - "*://*.zongheng.com/*", - "*://*.17k.com/*", - "*://*.ciweimao.com/*", - "*://book.qq.com/*", - "*://*.360doc.com/content/*", - "*://*.850500.com/news/*", - "*://utaten.com/lyric/*", - "*://*.jianbiaoku.com/*", - "*://*.kt250.com/*", - "*://www.kejudati.com/*", - "*://*.xiaohongshu.com/discovery/*" - ], - "supportURL": "https://github.com/WindrunnerMax/TKScript/issues", - "license": "GPL License", - "installURL": "https://github.com/WindrunnerMax/TKScript", - "updateURL": "https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/meta/copy.meta.js", - "downloadURL": "https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/copy.js", - "run-at": "document-end", - "grant": [ - "unsafeWindow", - "GM_xmlhttpRequest" - ], - "require": [ - "https://cdn.bootcss.com/jquery/2.1.2/jquery.min.js", - "https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js" - ], - "connect": "res1.doc88.com" -} \ No newline at end of file diff --git a/src/copy/src/dispose.ts b/src/copy/src/dispose.ts deleted file mode 100644 index ca64efa..0000000 --- a/src/copy/src/dispose.ts +++ /dev/null @@ -1,30 +0,0 @@ -import websites, { Website, WebsiteConfig } from "./websites"; - -let siteGetSelectedText: () => string | null = null; - -const initWebsite = ($: JQueryStatic): WebsiteConfig => { - let websiteConfig: WebsiteConfig = { - initCopyEvent: true, - }; - const mather = (regex: RegExp, website: Website) => { - if (regex.test(window.location.href)) { - website.init($); - if (website.config) websiteConfig = Object.assign(websiteConfig, website.config); - if (website.getSelectedText) siteGetSelectedText = website.getSelectedText; - return true; - } - return false; - }; - websites.some(website => mather(website.regexp, website)); - return websiteConfig; -}; - -const getSelectedText = (): string => { - if (siteGetSelectedText) return siteGetSelectedText(); - if (window.getSelection) return window.getSelection().toString(); - if (document.getSelection) return document.getSelection().toString(); - if (document.selection) return document.selection.createRange().text; - return ""; -}; - -export { initWebsite, getSelectedText }; diff --git a/src/copy/src/event.ts b/src/copy/src/event.ts deleted file mode 100644 index 2326811..0000000 --- a/src/copy/src/event.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { WebsiteConfig } from "./websites"; - -export const initEvent = ($: JQueryStatic, websiteConfig: WebsiteConfig): void => { - $("body").on("mousedown", () => $("#_copy").remove()); - if (websiteConfig.initCopyEvent) { - document.oncopy = e => e.stopPropagation(); - document.body.oncopy = e => e.stopPropagation(); - $("body").on("copy", e => { - e.stopPropagation(); - return true; - }); - } -}; - -export const bindClipboardEvent = (clipboard: ClipboardJS): void => { - clipboard.on("success", e => { - $("#_copy").html("复制成功"); - setTimeout(() => $("#_copy").fadeOut(1000), 1000); - e.clearSelection(); - }); - clipboard.on("error", e => { - $("#_copy").html("复制失败"); - setTimeout(() => $("#_copy").fadeOut(1000), 1000); - e.clearSelection(); - }); -}; diff --git a/src/copy/src/global.d.ts b/src/copy/src/global.d.ts deleted file mode 100644 index ae9a32d..0000000 --- a/src/copy/src/global.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -declare interface Window { - $: JQueryStatic; - ClipboardJS: typeof import("clipboard"); -} - -declare interface Document { - selection: { - createRange: () => { - text: string; - }; - }; -} - -declare function GM_xmlhttpRequest(params: { - method: GET | POST; - url: string; - onload: (response: { status: number; responseText: string }) => void; -}): void; - -declare const unsafeWindow = any; diff --git a/src/copy/src/helper.ts b/src/copy/src/helper.ts deleted file mode 100644 index ac8ff99..0000000 --- a/src/copy/src/helper.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* -// scan - object -var weakSet = new WeakSet(); -var pathRouter = ["root"]; - -var deepScanObject = (origin, deep, maxDeep) => { - if(deep > maxDeep) return ; - for(let item in origin) { - try{ - const value = origin[item]; - if(value && typeof(value) === "object") { - if(weakSet.has(value)) continue; - weakSet.add(value); - pathRouter.push(item); - deepScanObject(value, deep + 1, maxDeep); - pathRouter.pop(); - }else{ - const regexp = /以熔体流动速率/; - if(regexp.test(item) || regexp.test(value)){ - console.log( - pathRouter.join("/") + "/" + item, - "================", - value - ) - } - } - }catch(e){ - console.warn(e) - } - - } -} - -deepScanObject.toString = () => ""; - -console.log("start"); - -deepScanObject(window, 0, 10) -// deepScanObject({a : 1, b: { c : 1 } }, 0, 2) - -console.log("finish"); -*/ diff --git a/src/copy/src/index.ts b/src/copy/src/index.ts deleted file mode 100644 index f0f8795..0000000 --- a/src/copy/src/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import "./style.css"; -import { initEvent, bindClipboardEvent } from "./event"; -import { initWebsite, getSelectedText } from "./dispose"; - -(function () { - const $ = window.$; - const ClipboardJS = window.ClipboardJS; // https://clipboardjs.com/#example-text - const websiteConfig = initWebsite($); - initEvent($, websiteConfig); - document.addEventListener("mouseup", e => { - const copyText = getSelectedText(); - if (copyText) console.log(copyText); - else return ""; - $("#_copy").remove(); - const template = ` -
复制
- `; - $("body").append(template); - $("#_copy").on("mousedown", event => event.stopPropagation()); - $("#_copy").on("mouseup", event => event.stopPropagation()); - const clipboard = new ClipboardJS("#_copy"); - bindClipboardEvent(clipboard); - }); -})(); - -/** - * https://www.huiyingwu.com/1718/ - */ diff --git a/src/copy/src/modules/17k.ts b/src/copy/src/modules/17k.ts deleted file mode 100644 index fd56a11..0000000 --- a/src/copy/src/modules/17k.ts +++ /dev/null @@ -1,12 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp("17k"), - init: $ => { - utils.hideButton($); - utils.enableOnCopy($, ".readAreaBox .p"); - }, -}; - -export default website; diff --git a/src/copy/src/modules/aiyuke.ts b/src/copy/src/modules/aiyuke.ts deleted file mode 100644 index d334546..0000000 --- a/src/copy/src/modules/aiyuke.ts +++ /dev/null @@ -1,12 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp(".+aiyuke.com/news/.+"), - init: function ($) { - utils.hideButton($); - $(".news_content_body").css("user-select", "auto"); - }, -}; - -export default website; diff --git a/src/copy/src/modules/baiduwk-s.ts b/src/copy/src/modules/baiduwk-s.ts deleted file mode 100644 index 3b1dea6..0000000 --- a/src/copy/src/modules/baiduwk-s.ts +++ /dev/null @@ -1,31 +0,0 @@ -// `tips` -// /static/ndpcwenku/static/ndview/js/common/components.{hash}.js selectedTextTrim -// button: search translate - -// `window.webpackJson Hook` `document-start` `grant connect` -/* -unsafeWindow.webpackJsonp = []; -unsafeWindow.webpackJsonp.push = () => {}; -setTimeout(() => { - delete unsafeWindow.webpackJsonp.push; - window.$.getScript("https://wkstatic.bdimg.com/static/ndpcwenku/static/ndview/js/views/creader.7eb11c074c703be69e06.js", () => { - window.$.getScript("https://wkstatic.bdimg.com/static/ndpcwenku/static/ndview/js/common/common.a1efaf8d33ff1572ad92.js", () => { - GM_xmlhttpRequest({ - method: "GET", - url: "https://wkstatic.bdimg.com/static/ndpcwenku/static/ndview/js/common/components.dea3c4d6a0375ab9beb1.js", - onload: function (response) { - const code = response.responseText.replace("watch:{selectedTextTrim:function(t){", "watch:{selectedTextTrim:function(t){window.selectedTextTrim=t;") - new Function(code)(); - }, - }); - }); - }); -},3000) -*/ - -// backdoor -/* - https://wenku.baidu.com/view/a983bf4177eeaeaad1f34693daef5ef7bb0d1241 - https://wenku.baidu.com/share/a983bf4177eeaeaad1f34693daef5ef7bb0d1241 - https://wenku.baidu.com/share/a983bf4177eeaeaad1f34693daef5ef7bb0d1241?share_api=1&width=800 -*/ diff --git a/src/copy/src/modules/baiduwk.ts b/src/copy/src/modules/baiduwk.ts deleted file mode 100644 index 6d8814d..0000000 --- a/src/copy/src/modules/baiduwk.ts +++ /dev/null @@ -1,20 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp("wenku.baidu.com/view/.*"), - init: function ($) { - utils.enableOnKeyDownByCapture(); - $("head").append(``); - }, - getSelectedText: (): string => { - if (window.getSelection && window.getSelection().toString()) { - return window.getSelection().toString(); - } - const result = /查看全部包含“([\s\S]*?)”的文档/.exec(document.body.innerHTML); - if (result) return result[1]; - return ""; - }, -}; - -export default website; diff --git a/src/copy/src/modules/ciweimao.ts b/src/copy/src/modules/ciweimao.ts deleted file mode 100644 index ddf53da..0000000 --- a/src/copy/src/modules/ciweimao.ts +++ /dev/null @@ -1,15 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp("ciweimao"), - init: function ($) { - utils.hideButton($); - utils.enableUserSelect($, "#J_BookRead"); - utils.enableOnCopy($, "#J_BookCnt"); - utils.enableOnContextMenu($, "body"); - utils.enableOnSelectStart($, "#J_BookCnt"); - }, -}; - -export default website; diff --git a/src/copy/src/modules/cnitpm.ts b/src/copy/src/modules/cnitpm.ts deleted file mode 100644 index 50a7590..0000000 --- a/src/copy/src/modules/cnitpm.ts +++ /dev/null @@ -1,17 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: /cnitpm/, - init: function ($) { - utils.hideButton($); - window.onload = () => { - const container = $("body"); - container.attr("oncopy", ""); - container.attr("oncontextmenu", ""); - container.attr("onselectstart", ""); - }; - }, -}; - -export default website; diff --git a/src/copy/src/modules/common.ts b/src/copy/src/modules/common.ts deleted file mode 100644 index 7f0f139..0000000 --- a/src/copy/src/modules/common.ts +++ /dev/null @@ -1,28 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp( - [ - "commandlinux", - "cnki", - "ruiwen", - "oh100", - "fwsir", - "wenxm", - "unjs", - "ahsrst", - "yjbys", - "360doc", - "850500", - "jianbiaoku", - "kt250", - "kejudati", - ].join("|") - ), - init: function ($) { - utils.hideButton($); - }, -}; - -export default website; diff --git a/src/copy/src/modules/diyifanwen.ts b/src/copy/src/modules/diyifanwen.ts deleted file mode 100644 index a27cb0b..0000000 --- a/src/copy/src/modules/diyifanwen.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Website } from "../websites"; - -const website: Website = { - regexp: /diyifanwen/, - init: function () { - setTimeout(() => { - document.oncopy = e => e.stopPropagation(); - document.body.oncopy = e => e.stopPropagation(); - }, 1000); - }, -}; - -export default website; diff --git a/src/copy/src/modules/doc88.ts b/src/copy/src/modules/doc88.ts deleted file mode 100644 index c10ea1f..0000000 --- a/src/copy/src/modules/doc88.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Website } from "../websites"; - -let path = ""; - -const website: Website = { - regexp: /.*doc88\.com\/.+/, - init: $ => { - // GM_xmlhttpRequest({ - // method: "GET", - // url: "https://res.doc88.com/assets/js/v2.js", - // onload: function(response) { - // var view = new Function("var view = " + response.responseText.replace("eval", "") + "; return view;"); - // path = //.exec(view())[1]; - // } - // }) - $("body").append(``); - GM_xmlhttpRequest({ - method: "GET", - url: "https://res1.doc88.com/resources/js/modules/main-v2.min.js?v=2.90", - onload: function (response) { - path = /'\+([\S]*?)\+"<\/textarea>/.exec(response.responseText)[1]; - }, - }); - }, - getSelectedText: (): string => { - let select = unsafeWindow; - path.split(".").forEach((v: string) => { - select = select[v]; - }); - return select; - }, -}; - -export default website; diff --git a/src/copy/src/modules/docqq.ts b/src/copy/src/modules/docqq.ts deleted file mode 100644 index c9a195a..0000000 --- a/src/copy/src/modules/docqq.ts +++ /dev/null @@ -1,38 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -let restrictCopying = true; - -const website: Website = { - regexp: /.*docs\.qq\.com\/.+/, - config: { - initCopyEvent: false, - }, - init: function ($) { - window.onload = () => { - if (unsafeWindow.pad) { - if (unsafeWindow.pad.editor._docEnv.copyable === true) { - // 不限制复制 - restrictCopying = false; - utils.hideButton($); - } else { - unsafeWindow.pad.editor._docEnv.copyable = true; - } - } else { - restrictCopying = false; - utils.hideButton($); - } - }; - }, - getSelectedText: function () { - if (!restrictCopying) return ""; - if (unsafeWindow.pad) { - unsafeWindow.pad.editor._docEnv.copyable = true; - unsafeWindow.pad.editor.clipboardManager.copy(); - return unsafeWindow.pad.editor.clipboardManager.customClipboard.plain; - } - return ""; - }, -}; - -export default website; diff --git a/src/copy/src/modules/edu30.ts b/src/copy/src/modules/edu30.ts deleted file mode 100644 index cf7cfed..0000000 --- a/src/copy/src/modules/edu30.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Website } from "../websites"; - -const website: Website = { - regexp: /.*30edu\.com\.cn\/.+/, - init: function ($) { - window.onload = () => { - const iframes = document.getElementsByTagName("iframe"); - if (iframes.length === 2) { - const body = $(iframes[1].contentWindow.document.querySelector("body")); - body.attr("oncopy", ""); - body.attr("oncontextmenu", ""); - body.attr("onselectstart", ""); - } - }; - }, -}; - -export default website; diff --git a/src/copy/src/modules/leetcode.ts b/src/copy/src/modules/leetcode.ts deleted file mode 100644 index 03525e0..0000000 --- a/src/copy/src/modules/leetcode.ts +++ /dev/null @@ -1,12 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp("leetcode"), - init: function ($) { - utils.hideButton($); - utils.enableOnCopyByCapture(); - }, -}; - -export default website; diff --git a/src/copy/src/modules/mbalib.ts b/src/copy/src/modules/mbalib.ts deleted file mode 100644 index 58766f7..0000000 --- a/src/copy/src/modules/mbalib.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Website } from "../websites"; - -const website: Website = { - regexp: /mbalib/, - init: function ($) { - window.onload = () => { - const container = $("#fullScreenContainer"); - container.attr("oncopy", ""); - container.attr("oncontextmenu", ""); - container.attr("onselectstart", ""); - }; - }, -}; - -export default website; diff --git a/src/copy/src/modules/mihoyo.ts b/src/copy/src/modules/mihoyo.ts deleted file mode 100644 index d1e4a7f..0000000 --- a/src/copy/src/modules/mihoyo.ts +++ /dev/null @@ -1,21 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp(".+bbs.mihoyo.com/ys/obc.+"), - init: function ($) { - utils.hideButton($); - $(".detail__content").on("copy", e => e.stopPropagation()); - const template = ` - - `; - $("body").append(template.replace(/\s*/, " ")); - }, -}; - -export default website; diff --git a/src/copy/src/modules/qidian.ts b/src/copy/src/modules/qidian.ts deleted file mode 100644 index 90c43dd..0000000 --- a/src/copy/src/modules/qidian.ts +++ /dev/null @@ -1,14 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp("qidian"), - init: function ($) { - utils.hideButton($); - utils.enableUserSelect($, "body"); - utils.enableOnCopy($, ".main-read-container"); - utils.enableOnContextMenu($, ".main-read-container"); - }, -}; - -export default website; diff --git a/src/copy/src/modules/qqbook.ts b/src/copy/src/modules/qqbook.ts deleted file mode 100644 index b91f0b2..0000000 --- a/src/copy/src/modules/qqbook.ts +++ /dev/null @@ -1,15 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp("book\\.qq"), - init: function ($) { - utils.hideButton($); - utils.enableUserSelect($, "body"); - utils.enableOnCopy($, "body"); - utils.enableOnContextMenu($, "body"); - utils.enableOnSelectStart($, "body"); - }, -}; - -export default website; diff --git a/src/copy/src/modules/sf.ts b/src/copy/src/modules/sf.ts deleted file mode 100644 index eba613d..0000000 --- a/src/copy/src/modules/sf.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Website } from "../websites"; - -const website: Website = { - regexp: /.*segmentfault\.com\/.+/, - init: function ($) { - $("body").addClass("_sf_adjust_body"); - $("body").on("click", () => { - $("body").css("padding-right", 0); - }); - }, -}; - -export default website; diff --git a/src/copy/src/modules/uemeds.ts b/src/copy/src/modules/uemeds.ts deleted file mode 100644 index ce979ce..0000000 --- a/src/copy/src/modules/uemeds.ts +++ /dev/null @@ -1,20 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp(".+www.uemeds.cn/.+"), - init: function ($) { - utils.hideButton($); - const template = ` - - `; - $("body").append(template.replace(/\s*/, " ")); - }, -}; - -export default website; diff --git a/src/copy/src/modules/utaten.ts b/src/copy/src/modules/utaten.ts deleted file mode 100644 index 25b3222..0000000 --- a/src/copy/src/modules/utaten.ts +++ /dev/null @@ -1,13 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp("utaten"), - init: function ($) { - utils.removeAttributes($, "body", ["oncontextmenu", "onselectstart"]); - utils.hideButton($); - utils.enableUserSelect($, ".lyricBody", true); - }, -}; - -export default website; diff --git a/src/copy/src/modules/wk.ts b/src/copy/src/modules/wk.ts deleted file mode 100644 index c5a6bd1..0000000 --- a/src/copy/src/modules/wk.ts +++ /dev/null @@ -1,18 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: /.*wk\.baidu\.com\/view\/.+/, - init: function ($) { - utils.hideButton($); - $(window).on("load", () => { - $(".sf-edu-wenku-vw-container").attr("style", ""); - $(".sfa-body").on("selectstart", e => { - e.stopPropagation(); - return true; - }); - }); - }, -}; - -export default website; diff --git a/src/copy/src/modules/xiaohongshu.ts b/src/copy/src/modules/xiaohongshu.ts deleted file mode 100644 index 96c8f77..0000000 --- a/src/copy/src/modules/xiaohongshu.ts +++ /dev/null @@ -1,13 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp("xiaohongshu"), - init: function ($) { - utils.hideButton($); - utils.enableUserSelect($, "*"); - utils.enableOnKeyDownByCapture(); - }, -}; - -export default website; diff --git a/src/copy/src/modules/zhihu-reader.ts b/src/copy/src/modules/zhihu-reader.ts deleted file mode 100644 index 1e2c714..0000000 --- a/src/copy/src/modules/zhihu-reader.ts +++ /dev/null @@ -1,11 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: /.*zhihu\.com\/pub\/reader\/.+/, - init: function ($) { - setTimeout(utils.showButton, 500, $); - }, -}; - -export default website; diff --git a/src/copy/src/modules/zhihu.ts b/src/copy/src/modules/zhihu.ts deleted file mode 100644 index f395fc7..0000000 --- a/src/copy/src/modules/zhihu.ts +++ /dev/null @@ -1,11 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: /.*zhihu\.com\/.*/, - init: function ($) { - utils.hideButton($); - }, -}; - -export default website; diff --git a/src/copy/src/modules/zongheng.ts b/src/copy/src/modules/zongheng.ts deleted file mode 100644 index 432b29e..0000000 --- a/src/copy/src/modules/zongheng.ts +++ /dev/null @@ -1,18 +0,0 @@ -import utils from "../utils"; -import { Website } from "../websites"; - -const website: Website = { - regexp: new RegExp("zongheng"), - init: function ($) { - utils.removeAttributes($, ".reader_box", ["style", "unselectable", "onselectstart"]); - utils.removeAttributes($, ".reader_main", ["style", "unselectable", "onselectstart"]); - utils.hideButton($); - utils.enableOnKeyDown($, "body"); - utils.enableUserSelect($, ".reader_box .content p"); - utils.enableOnCopy($, ".content"); - utils.enableOnContextMenu($, "body"); - utils.enableOnSelectStart($, ".content"); - }, -}; - -export default website; diff --git a/src/copy/src/style.css b/src/copy/src/style.css deleted file mode 100644 index cb3794d..0000000 --- a/src/copy/src/style.css +++ /dev/null @@ -1,29 +0,0 @@ -#_copy { - width: 60px; - height: 30px; - background: #4C98F7; - color: #fff; - position: absolute; - z-index: 1000; - display: flex; - justify-content: center; - align-items: center; - border-radius: 3px; - font-size: 13px; - cursor: pointer; -} - -div[id^=reader-helper], -#sfModal, -.modal-backdrop, -#select-tooltip{ - display: none !important; -} - -.modal-open{ - overflow: auto !important; -} - -._sf_adjust_body{ - padding-right: 0 !important; -} \ No newline at end of file diff --git a/src/copy/src/utils.ts b/src/copy/src/utils.ts deleted file mode 100644 index 882c1ff..0000000 --- a/src/copy/src/utils.ts +++ /dev/null @@ -1,65 +0,0 @@ -const stopJQueryPropagation = ( - event: JQuery.TriggeredEvent -) => { - event.stopPropagation(); - // event.stopImmediatePropagation(); // 即停且阻止该元素后`on`同类事件触发 - return true; // 若为 `false` 则会 `preventDefault` `stopPropagation` -}; - -const stopNativePropagation = (event: Event) => event.stopPropagation(); - -export default { - hideButton: ($: JQueryStatic): void => { - $("body").append(``); - }, - showButton: ($: JQueryStatic): void => { - $("#copy-hide").remove(); - }, - removeAttributes: ($: JQueryStatic, selector: string, attr: string[] = []): void => { - const dom = $(selector); - attr.forEach(item => dom.removeAttr(item)); - }, - enableUserSelect: ($: JQueryStatic, selector: string, inline = false): void => { - const cur = $(selector); - if (inline) { - cur.css("user-select", "auto"); - cur.css("-webkit-user-select", "auto"); - } else { - const template = ` - - `; - $("body").append(template.replace(/\s*/, " ")); - } - }, - enableOnSelectStart: ($: JQueryStatic, selector: string): void => { - $(selector).on("selectstart", stopJQueryPropagation); - }, - enableOnContextMenu: ($: JQueryStatic, selector: string): void => { - $(selector).on("contextmenu", stopJQueryPropagation); - }, - enableOnCopy: ($: JQueryStatic, selector: string): void => { - $(selector).on("copy", stopJQueryPropagation); - }, - enableOnKeyDown: ($: JQueryStatic, selector: string): void => { - $(selector).on("keydown", e => { - if (e.key === "c" && e.ctrlKey) return stopJQueryPropagation(e); - }); - }, - enableOnSelectStartByCapture: (): void => { - document.addEventListener("selectstart", stopNativePropagation, true); - }, - enableOnContextMenuByCapture: (): void => { - document.addEventListener("contextmenu", stopNativePropagation, true); - }, - enableOnCopyByCapture: (): void => { - document.addEventListener("copy", stopNativePropagation, true); - }, - enableOnKeyDownByCapture: (): void => { - document.addEventListener("keydown", stopNativePropagation, true); - }, -}; diff --git a/src/expansion/README.md b/src/expansion/README.md deleted file mode 100644 index bb2d4ca..0000000 --- a/src/expansion/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# expansion - -自动展开阅读全文 diff --git a/src/expansion/expansion.js b/src/expansion/expansion.js deleted file mode 100644 index a7f1259..0000000 --- a/src/expansion/expansion.js +++ /dev/null @@ -1,25 +0,0 @@ -// ==UserScript== -// @name 自动阅读全文 -// @namespace http://tampermonkey.net/ -// @version 1.0 -// @description try to take over the world! -// @author Czy -// @match https://blog.csdn.net/* -// @match https://www.zhihu.com/* -// @grant none -// ==/UserScript== - -function show(dom){ - dom[0] ? dom[0].click() : ""; -} - -(function() { - 'use strict'; - - /* CSDN 展开阅读全文 */ - show(document.getElementsByClassName('btn-readmore')); - - /* 知乎 查看全部回答 */ - setTimeout(()=>{show(document.getElementsByClassName('QuestionMainAction ViewAll-QuestionMainAction'))},1000); - -})(); \ No newline at end of file diff --git a/src/site-director/README.md b/src/site-director/README.md deleted file mode 100644 index 9bd9fea..0000000 --- a/src/site-director/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# site-director - -链接直达 diff --git a/src/site-director/meta.json b/src/site-director/meta.json deleted file mode 100644 index a41ca74..0000000 --- a/src/site-director/meta.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "🔥🔥🔥跳转链接直达🔥🔥🔥", - "namespace": "https://github.com/WindrunnerMax/TKScript", - "version": "1.1.0", - "description": "跳转链接直达,去掉确定跳转链接页面,用于谷歌、知乎、CSDN", - "author": "Czy", - "include": [ - "*://*google.com/*", - "*://*zhihu.com/*", - "*://*csdn.net/*" - ], - "license": "MIT License", - "installURL": "https://github.com/WindrunnerMax/TKScript", - "updateURL": "https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/meta/site-director.meta.js", - "downloadURL": "https://cdn.jsdelivr.net/gh/WindrunnerMax/TKScript/dist/site-director.js", - "grant": [ - "unsafeWindow", - "GM_xmlhttpRequest" - ], - "require": [ - "https://cdn.bootcss.com/jquery/2.1.2/jquery.min.js" - ] -} \ No newline at end of file diff --git a/src/site-director/src/index.ts b/src/site-director/src/index.ts deleted file mode 100644 index 4edf694..0000000 --- a/src/site-director/src/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import websites, { Website } from "./websites"; - -(($: JQueryStatic): void => { - const mather = (regex: RegExp, website: Website) => { - if (regex.test(window.location.href)) { - website.init($); - return true; - } - return false; - }; - websites.some(website => mather(website.regexp, website)); -})($); diff --git a/src/site-director/src/modules/csdn.ts b/src/site-director/src/modules/csdn.ts deleted file mode 100644 index 401676e..0000000 --- a/src/site-director/src/modules/csdn.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Website } from "../websites"; - -const website: Website = { - regexp: /csdn/, - init: function ($) { - $("#article_content a:not([name])").each((i, v) => { - const el = v as HTMLElement & { href?: string }; - const a = document.createElement("a"); - a.innerHTML = `${el.innerText}`; - v.replaceWith(a); - }); - }, -}; - -export default website; diff --git a/src/site-director/src/modules/google.ts b/src/site-director/src/modules/google.ts deleted file mode 100644 index 499a91c..0000000 --- a/src/site-director/src/modules/google.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Website } from "../websites"; - -const website: Website = { - regexp: /google/, - init: function ($) { - $("#res a").attr("target", "_blank"); - }, -}; - -export default website; diff --git a/src/site-director/src/modules/utils.ts b/src/site-director/src/modules/utils.ts deleted file mode 100644 index 9829fcf..0000000 --- a/src/site-director/src/modules/utils.ts +++ /dev/null @@ -1,9 +0,0 @@ -export default { - directByBlockEvent: function (event: Event): void { - event.stopPropagation(); - event.preventDefault(); - }, - directByCapture: function (el: Element): void { - el.addEventListener("click", e => this.directByBlockEvent(e)); - }, -}; diff --git a/src/site-director/src/modules/zhihu.ts b/src/site-director/src/modules/zhihu.ts deleted file mode 100644 index cd63671..0000000 --- a/src/site-director/src/modules/zhihu.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Website } from "../websites"; -import utils from "./utils"; - -const website: Website = { - regexp: /zhihu/, - init: function () { - document.body.addEventListener( - "click", - e => { - let cur = e.target as HTMLElement & { href?: string }; - const regexp = /.*link.zhihu.com\/\?target=(.*)/; - for (let i = 0; i < 5; ++i) { - if (!cur) break; - if (cur.nodeName === "A") { - if (regexp.test(cur.href)) { - const url = decodeURIComponent( - /.*link.zhihu.com\/\?target=(.*)/.exec(cur.href)[1] - ); - console.log(url); - window.open(url); - utils.directByBlockEvent(e); - } - break; - } - cur = cur.parentNode as HTMLElement & { href?: string }; - } - }, - true - ); - }, -}; - -export default website; diff --git a/src/site-director/src/websites.ts b/src/site-director/src/websites.ts deleted file mode 100644 index a30a25b..0000000 --- a/src/site-director/src/websites.ts +++ /dev/null @@ -1,13 +0,0 @@ -import "./style.css"; -import google from "./modules/google"; -import zhihu from "./modules/zhihu"; -import csdn from "./modules/csdn"; - -export interface Website { - regexp: RegExp; - init: ($: JQueryStatic) => void; -} - -const websites: Website[] = [google, zhihu, csdn]; - -export default websites; diff --git a/tsconfig.json b/tsconfig.json index 4a280f4..94d88bb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,24 +1,30 @@ { "compilerOptions": { - "target": "es5", + "target": "ES2015", + "lib": ["dom", "dom.iterable", "esnext"], "module": "esnext", "strict": true, "importHelpers": true, "moduleResolution": "node", "esModuleInterop": true, "allowSyntheticDefaultImports": true, - "experimentalDecorators":true, + "experimentalDecorators": true, "skipLibCheck": true, - "strictNullChecks": false, + "strictNullChecks": true, + "downlevelIteration": true, "declaration": false, - "baseUrl": ".", - "paths": {}, - "types": [ - "@types/node", - "@types/jquery", - ], + "jsx": "react-jsx", + "newLine": "lf", + "paths": { + "copy/*": ["./packages/copy/*"], + "copy-currency/*": ["./packages/copy-currency/*"] + } }, - "exclude": [ - "node_modules" - ] + "include": ["packages/*/src"], + "exclude": ["node_modules"], + "ts-node": { + "compilerOptions": { + "module": "commonjs" + } + } }