From dc0a8e88aa3d05ad650d74d3684368d79acfffea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Mon, 27 May 2024 15:41:25 +0800 Subject: [PATCH 01/40] chore(release): 0.8.42 --- CHANGELOG.md | 20 +++++++++++++++++++ README.CN.md | 1 + README.md | 1 + .../advance/cherry-table-echarts-plugin.d.ts | 3 +++ .../advance/cherry-table-echarts-plugin.js | 3 +++ dist/cherry-markdown.core.common.js | 4 ++-- dist/cherry-markdown.core.js | 4 ++-- dist/cherry-markdown.engine.core.common.js | 4 ++-- dist/cherry-markdown.engine.core.esm.js | 4 ++-- dist/cherry-markdown.engine.core.js | 4 ++-- dist/cherry-markdown.esm.js | 4 ++-- dist/cherry-markdown.js | 4 ++-- dist/cherry-markdown.js.map | 4 ++-- dist/cherry-markdown.min.js | 4 ++-- dist/fonts/ch-icon.eot | 2 +- dist/fonts/ch-icon.ttf | 2 +- dist/fonts/ch-icon.woff | 2 +- dist/fonts/ch-icon.woff2 | 4 ++-- package.json | 2 +- 19 files changed, 52 insertions(+), 24 deletions(-) create mode 100644 dist/addons/advance/cherry-table-echarts-plugin.d.ts create mode 100644 dist/addons/advance/cherry-table-echarts-plugin.js diff --git a/CHANGELOG.md b/CHANGELOG.md index c27ea432..a6591dca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,26 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.8.42](https://github.com/Tencent/cherry-markdown/compare/v0.8.41...v0.8.42) (2024-05-27) + + +### Features + +* 默认不展示右侧侧边栏 ([b68b1b4](https://github.com/Tencent/cherry-markdown/commit/b68b1b45946120a3ac6321748bc22a4fc52b995a)) +* 优化事件机制,增加cherry.on动态绑定事件机制 ([a24bcd9](https://github.com/Tencent/cherry-markdown/commit/a24bcd9fe95a84b79b83b013e371cc325962f491)) +* 增加表格和加粗斜体语法对流式输出场景的适配 ([ebc8338](https://github.com/Tencent/cherry-markdown/commit/ebc8338488cbfe1299aedb503fc94e11e45e7d42)) +* 增加流式会话的例子 ([88873c2](https://github.com/Tencent/cherry-markdown/commit/88873c2c564ee41137e5151bd836ad31ebd78c79)) +* add configuration and right-click menu processing preview ([#760](https://github.com/Tencent/cherry-markdown/issues/760)) ([6372859](https://github.com/Tencent/cherry-markdown/commit/6372859407d22a1c625bc6a1ffbaf88ec0d32226)) +* **vscodePlugin:** add webview icon ([#754](https://github.com/Tencent/cherry-markdown/issues/754)) ([b38ceea](https://github.com/Tencent/cherry-markdown/commit/b38ceea4b1df707e5facffdab7e33dcd13fc016f)) + + +### Bug Fixes + +* 当预览区只有一行内容时,导出文档api报错 ([f4b6201](https://github.com/Tencent/cherry-markdown/commit/f4b620155aae85b19bcd96c5ae8753e82d455c98)) +* 联想配置模板失效 ([#757](https://github.com/Tencent/cherry-markdown/issues/757)) ([f93e2af](https://github.com/Tencent/cherry-markdown/commit/f93e2afbbba88ae4045e0e7558cc875e66001aca)) +* 修复列表有多行时选区只选择第一行的问题 ([082a032](https://github.com/Tencent/cherry-markdown/commit/082a032c4717f7b22c4b331632f7f3dd836cebf9)) +* 右侧编辑列表过程中, 输入回车后, 再次编辑此列表, 数据会异常 [#751](https://github.com/Tencent/cherry-markdown/issues/751) ([#772](https://github.com/Tencent/cherry-markdown/issues/772)) ([3e1e9fd](https://github.com/Tencent/cherry-markdown/commit/3e1e9fd057c0008f5f3d001a818fda1a8291b0a9)) + ### [0.8.41](https://github.com/Tencent/cherry-markdown/compare/v0.8.40...v0.8.41) (2024-05-06) diff --git a/README.CN.md b/README.CN.md index 7638432b..43a285aa 100644 --- a/README.CN.md +++ b/README.CN.md @@ -27,6 +27,7 @@ - [图片所见即所得编辑尺寸](https://tencent.github.io/cherry-markdown/examples/img.html) - [表格编辑](https://tencent.github.io/cherry-markdown/examples/table.html) - [标题自动序号](https://tencent.github.io/cherry-markdown/examples/head_num.html) +- [流式输入模式(AI chart场景)](https://tencent.github.io/cherry-markdown/examples/ai_chat.html) ----- diff --git a/README.md b/README.md index e5fde113..02259c2f 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ English | [简体中文](./README.CN.md) - [img wysiwyg](https://tencent.github.io/cherry-markdown/examples/img.html) - [table wysiwyg](https://tencent.github.io/cherry-markdown/examples/table.html) - [headers with auto num](https://tencent.github.io/cherry-markdown/examples/head_num.html) +- [流式输入模式(AI chart场景)](https://tencent.github.io/cherry-markdown/examples/ai_chat.html) ----- diff --git a/dist/addons/advance/cherry-table-echarts-plugin.d.ts b/dist/addons/advance/cherry-table-echarts-plugin.d.ts new file mode 100644 index 00000000..b7e43920 --- /dev/null +++ b/dist/addons/advance/cherry-table-echarts-plugin.d.ts @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cc4e09a11d634dec623bf4050e93dbd8b5487697012724e4706ee47236eedbe +size 596 diff --git a/dist/addons/advance/cherry-table-echarts-plugin.js b/dist/addons/advance/cherry-table-echarts-plugin.js new file mode 100644 index 00000000..8a620257 --- /dev/null +++ b/dist/addons/advance/cherry-table-echarts-plugin.js @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6b4d6f1c40868f9b55522c3bda6a40db1b5830322618551f7aff8ea72d0b934 +size 38055 diff --git a/dist/cherry-markdown.core.common.js b/dist/cherry-markdown.core.common.js index dddace62..385d47b3 100644 --- a/dist/cherry-markdown.core.common.js +++ b/dist/cherry-markdown.core.common.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b0f4141ccca50bc7c35bcee9b6becc64a524ac1f80593b8abc20ceb59178c46a -size 1187665 +oid sha256:6cfcd9169e92ad9bfb8a1ca7bf8a768e048b00b0469820ede603c68fb36bf96c +size 1191252 diff --git a/dist/cherry-markdown.core.js b/dist/cherry-markdown.core.js index d8ec1dd8..c2c7aac0 100644 --- a/dist/cherry-markdown.core.js +++ b/dist/cherry-markdown.core.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b666ec6a03eb6208846586fe4e1ee40db91f40cd8375153c967aa3ace807482 -size 1187948 +oid sha256:3c5612008c3166ffe93ce515c272642f54e3563c101f28236ebdaf1245cece52 +size 1191535 diff --git a/dist/cherry-markdown.engine.core.common.js b/dist/cherry-markdown.engine.core.common.js index ff0e0f2c..a7716bfa 100644 --- a/dist/cherry-markdown.engine.core.common.js +++ b/dist/cherry-markdown.engine.core.common.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:558dbae5df38e2e0ca2016bc866d7dcf3a8413dc55c2edbc49f3a3a2958dcb0c -size 365589 +oid sha256:da253022adba1589ab96a68608bcc6a244d6c3238d6ee57c9baa86d84b7fdbfe +size 367213 diff --git a/dist/cherry-markdown.engine.core.esm.js b/dist/cherry-markdown.engine.core.esm.js index b010375e..4aa5020c 100644 --- a/dist/cherry-markdown.engine.core.esm.js +++ b/dist/cherry-markdown.engine.core.esm.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:50ee4f93952666a6e2565850de8988a2d9fa5661210824f24f33119d2d8f5eb0 -size 365474 +oid sha256:fb2e165d6847bc7ad6e725a158f28435b0f4509599d8eb3c7469d5500c0b64c1 +size 367098 diff --git a/dist/cherry-markdown.engine.core.js b/dist/cherry-markdown.engine.core.js index 37794387..0bc517f4 100644 --- a/dist/cherry-markdown.engine.core.js +++ b/dist/cherry-markdown.engine.core.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:98d2451bd30d25c8b2f734ec6ccac18073cfe4a8c57a648b1e7e86981b2f8368 -size 365820 +oid sha256:76274788ab29a91089e3c9f75a30a666f01df2f1764803e5abfda586f49d64a8 +size 367444 diff --git a/dist/cherry-markdown.esm.js b/dist/cherry-markdown.esm.js index c288066c..a5780226 100644 --- a/dist/cherry-markdown.esm.js +++ b/dist/cherry-markdown.esm.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3fd8426283db7da03c70c9d330a4af275b3b74bdf68a304a00b4e64f7c94fc1e -size 3965200 +oid sha256:6257117b3e980851c57fc68e71928465cc8471740dd201a6dcc71f1ed29151af +size 3950235 diff --git a/dist/cherry-markdown.js b/dist/cherry-markdown.js index d3a8f744..53c89521 100644 --- a/dist/cherry-markdown.js +++ b/dist/cherry-markdown.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0604eca9203eefb80cb9c6c45f9a4eaac8b3ee2decc368db0d8d39a5ae396f8 -size 7569177 +oid sha256:f0434590a5ab8fe310652e998da8b5c484905e8c691c4c62317ff94f29aa78ca +size 7538532 diff --git a/dist/cherry-markdown.js.map b/dist/cherry-markdown.js.map index 97e1e087..936d8678 100644 --- a/dist/cherry-markdown.js.map +++ b/dist/cherry-markdown.js.map @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6a01caad4d1969fe86c6184369f635003aa137895b0e052aab2617063b20e838 -size 18161443 +oid sha256:25ffc160ef180328a4caa370848fcf8756331967a242951562b01fa2bc4c9885 +size 18108331 diff --git a/dist/cherry-markdown.min.js b/dist/cherry-markdown.min.js index fd30c627..1a61fbed 100644 --- a/dist/cherry-markdown.min.js +++ b/dist/cherry-markdown.min.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:23ba82f97e1c5207e49bcf80f70c7d1ac95ad468c048775eaffb444edeef1b90 -size 3965548 +oid sha256:72a39b17552c2d478e6602ac7e58bf1d00d8b7cf974f65dc979890792d2cf326 +size 3950542 diff --git a/dist/fonts/ch-icon.eot b/dist/fonts/ch-icon.eot index 71daf569..49519f1b 100644 --- a/dist/fonts/ch-icon.eot +++ b/dist/fonts/ch-icon.eot @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5cdac41b761a84bb81705f68e65d5e0ec2148784853a6bfa87477c30823c06e1 +oid sha256:3a3342832e2ad0ef67f178f5d3665a0e06fc64055a6a5c423759d26d5a6ab2c8 size 20424 diff --git a/dist/fonts/ch-icon.ttf b/dist/fonts/ch-icon.ttf index 73c5a901..a364592b 100644 --- a/dist/fonts/ch-icon.ttf +++ b/dist/fonts/ch-icon.ttf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b94579d68eb1945a93eae57069ce5a338212e2387be2f489911c46e3b1f7e36 +oid sha256:c9165d4e0d178722690468d2a33b19d7acc9257c170758c848cad6bb198928e2 size 20260 diff --git a/dist/fonts/ch-icon.woff b/dist/fonts/ch-icon.woff index 784f007d..0bc2242d 100644 --- a/dist/fonts/ch-icon.woff +++ b/dist/fonts/ch-icon.woff @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:15d20e0ef65fe98dc70cf406d0f1f7384be3c6eab4bae7f086e9f2fc929186d4 +oid sha256:734c6940c58d8382fb0372089d966d88e42446c048b0b12b6de0af8f52ce66f2 size 11780 diff --git a/dist/fonts/ch-icon.woff2 b/dist/fonts/ch-icon.woff2 index 8c38b282..5bbddd18 100644 --- a/dist/fonts/ch-icon.woff2 +++ b/dist/fonts/ch-icon.woff2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:59f84bfd5c7f9e201c2bd83bdc0a77065d29d020558a8dcf4b405d107993e8ff -size 10024 +oid sha256:0b097ec1e01dac6c82038a485370f3ca4f10d5429fcb16324b235ea493223854 +size 10028 diff --git a/package.json b/package.json index d0170184..089017c6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cherry-markdown", "license": "Apache-2.0", - "version": "0.8.41", + "version": "0.8.42", "description": "a new markdown editor", "repository": { "type": "git", From 38ee8dc21acece973946e5955dcf3b2c941d7401 Mon Sep 17 00:00:00 2001 From: Ethan Xu <34962267+ufec@users.noreply.github.com> Date: Fri, 24 May 2024 14:15:39 +0800 Subject: [PATCH 02/40] =?UTF-8?q?Fix:=20=E5=8F=B3=E4=BE=A7=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=88=97=E8=A1=A8=E8=BF=87=E7=A8=8B=E4=B8=AD,=20?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E5=9B=9E=E8=BD=A6=E5=90=8E,=20=E5=86=8D?= =?UTF-8?q?=E6=AC=A1=E7=BC=96=E8=BE=91=E6=AD=A4=E5=88=97=E8=A1=A8,=20?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BC=9A=E5=BC=82=E5=B8=B8=20#751=20(#772)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(release): v0.8.36 * fix: 右侧编辑列表过程中, 输入回车后, 再次编辑此列表, 数据会异常 #751 * fix: remove console.log * fix: ignore event.target.innerText type error * fix: ignore event.target.innerText type error --------- Co-authored-by: jiawei686 <892001108@qq.com> Co-authored-by: humyfred <513407656@qq.com> --- dist/cherry-markdown.js | 4 ++-- dist/fonts/ch-icon.eot | 2 +- dist/fonts/ch-icon.ttf | 2 +- dist/fonts/ch-icon.woff | 2 +- dist/fonts/ch-icon.woff2 | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dist/cherry-markdown.js b/dist/cherry-markdown.js index 53c89521..d3a8f744 100644 --- a/dist/cherry-markdown.js +++ b/dist/cherry-markdown.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f0434590a5ab8fe310652e998da8b5c484905e8c691c4c62317ff94f29aa78ca -size 7538532 +oid sha256:a0604eca9203eefb80cb9c6c45f9a4eaac8b3ee2decc368db0d8d39a5ae396f8 +size 7569177 diff --git a/dist/fonts/ch-icon.eot b/dist/fonts/ch-icon.eot index 49519f1b..71daf569 100644 --- a/dist/fonts/ch-icon.eot +++ b/dist/fonts/ch-icon.eot @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a3342832e2ad0ef67f178f5d3665a0e06fc64055a6a5c423759d26d5a6ab2c8 +oid sha256:5cdac41b761a84bb81705f68e65d5e0ec2148784853a6bfa87477c30823c06e1 size 20424 diff --git a/dist/fonts/ch-icon.ttf b/dist/fonts/ch-icon.ttf index a364592b..73c5a901 100644 --- a/dist/fonts/ch-icon.ttf +++ b/dist/fonts/ch-icon.ttf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9165d4e0d178722690468d2a33b19d7acc9257c170758c848cad6bb198928e2 +oid sha256:0b94579d68eb1945a93eae57069ce5a338212e2387be2f489911c46e3b1f7e36 size 20260 diff --git a/dist/fonts/ch-icon.woff b/dist/fonts/ch-icon.woff index 0bc2242d..784f007d 100644 --- a/dist/fonts/ch-icon.woff +++ b/dist/fonts/ch-icon.woff @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:734c6940c58d8382fb0372089d966d88e42446c048b0b12b6de0af8f52ce66f2 +oid sha256:15d20e0ef65fe98dc70cf406d0f1f7384be3c6eab4bae7f086e9f2fc929186d4 size 11780 diff --git a/dist/fonts/ch-icon.woff2 b/dist/fonts/ch-icon.woff2 index 5bbddd18..8c38b282 100644 --- a/dist/fonts/ch-icon.woff2 +++ b/dist/fonts/ch-icon.woff2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b097ec1e01dac6c82038a485370f3ca4f10d5429fcb16324b235ea493223854 -size 10028 +oid sha256:59f84bfd5c7f9e201c2bd83bdc0a77065d29d020558a8dcf4b405d107993e8ff +size 10024 From 0de1a9372dee6c336208a20cfda8c0900c1776f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Fri, 24 May 2024 17:44:01 +0800 Subject: [PATCH 03/40] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=B5=81?= =?UTF-8?q?=E5=BC=8F=E4=BC=9A=E8=AF=9D=E7=9A=84=E4=BE=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/ai_chat.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/ai_chat.html b/examples/ai_chat.html index 0860b7cf..eac63b82 100644 --- a/examples/ai_chat.html +++ b/examples/ai_chat.html @@ -13,6 +13,8 @@ margin-right: auto; padding: 0; width: 70%; + min-width: 800px; + height: 100%; } .one-msg { margin-top: 50px; @@ -36,11 +38,9 @@ } .chat-one-msg { display: inline-block; - max-width: 600px; } .buttons { margin-top: 50px; - margin-bottom: 100px; } .button { display: inline-block; @@ -78,7 +78,7 @@
- 获取消息(剩余条消息) + 获取消息(
开启流式适配 From b1a07a7f782c363d29d11681331a49bf5e318264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Mon, 27 May 2024 11:56:44 +0800 Subject: [PATCH 04/40] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E5=92=8C=E5=8A=A0=E7=B2=97=E6=96=9C=E4=BD=93=E8=AF=AD?= =?UTF-8?q?=E6=B3=95=E5=AF=B9=E6=B5=81=E5=BC=8F=E8=BE=93=E5=87=BA=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E7=9A=84=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/ai_chat.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/ai_chat.html b/examples/ai_chat.html index eac63b82..0860b7cf 100644 --- a/examples/ai_chat.html +++ b/examples/ai_chat.html @@ -13,8 +13,6 @@ margin-right: auto; padding: 0; width: 70%; - min-width: 800px; - height: 100%; } .one-msg { margin-top: 50px; @@ -38,9 +36,11 @@ } .chat-one-msg { display: inline-block; + max-width: 600px; } .buttons { margin-top: 50px; + margin-bottom: 100px; } .button { display: inline-block; @@ -78,7 +78,7 @@
- 获取消息() + 获取消息(剩余条消息)
开启流式适配 From 15e019f0d2d210535207b4c372e5ebebb4a779e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E8=8F=9C=20Cai?= Date: Mon, 3 Jun 2024 09:53:06 +0800 Subject: [PATCH 05/40] fix(vscodePlugin): activation timing for VSCode extension (#773) When set to `only manual`, I don't want to automatically activate the preview markdown event, but it was triggered. --- vscodePlugin/package.json | 3 +- vscodePlugin/yarn.lock | 4296 +++++++++++++++++++++++++++++++++++++ 2 files changed, 4297 insertions(+), 2 deletions(-) create mode 100644 vscodePlugin/yarn.lock diff --git a/vscodePlugin/package.json b/vscodePlugin/package.json index 2135fdda..4a30cea2 100644 --- a/vscodePlugin/package.json +++ b/vscodePlugin/package.json @@ -23,8 +23,7 @@ "Other" ], "activationEvents": [ - "onCommand:cherrymarkdown.preview", - "onLanguage:markdown" + "onCommand:cherrymarkdown.preview" ], "main": "./dist/extension.js", "contributes": { diff --git a/vscodePlugin/yarn.lock b/vscodePlugin/yarn.lock new file mode 100644 index 00000000..6c6ee449 --- /dev/null +++ b/vscodePlugin/yarn.lock @@ -0,0 +1,4296 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/code-frame/-/code-frame-7.24.6.tgz#ab88da19344445c3d8889af2216606d3329f3ef2" + integrity sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA== + dependencies: + "@babel/highlight" "^7.24.6" + picocolors "^1.0.0" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/compat-data/-/compat-data-7.24.6.tgz#b3600217688cabb26e25f8e467019e66d71b7ae2" + integrity sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ== + +"@babel/core@^7.20.12": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/core/-/core-7.24.6.tgz#8650e0e4b03589ebe886c4e4a60398db0a7ec787" + integrity sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.6" + "@babel/generator" "^7.24.6" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helpers" "^7.24.6" + "@babel/parser" "^7.24.6" + "@babel/template" "^7.24.6" + "@babel/traverse" "^7.24.6" + "@babel/types" "^7.24.6" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/eslint-parser@^7.14.5": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/eslint-parser/-/eslint-parser-7.24.6.tgz#7f0ecc0f29307b8696e83ff6a9d8b4f3e0421ad2" + integrity sha512-Q1BfQX42zXHx732PLW0w4+Y3wJjoZKEMaatFUEAmQ7Z+jCXxinzeqX9bvv2Q8xNPes/H6F0I23oGkcgjaItmLw== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.1" + +"@babel/generator@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/generator/-/generator-7.24.6.tgz#dfac82a228582a9d30c959fe50ad28951d4737a7" + integrity sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg== + dependencies: + "@babel/types" "^7.24.6" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz#517af93abc77924f9b2514c407bbef527fb8938d" + integrity sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz#19e9089ee87b0d0928012c83961a8deef4b0223f" + integrity sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz#4a51d681f7680043d38e212715e2a7b1ad29cb51" + integrity sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg== + dependencies: + "@babel/compat-data" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz#c50b86fa1c4ca9b7a890dc21884f097b6c4b5286" + integrity sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-member-expression-to-functions" "^7.24.6" + "@babel/helper-optimise-call-expression" "^7.24.6" + "@babel/helper-replace-supers" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz#47d382dec0d49e74ca1b6f7f3b81f5968022a3c8" + integrity sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-environment-visitor@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz#ac7ad5517821641550f6698dd5468f8cef78620d" + integrity sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g== + +"@babel/helper-function-name@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz#cebdd063386fdb95d511d84b117e51fc68fec0c8" + integrity sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w== + dependencies: + "@babel/template" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/helper-hoist-variables@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz#8a7ece8c26756826b6ffcdd0e3cf65de275af7f9" + integrity sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-member-expression-to-functions@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz#86084f3e0e4e2169a134754df3870bc7784db71e" + integrity sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-module-imports@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz#65e54ffceed6a268dc4ce11f0433b82cfff57852" + integrity sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-module-transforms@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz#22346ed9df44ce84dee850d7433c5b73fab1fe4e" + integrity sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-module-imports" "^7.24.6" + "@babel/helper-simple-access" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" + +"@babel/helper-optimise-call-expression@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz#f7836e3ccca3dfa02f15d2bc8b794efe75a5256e" + integrity sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.6", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz#fa02a32410a15a6e8f8185bcbf608f10528d2a24" + integrity sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg== + +"@babel/helper-remap-async-to-generator@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz#c96ceb9846e877d806ce82a1521230ea7e0fc354" + integrity sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-wrap-function" "^7.24.6" + +"@babel/helper-replace-supers@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz#3ea87405a2986a49ab052d10e540fe036d747c71" + integrity sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-member-expression-to-functions" "^7.24.6" + "@babel/helper-optimise-call-expression" "^7.24.6" + +"@babel/helper-simple-access@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz#1d6e04d468bba4fc963b4906f6dac6286cfedff1" + integrity sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz#c47e9b33b7ea50d1073e125ebc26661717cb7040" + integrity sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-split-export-declaration@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz#e830068f7ba8861c53b7421c284da30ae656d7a3" + integrity sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-string-parser@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz#28583c28b15f2a3339cfafafeaad42f9a0e828df" + integrity sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q== + +"@babel/helper-validator-identifier@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz#08bb6612b11bdec78f3feed3db196da682454a5e" + integrity sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw== + +"@babel/helper-validator-option@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz#59d8e81c40b7d9109ab7e74457393442177f460a" + integrity sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ== + +"@babel/helper-wrap-function@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz#c27af1006e310683fdc76b668a0a1f6003e36217" + integrity sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ== + dependencies: + "@babel/helper-function-name" "^7.24.6" + "@babel/template" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/helpers@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/helpers/-/helpers-7.24.6.tgz#cd124245299e494bd4e00edda0e4ea3545c2c176" + integrity sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA== + dependencies: + "@babel/template" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/highlight/-/highlight-7.24.6.tgz#6d610c1ebd2c6e061cade0153bf69b0590b7b3df" + integrity sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ== + dependencies: + "@babel/helper-validator-identifier" "^7.24.6" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328" + integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q== + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz#283a74ef365b1e954cda6b2724c678a978215e88" + integrity sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz#f9f5ae4d6fb72f5950262cb6f0b2482c3bc684ef" + integrity sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz#ab9be6edfffa127bd5ec4317c76c5af0f8fc7e6c" + integrity sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + "@babel/plugin-transform-optional-chaining" "^7.24.6" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz#0faf879249ec622d7f1c42eaebf7d11197401b2c" + integrity sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz#52521c1c1698fc2dd9cf88f7a4dd86d4d041b9e1" + integrity sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-syntax-import-attributes@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz#12aba325534129584672920274fefa4dc2d5f68e" + integrity sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz#93607d1ef5b81c70af174aff3532d57216367492" + integrity sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-async-generator-functions@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz#fa4a9e5c3a7f60f697ba36587b6c41b04f507d84" + integrity sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-remap-async-to-generator" "^7.24.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz#eb11434b11d73d8c0cf9f71a6f4f1e6ba441df35" + integrity sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g== + dependencies: + "@babel/helper-module-imports" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-remap-async-to-generator" "^7.24.6" + +"@babel/plugin-transform-block-scoped-functions@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz#975555b5bfa9870b1218da536d1528735f1f8c56" + integrity sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-block-scoping@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz#a03ec8a4591c2b43cf7798bc633e698293fda179" + integrity sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-class-properties@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz#d9f394e97e88ef905d5a1e5e7a16238621b7982e" + integrity sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-class-static-block@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz#f43f29286f6f0dca33d18fd5033b817d6c3fa816" + integrity sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz#0cc198c02720d4eeb091004843477659c6b37977" + integrity sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-replace-supers" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz#7a1765c01cdfe59c320d2d0f37a4dc4aecd14df1" + integrity sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/template" "^7.24.6" + +"@babel/plugin-transform-destructuring@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz#bdd1a6c90ffb2bfd13b6007b13316eeafc97cb53" + integrity sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-dotall-regex@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz#5a6b3148ec5f4f274ff48cebea90565087cad126" + integrity sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-duplicate-keys@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz#2716301227cf7cd4fdadcbe4353ce191f8b3dc8a" + integrity sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-dynamic-import@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz#b477177761d56b15a4ba42a83be31cf72d757acf" + integrity sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz#011e9e1a429f91b024af572530873ca571f9ef06" + integrity sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-export-namespace-from@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz#b64ded74d9afb3db5d47d93996c4df69f15ac97c" + integrity sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz#7f31780bd0c582b546372c0c0da9d9d56731e0a2" + integrity sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + +"@babel/plugin-transform-function-name@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz#60d1de3f6fd816a3e3bf9538578a64527e1b9c97" + integrity sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q== + dependencies: + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-json-strings@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz#a84639180ea1f9001bb5e6dc01921235ab05ad8b" + integrity sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz#7f44f2871d7a4456030b0540858046f0b7bc6b18" + integrity sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz#9cc7baa5629866566562c159dc1eae7569810f33" + integrity sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz#5d3681ca201ac6909419cc51ac082a6ba4c5c756" + integrity sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-modules-amd@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz#09aeac7acb7913496aaaafdc64f40683e0db7e41" + integrity sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ== + dependencies: + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-modules-commonjs@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz#1b8269902f25bd91ca6427230d4735ddd1e1283e" + integrity sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw== + dependencies: + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-simple-access" "^7.24.6" + +"@babel/plugin-transform-modules-systemjs@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz#c54eb53fe16f9b82d320abd76762d0320e3f9393" + integrity sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w== + dependencies: + "@babel/helper-hoist-variables" "^7.24.6" + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" + +"@babel/plugin-transform-modules-umd@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz#c4ef8b6d4da230b8dc87e81cd66986728952f89b" + integrity sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg== + dependencies: + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz#352ee2861ab8705320029f80238cf26a92ba65d5" + integrity sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-new-target@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz#fc024294714705113720d5e3dc0f9ad7abdbc289" + integrity sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz#12b83b3cdfd1cd2066350e36e4fb912ab194545e" + integrity sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz#d9115669cc85aa91fbfb15f88f2226332cf4946a" + integrity sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz#68d763f69955f9e599c405c6c876f5be46b47d8a" + integrity sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg== + dependencies: + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.6" + +"@babel/plugin-transform-object-super@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz#9cbe6f995bed343a7ab8daf0416dac057a9c3e27" + integrity sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-replace-supers" "^7.24.6" + +"@babel/plugin-transform-optional-catch-binding@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz#c81e90a971aad898e56f2b75a358e6c4855aeba3" + integrity sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz#3d636b3ed8b5a506f93e4d4675fc95754d7594f5" + integrity sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz#7aee86dfedd2fc0136fecbe6f7649fc02d86ab22" + integrity sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-private-methods@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz#258e1f859a52ff7b30ad556598224c192defcda7" + integrity sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-private-property-in-object@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz#59ff09a099f62213112cf348e96b6b11957d1f28" + integrity sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz#243c4faabe811c405e9443059a58e834bf95dfd1" + integrity sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-regenerator@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz#ed10cf0c13619365e15459f88d1b915ac57ffc24" + integrity sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz#9eb16cbf339fcea0a46677716c775afb5ef14245" + integrity sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-shorthand-properties@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz#ef734ebccc428d2174c7bb36015d0800faf5381e" + integrity sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-spread@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz#a56cecbd8617675531d1b79f5b755b7613aa0822" + integrity sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + +"@babel/plugin-transform-sticky-regex@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz#1a78127731fea87d954bed193840986a38f04327" + integrity sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-template-literals@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz#aaf2ae157acd0e5c9265dba8ac0a439f8d2a6303" + integrity sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-typeof-symbol@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz#3d02da23ebcc8f1982ddcd1f2581cf3ee4e58762" + integrity sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-unicode-escapes@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz#c8ddca8fd5bacece837a4e27bd3b7ed64580d1a8" + integrity sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-unicode-property-regex@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz#e66297d5d452db0b0be56515e3d0e10b7d33fb32" + integrity sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-unicode-regex@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz#2001e7d87ed709eea145e0b65fb5f93c3c0e225b" + integrity sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz#f18b7292222aee85c155258ceb345a146a070a46" + integrity sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/preset-env@^7.20.2": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/preset-env/-/preset-env-7.24.6.tgz#a5a55bc70e5ff1ed7f872067e2a9d65ff917ad6f" + integrity sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg== + dependencies: + "@babel/compat-data" "^7.24.6" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.6" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.6" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.6" + "@babel/plugin-syntax-import-attributes" "^7.24.6" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.6" + "@babel/plugin-transform-async-generator-functions" "^7.24.6" + "@babel/plugin-transform-async-to-generator" "^7.24.6" + "@babel/plugin-transform-block-scoped-functions" "^7.24.6" + "@babel/plugin-transform-block-scoping" "^7.24.6" + "@babel/plugin-transform-class-properties" "^7.24.6" + "@babel/plugin-transform-class-static-block" "^7.24.6" + "@babel/plugin-transform-classes" "^7.24.6" + "@babel/plugin-transform-computed-properties" "^7.24.6" + "@babel/plugin-transform-destructuring" "^7.24.6" + "@babel/plugin-transform-dotall-regex" "^7.24.6" + "@babel/plugin-transform-duplicate-keys" "^7.24.6" + "@babel/plugin-transform-dynamic-import" "^7.24.6" + "@babel/plugin-transform-exponentiation-operator" "^7.24.6" + "@babel/plugin-transform-export-namespace-from" "^7.24.6" + "@babel/plugin-transform-for-of" "^7.24.6" + "@babel/plugin-transform-function-name" "^7.24.6" + "@babel/plugin-transform-json-strings" "^7.24.6" + "@babel/plugin-transform-literals" "^7.24.6" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.6" + "@babel/plugin-transform-member-expression-literals" "^7.24.6" + "@babel/plugin-transform-modules-amd" "^7.24.6" + "@babel/plugin-transform-modules-commonjs" "^7.24.6" + "@babel/plugin-transform-modules-systemjs" "^7.24.6" + "@babel/plugin-transform-modules-umd" "^7.24.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.6" + "@babel/plugin-transform-new-target" "^7.24.6" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.6" + "@babel/plugin-transform-numeric-separator" "^7.24.6" + "@babel/plugin-transform-object-rest-spread" "^7.24.6" + "@babel/plugin-transform-object-super" "^7.24.6" + "@babel/plugin-transform-optional-catch-binding" "^7.24.6" + "@babel/plugin-transform-optional-chaining" "^7.24.6" + "@babel/plugin-transform-parameters" "^7.24.6" + "@babel/plugin-transform-private-methods" "^7.24.6" + "@babel/plugin-transform-private-property-in-object" "^7.24.6" + "@babel/plugin-transform-property-literals" "^7.24.6" + "@babel/plugin-transform-regenerator" "^7.24.6" + "@babel/plugin-transform-reserved-words" "^7.24.6" + "@babel/plugin-transform-shorthand-properties" "^7.24.6" + "@babel/plugin-transform-spread" "^7.24.6" + "@babel/plugin-transform-sticky-regex" "^7.24.6" + "@babel/plugin-transform-template-literals" "^7.24.6" + "@babel/plugin-transform-typeof-symbol" "^7.24.6" + "@babel/plugin-transform-unicode-escapes" "^7.24.6" + "@babel/plugin-transform-unicode-property-regex" "^7.24.6" + "@babel/plugin-transform-unicode-regex" "^7.24.6" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.6" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.8.4": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/runtime/-/runtime-7.24.6.tgz#5b76eb89ad45e2e4a0a8db54c456251469a3358e" + integrity sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/template/-/template-7.24.6.tgz#048c347b2787a6072b24c723664c8d02b67a44f9" + integrity sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw== + dependencies: + "@babel/code-frame" "^7.24.6" + "@babel/parser" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/traverse@^7.24.6": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/traverse/-/traverse-7.24.6.tgz#0941ec50cdeaeacad0911eb67ae227a4f8424edc" + integrity sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw== + dependencies: + "@babel/code-frame" "^7.24.6" + "@babel/generator" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-hoist-variables" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + "@babel/parser" "^7.24.6" + "@babel/types" "^7.24.6" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.24.6", "@babel/types@^7.4.4": + version "7.24.6" + resolved "https://mirrors.cloud.tencent.com/npm/@babel/types/-/types-7.24.6.tgz#ba4e1f59870c10dc2fa95a274ac4feec23b21912" + integrity sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ== + dependencies: + "@babel/helper-string-parser" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" + to-fast-properties "^2.0.0" + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://mirrors.cloud.tencent.com/npm/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://mirrors.cloud.tencent.com/npm/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://mirrors.cloud.tencent.com/npm/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.1" + resolved "https://mirrors.cloud.tencent.com/npm/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://mirrors.cloud.tencent.com/npm/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://mirrors.cloud.tencent.com/npm/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://mirrors.cloud.tencent.com/npm/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://mirrors.cloud.tencent.com/npm/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://mirrors.cloud.tencent.com/npm/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://mirrors.cloud.tencent.com/npm/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://mirrors.cloud.tencent.com/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://mirrors.cloud.tencent.com/npm/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://mirrors.cloud.tencent.com/npm/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@types/eslint-scope@^3.7.3": + version "3.7.7" + resolved "https://mirrors.cloud.tencent.com/npm/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.56.10" + resolved "https://mirrors.cloud.tencent.com/npm/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.5": + version "1.0.5" + resolved "https://mirrors.cloud.tencent.com/npm/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/glob@^7.1.3": + version "7.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://mirrors.cloud.tencent.com/npm/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://mirrors.cloud.tencent.com/npm/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/mathjax@0.0.37": + version "0.0.37" + resolved "https://mirrors.cloud.tencent.com/npm/@types/mathjax/-/mathjax-0.0.37.tgz#31a0076ced55c2e12da75edb44db45098b6feed6" + integrity sha512-y0WSZBtBNQwcYipTU/BhgeFu1EZNlFvUNCmkMXV9kBQZq7/o5z82dNVyH3yy2Xv5zzeNeQoHSL4Xm06+EQiH+g== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/mocha@^8.2.2": + version "8.2.3" + resolved "https://mirrors.cloud.tencent.com/npm/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" + integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== + +"@types/node@*": + version "20.12.14" + resolved "https://mirrors.cloud.tencent.com/npm/@types/node/-/node-20.12.14.tgz#0c5cf7ef26aedfd64b0539bba9380ed1f57dcc77" + integrity sha512-scnD59RpYD91xngrQQLGkE+6UrHUPzeKZWhhjBSa3HSkwjbQc38+q3RoIVEwxQGRw3M+j5hpNAM+lgV3cVormg== + dependencies: + undici-types "~5.26.4" + +"@types/node@14.x": + version "14.18.63" + resolved "https://mirrors.cloud.tencent.com/npm/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b" + integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== + +"@types/vscode@^1.58.0": + version "1.89.0" + resolved "https://mirrors.cloud.tencent.com/npm/@types/vscode/-/vscode-1.89.0.tgz#df0beb3f4ab9133ee8c5fcac8fc578e4623d8749" + integrity sha512-TMfGKLSVxfGfoO8JfIE/neZqv7QLwS4nwPwL/NwMvxtAY2230H2I4Z5xx6836pmJvMAzqooRQ4pmLm7RUicP3A== + +"@typescript-eslint/eslint-plugin@^4.26.0": + version "4.33.0" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== + dependencies: + "@typescript-eslint/experimental-utils" "4.33.0" + "@typescript-eslint/scope-manager" "4.33.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.33.0": + version "4.33.0" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.26.0": + version "4.33.0" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== + dependencies: + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": + version "1.12.1" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@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" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@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" + +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + 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" + +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.12.1" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@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" + +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://mirrors.cloud.tencent.com/npm/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== + +"@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://mirrors.cloud.tencent.com/npm/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://mirrors.cloud.tencent.com/npm/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://mirrors.cloud.tencent.com/npm/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://mirrors.cloud.tencent.com/npm/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://mirrors.cloud.tencent.com/npm/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://mirrors.cloud.tencent.com/npm/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.7.1, acorn@^8.8.2: + version "8.11.3" + resolved "https://mirrors.cloud.tencent.com/npm/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +agent-base@6: + version "6.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://mirrors.cloud.tencent.com/npm/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://mirrors.cloud.tencent.com/npm/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.0.1, ajv@^8.9.0: + version "8.14.0" + resolved "https://mirrors.cloud.tencent.com/npm/ajv/-/ajv-8.14.0.tgz#f514ddfd4756abb200e1704414963620a625ebbb" + integrity sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA== + dependencies: + fast-deep-equal "^3.1.3" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.4.1" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://mirrors.cloud.tencent.com/npm/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://mirrors.cloud.tencent.com/npm/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.1: + version "3.1.3" + resolved "https://mirrors.cloud.tencent.com/npm/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://mirrors.cloud.tencent.com/npm/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-includes@^3.1.7: + version "3.1.8" + resolved "https://mirrors.cloud.tencent.com/npm/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.findlastindex@^1.2.3: + version "1.2.5" + resolved "https://mirrors.cloud.tencent.com/npm/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://mirrors.cloud.tencent.com/npm/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://mirrors.cloud.tencent.com/npm/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://mirrors.cloud.tencent.com/npm/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://mirrors.cloud.tencent.com/npm/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axios@^1.4.0: + version "1.7.2" + resolved "https://mirrors.cloud.tencent.com/npm/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-loader@^9.1.2: + version "9.1.3" + resolved "https://mirrors.cloud.tencent.com/npm/babel-loader/-/babel-loader-9.1.3.tgz#3d0e01b4e69760cc694ee306fe16d358aa1c6f9a" + integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== + dependencies: + find-cache-dir "^4.0.0" + schema-utils "^4.0.0" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://mirrors.cloud.tencent.com/npm/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.4" + resolved "https://mirrors.cloud.tencent.com/npm/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz#789ac82405ad664c20476d0233b485281deb9c77" + integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.1" + core-js-compat "^3.36.1" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://mirrors.cloud.tencent.com/npm/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +big-integer@^1.6.17: + version "1.6.52" + resolved "https://mirrors.cloud.tencent.com/npm/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +binary@~0.3.0: + version "0.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" + integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg== + dependencies: + buffers "~0.1.1" + chainsaw "~0.1.0" + +bluebird@~3.4.1: + version "3.4.7" + resolved "https://mirrors.cloud.tencent.com/npm/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" + integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://mirrors.cloud.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://mirrors.cloud.tencent.com/npm/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0: + version "4.23.0" + resolved "https://mirrors.cloud.tencent.com/npm/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof-polyfill@~1.0.0: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" + integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== + +buffers@~0.1.1: + version "0.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" + integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://mirrors.cloud.tencent.com/npm/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + 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.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001587: + version "1.0.30001625" + resolved "https://mirrors.cloud.tencent.com/npm/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz#ead1b155ea691d6a87938754d3cb119c24465b03" + integrity sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w== + +chainsaw@~0.1.0: + version "0.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" + integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ== + dependencies: + traverse ">=0.3.0 <0.4" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://mirrors.cloud.tencent.com/npm/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +charenc@0.0.2: + version "0.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +chokidar@3.5.1: + version "3.5.1" + resolved "https://mirrors.cloud.tencent.com/npm/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://mirrors.cloud.tencent.com/npm/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://mirrors.cloud.tencent.com/npm/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://mirrors.cloud.tencent.com/npm/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.14: + version "2.0.20" + resolved "https://mirrors.cloud.tencent.com/npm/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://mirrors.cloud.tencent.com/npm/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.20.0: + version "2.20.3" + resolved "https://mirrors.cloud.tencent.com/npm/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.0.0: + version "7.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +core-js-compat@^3.31.0, core-js-compat@^3.36.1: + version "3.37.1" + resolved "https://mirrors.cloud.tencent.com/npm/core-js-compat/-/core-js-compat-3.37.1.tgz#c844310c7852f4bdf49b8d339730b97e17ff09ee" + integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== + dependencies: + browserslist "^4.23.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.5" + resolved "https://mirrors.cloud.tencent.com/npm/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + +debug@4.3.1: + version "4.3.1" + resolved "https://mirrors.cloud.tencent.com/npm/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://mirrors.cloud.tencent.com/npm/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://mirrors.cloud.tencent.com/npm/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://mirrors.cloud.tencent.com/npm/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://mirrors.cloud.tencent.com/npm/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +diff@5.0.0: + version "5.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +duplexer2@~0.1.4: + version "0.1.4" + resolved "https://mirrors.cloud.tencent.com/npm/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== + dependencies: + readable-stream "^2.0.2" + +electron-to-chromium@^1.4.668: + version "1.4.787" + resolved "https://mirrors.cloud.tencent.com/npm/electron-to-chromium/-/electron-to-chromium-1.4.787.tgz#3eedd0a3b8be2b9e96e21675d399786ad90b99ed" + integrity sha512-d0EFmtLPjctczO3LogReyM2pbBiiZbnsKnGF+cdZhsYzHm/A0GV7W94kqzLD8SN4O3f3iHlgLUChqghgyznvCQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +enhanced-resolve@^5.0.0, enhanced-resolve@^5.16.0: + version "5.16.1" + resolved "https://mirrors.cloud.tencent.com/npm/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz#e8bc63d51b826d6f1cbc0a150ecb5a8b0c62e567" + integrity sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.5: + version "2.4.1" + resolved "https://mirrors.cloud.tencent.com/npm/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + dependencies: + ansi-colors "^4.1.1" + strip-ansi "^6.0.1" + +envinfo@^7.7.3: + version "7.13.0" + resolved "https://mirrors.cloud.tencent.com/npm/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" + integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== + +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://mirrors.cloud.tencent.com/npm/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + 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.3" + 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" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.5.3" + resolved "https://mirrors.cloud.tencent.com/npm/es-module-lexer/-/es-module-lexer-1.5.3.tgz#25969419de9c0b1fbe54279789023e8a9a788412" + integrity sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://mirrors.cloud.tencent.com/npm/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://mirrors.cloud.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +eslint-config-prettier@^8.5.0: + version "8.10.0" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" + integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== + +eslint-config-tencent@^1.0.4: + version "1.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-config-tencent/-/eslint-config-tencent-1.0.4.tgz#3196811af942202350c57f67ef0b6e81eaf9bcd3" + integrity sha512-h8r5f4iUdF5RyfIhOA+KXVAokltyUs4sGnYrzbY6bSZvUzYS282C2s4z3AYA8DCBfDaKPtUsDBOF+tEy38wTyA== + dependencies: + "@babel/eslint-parser" "^7.14.5" + eslint-plugin-chalk "^1.0.0" + eslint-plugin-import "^2.23.4" + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.8.0: + version "2.8.1" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== + dependencies: + debug "^3.2.7" + +eslint-plugin-chalk@^1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-plugin-chalk/-/eslint-plugin-chalk-1.0.0.tgz#5de52a1ce36e787ae9b15ea501a18573ba3d42bd" + integrity sha512-FTi6Wi5dSrkXEVHHojRwyRZZnNFXGnTytuWlrJ3P9HkmMZWTZC3vUaDpyb6jNkumdlrqK0FN8eI3XJG70FwBNA== + dependencies: + chalk "^4.1.2" + +eslint-plugin-import@^2.23.4: + version "2.29.1" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-prettier@^4.0.0: + version "4.2.1" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@^7.27.0: + version "7.32.0" + resolved "https://mirrors.cloud.tencent.com/npm/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + 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.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://mirrors.cloud.tencent.com/npm/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.5.0" + resolved "https://mirrors.cloud.tencent.com/npm/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +events@^3.2.0: + version "3.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://mirrors.cloud.tencent.com/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.9: + version "3.3.2" + resolved "https://mirrors.cloud.tencent.com/npm/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://mirrors.cloud.tencent.com/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://mirrors.cloud.tencent.com/npm/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://mirrors.cloud.tencent.com/npm/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== + dependencies: + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" + +find-up@5.0.0: + version "5.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^6.3.0: + version "6.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.9: + version "3.3.1" + resolved "https://mirrors.cloud.tencent.com/npm/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://mirrors.cloud.tencent.com/npm/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://mirrors.cloud.tencent.com/npm/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.1: + version "2.3.3" + resolved "https://mirrors.cloud.tencent.com/npm/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +fstream@^1.0.12: + version "1.0.12" + resolved "https://mirrors.cloud.tencent.com/npm/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://mirrors.cloud.tencent.com/npm/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://mirrors.cloud.tencent.com/npm/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://mirrors.cloud.tencent.com/npm/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://mirrors.cloud.tencent.com/npm/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://mirrors.cloud.tencent.com/npm/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +glob-parent@^5.1.2, glob-parent@~5.1.0: + version "5.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://mirrors.cloud.tencent.com/npm/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@7.1.6: + version "7.1.6" + resolved "https://mirrors.cloud.tencent.com/npm/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.3, glob@^7.1.7: + version "7.2.3" + resolved "https://mirrors.cloud.tencent.com/npm/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://mirrors.cloud.tencent.com/npm/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.6.0, globals@^13.9.0: + version "13.24.0" + resolved "https://mirrors.cloud.tencent.com/npm/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@^11.0.3: + version "11.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4: + version "4.2.11" + resolved "https://mirrors.cloud.tencent.com/npm/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +growl@1.10.5: + version "1.10.5" + resolved "https://mirrors.cloud.tencent.com/npm/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@1.2.0: + version "1.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +ignore@^4.0.6: + version "4.0.6" + resolved "https://mirrors.cloud.tencent.com/npm/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.8, ignore@^5.2.0: + version "5.3.1" + resolved "https://mirrors.cloud.tencent.com/npm/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://mirrors.cloud.tencent.com/npm/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://mirrors.cloud.tencent.com/npm/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@~2.0.0, inherits@~2.0.3: + version "2.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://mirrors.cloud.tencent.com/npm/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +interpret@^2.2.0: + version "2.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@~1.1.6: + version "1.1.6" + resolved "https://mirrors.cloud.tencent.com/npm/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://mirrors.cloud.tencent.com/npm/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.13.1" + resolved "https://mirrors.cloud.tencent.com/npm/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://mirrors.cloud.tencent.com/npm/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://mirrors.cloud.tencent.com/npm/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://mirrors.cloud.tencent.com/npm/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://mirrors.cloud.tencent.com/npm/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://mirrors.cloud.tencent.com/npm/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://mirrors.cloud.tencent.com/npm/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://mirrors.cloud.tencent.com/npm/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" + integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://mirrors.cloud.tencent.com/npm/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://mirrors.cloud.tencent.com/npm/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://mirrors.cloud.tencent.com/npm/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://mirrors.cloud.tencent.com/npm/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://mirrors.cloud.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.2.3: + version "2.2.3" + resolved "https://mirrors.cloud.tencent.com/npm/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +katex@^0.16.4: + version "0.16.10" + resolved "https://mirrors.cloud.tencent.com/npm/katex/-/katex-0.16.10.tgz#6f81b71ac37ff4ec7556861160f53bc5f058b185" + integrity sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA== + dependencies: + commander "^8.3.0" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://mirrors.cloud.tencent.com/npm/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +levn@^0.4.1: + version "0.4.1" + resolved "https://mirrors.cloud.tencent.com/npm/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +listenercount@~1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" + integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://mirrors.cloud.tencent.com/npm/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://mirrors.cloud.tencent.com/npm/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://mirrors.cloud.tencent.com/npm/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +log-symbols@4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +mathjax@^3.2.2: + version "3.2.2" + resolved "https://mirrors.cloud.tencent.com/npm/mathjax/-/mathjax-3.2.2.tgz#c754d7b46a679d7f3fa03543d6b8bf124ddf9f6b" + integrity sha512-Bt+SSVU8eBG27zChVewOicYs7Xsdt40qm4+UpHyX7k0/O9NliPc+x77k1/FEsPsjKPZGJvtRZM1vO+geW0OhGw== + +md5@^2.3.0: + version "2.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://mirrors.cloud.tencent.com/npm/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.0, micromatch@^4.0.4: + version "4.0.7" + resolved "https://mirrors.cloud.tencent.com/npm/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://mirrors.cloud.tencent.com/npm/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27: + version "2.1.35" + resolved "https://mirrors.cloud.tencent.com/npm/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +minimatch@3.0.4: + version "3.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.8" + resolved "https://mirrors.cloud.tencent.com/npm/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"mkdirp@>=0.5 0": + version "0.5.6" + resolved "https://mirrors.cloud.tencent.com/npm/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mocha@^8.4.0: + version "8.4.0" + resolved "https://mirrors.cloud.tencent.com/npm/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" + integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.1" + debug "4.3.1" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.6" + growl "1.10.5" + he "1.2.0" + js-yaml "4.0.0" + log-symbols "4.0.0" + minimatch "3.0.4" + ms "2.1.3" + nanoid "3.1.20" + serialize-javascript "5.0.1" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + wide-align "1.1.3" + workerpool "6.1.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +ms@2.1.2: + version "2.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://mirrors.cloud.tencent.com/npm/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@3.1.20: + version "3.1.20" + resolved "https://mirrors.cloud.tencent.com/npm/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://mirrors.cloud.tencent.com/npm/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://mirrors.cloud.tencent.com/npm/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://mirrors.cloud.tencent.com/npm/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://mirrors.cloud.tencent.com/npm/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.5: + version "4.1.5" + resolved "https://mirrors.cloud.tencent.com/npm/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.fromentries@^2.0.7: + version "2.0.8" + resolved "https://mirrors.cloud.tencent.com/npm/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.values@^1.1.7: + version "1.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +once@^1.3.0: + version "1.4.0" + resolved "https://mirrors.cloud.tencent.com/npm/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.4" + resolved "https://mirrors.cloud.tencent.com/npm/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://mirrors.cloud.tencent.com/npm/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://mirrors.cloud.tencent.com/npm/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://mirrors.cloud.tencent.com/npm/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0: + version "2.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://mirrors.cloud.tencent.com/npm/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://mirrors.cloud.tencent.com/npm/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +readable-stream@^2.0.2, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://mirrors.cloud.tencent.com/npm/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://mirrors.cloud.tencent.com/npm/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.7.0: + version "0.7.1" + resolved "https://mirrors.cloud.tencent.com/npm/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://mirrors.cloud.tencent.com/npm/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://mirrors.cloud.tencent.com/npm/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://mirrors.cloud.tencent.com/npm/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://mirrors.cloud.tencent.com/npm/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://mirrors.cloud.tencent.com/npm/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://mirrors.cloud.tencent.com/npm/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve@^1.14.2, resolve@^1.22.4, resolve@^1.9.0: + version "1.22.8" + resolved "https://mirrors.cloud.tencent.com/npm/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@2: + version "2.7.1" + resolved "https://mirrors.cloud.tencent.com/npm/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@^5.1.0: + version "5.2.1" + resolved "https://mirrors.cloud.tencent.com/npm/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://mirrors.cloud.tencent.com/npm/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +semver@^6.3.1: + version "6.3.1" + resolved "https://mirrors.cloud.tencent.com/npm/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.2.1, semver@^7.3.4, semver@^7.3.5: + version "7.6.2" + resolved "https://mirrors.cloud.tencent.com/npm/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +serialize-javascript@5.0.1: + version "5.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://mirrors.cloud.tencent.com/npm/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + 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" + +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +setimmediate@~1.0.4: + version "1.0.5" + resolved "https://mirrors.cloud.tencent.com/npm/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://mirrors.cloud.tencent.com/npm/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +slash@^3.0.0: + version "3.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://mirrors.cloud.tencent.com/npm/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://mirrors.cloud.tencent.com/npm/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.4: + version "0.7.4" + resolved "https://mirrors.cloud.tencent.com/npm/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://mirrors.cloud.tencent.com/npm/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://mirrors.cloud.tencent.com/npm/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://mirrors.cloud.tencent.com/npm/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://mirrors.cloud.tencent.com/npm/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@8.1.1, supports-color@^8.0.0: + version "8.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://mirrors.cloud.tencent.com/npm/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +table@^6.0.9: + version "6.8.2" + resolved "https://mirrors.cloud.tencent.com/npm/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" + integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://mirrors.cloud.tencent.com/npm/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser-webpack-plugin@^5.3.10: + version "5.3.10" + resolved "https://mirrors.cloud.tencent.com/npm/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@^5.26.0: + version "5.31.0" + resolved "https://mirrors.cloud.tencent.com/npm/terser/-/terser-5.31.0.tgz#06eef86f17007dbad4593f11a574c7f5eb02c6a1" + integrity sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +"traverse@>=0.3.0 <0.4": + version "0.3.9" + resolved "https://mirrors.cloud.tencent.com/npm/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" + integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== + +ts-loader@^9.2.2: + version "9.5.1" + resolved "https://mirrors.cloud.tencent.com/npm/ts-loader/-/ts-loader-9.5.1.tgz#63d5912a86312f1fbe32cef0859fb8b2193d9b89" + integrity sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + source-map "^0.7.4" + +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://mirrors.cloud.tencent.com/npm/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://mirrors.cloud.tencent.com/npm/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://mirrors.cloud.tencent.com/npm/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://mirrors.cloud.tencent.com/npm/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://mirrors.cloud.tencent.com/npm/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + 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" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + 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" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://mirrors.cloud.tencent.com/npm/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + 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" + +typescript@^4.3.2: + version "4.9.5" + resolved "https://mirrors.cloud.tencent.com/npm/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://mirrors.cloud.tencent.com/npm/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unzipper@^0.10.11: + version "0.10.14" + resolved "https://mirrors.cloud.tencent.com/npm/unzipper/-/unzipper-0.10.14.tgz#d2b33c977714da0fbc0f82774ad35470a7c962b1" + integrity sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g== + dependencies: + big-integer "^1.6.17" + binary "~0.3.0" + bluebird "~3.4.1" + buffer-indexof-polyfill "~1.0.0" + duplexer2 "~0.1.4" + fstream "^1.0.12" + graceful-fs "^4.2.2" + listenercount "~1.0.1" + readable-stream "~2.3.6" + setimmediate "~1.0.4" + +update-browserslist-db@^1.0.13: + version "1.0.16" + resolved "https://mirrors.cloud.tencent.com/npm/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +uri-js@^4.2.2, uri-js@^4.4.1: + version "4.4.1" + resolved "https://mirrors.cloud.tencent.com/npm/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +v8-compile-cache@^2.0.3: + version "2.4.0" + resolved "https://mirrors.cloud.tencent.com/npm/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" + integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== + +vscode-test@^1.5.2: + version "1.6.1" + resolved "https://mirrors.cloud.tencent.com/npm/vscode-test/-/vscode-test-1.6.1.tgz#44254c67036de92b00fdd72f6ace5f1854e1a563" + integrity sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA== + dependencies: + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + rimraf "^3.0.2" + unzipper "^0.10.11" + +watchpack@^2.4.1: + version "2.4.1" + resolved "https://mirrors.cloud.tencent.com/npm/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +webpack-cli@^4.7.0: + version "4.10.0" + resolved "https://mirrors.cloud.tencent.com/npm/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" + colorette "^2.0.14" + commander "^7.0.0" + cross-spawn "^7.0.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" + +webpack-merge@^5.7.3: + version "5.10.0" + resolved "https://mirrors.cloud.tencent.com/npm/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://mirrors.cloud.tencent.com/npm/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.38.1: + version "5.91.0" + resolved "https://mirrors.cloud.tencent.com/npm/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" + integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.16.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://mirrors.cloud.tencent.com/npm/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + 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" + +which@2.0.2, which@^2.0.1: + version "2.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3: + version "1.1.3" + resolved "https://mirrors.cloud.tencent.com/npm/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://mirrors.cloud.tencent.com/npm/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://mirrors.cloud.tencent.com/npm/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +workerpool@6.1.0: + version "6.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" + integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://mirrors.cloud.tencent.com/npm/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +xmldom-sre@^0.1.31: + version "0.1.31" + resolved "https://mirrors.cloud.tencent.com/npm/xmldom-sre/-/xmldom-sre-0.1.31.tgz#10860d5bab2c603144597d04bf2c4980e98067f4" + integrity sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://mirrors.cloud.tencent.com/npm/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://mirrors.cloud.tencent.com/npm/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://mirrors.cloud.tencent.com/npm/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://mirrors.cloud.tencent.com/npm/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://mirrors.cloud.tencent.com/npm/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://mirrors.cloud.tencent.com/npm/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://mirrors.cloud.tencent.com/npm/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== From 1859e2080f908ee19f0aeb057631807ded5feded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Wed, 5 Jun 2024 12:13:15 +0800 Subject: [PATCH 06/40] =?UTF-8?q?feat:=20#774=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=80=89=E5=8C=BA=E6=94=B9=E5=8F=98=E4=BA=8B=E4=BB=B6=20select?= =?UTF-8?q?ionChange?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Cherry.config.js | 9 +++++---- src/Event.js | 6 ++++++ src/toolbars/Bubble.js | 10 ++++++++++ types/cherry.d.ts | 7 ++++--- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/Cherry.config.js b/src/Cherry.config.js index 418e858d..15eaa454 100644 --- a/src/Cherry.config.js +++ b/src/Cherry.config.js @@ -52,8 +52,8 @@ const callbacks = { callback('images/demo-dog.png'); } }, - afterChange: (text, html) => {}, - afterInit: (text, html) => {}, + afterChange: ({ text, html }) => {}, + afterInit: ({ text, html }) => {}, beforeImageMounted: (srcProp, src) => ({ srcProp, src }), onClickPreview: (event) => {}, /** @@ -374,8 +374,9 @@ const defaultConfig = { // 当编辑区内容有实际变化时触发 afterChange: callbacks.afterChange, afterInit: callbacks.afterInit, - focus: (event, cherryInstance) => {}, - blur: (event, cherryInstance) => {}, + focus: ({ e, cherry }) => {}, + blur: ({ e, cherry }) => {}, + selectionChange: ({ selections, lastSelections, info }) => {}, }, previewer: { dom: false, diff --git a/src/Event.js b/src/Event.js index b22d1f79..618d81c8 100644 --- a/src/Event.js +++ b/src/Event.js @@ -38,6 +38,7 @@ export default class Event { afterInit: 'afterInit', // 编辑器初始化完成 focus: 'focus', // 焦点 blur: 'blur', // 失焦 + selectionChange: 'selectionChange', // 选区内容改变时触发 }; /** @@ -90,6 +91,11 @@ export default class Event { options.event.blur(event); }); } + if (options.event.selectionChange) { + this.on(this.Events.selectionChange, (event) => { + options.event.selectionChange(event); + }); + } } /** diff --git a/src/toolbars/Bubble.js b/src/toolbars/Bubble.js index fa9b53e1..70d84faa 100644 --- a/src/toolbars/Bubble.js +++ b/src/toolbars/Bubble.js @@ -171,6 +171,16 @@ export default class Bubble extends Toolbar { this.updatePositionWhenScroll(); }); this.options.editor.addListener('beforeSelectionChange', (codemirror, info) => { + setTimeout(() => { + const selections = codemirror.getSelections(); + const selectionStr = selections.join(''); + if (selectionStr !== this.lastSelectionsStr && (selectionStr || this.lastSelectionsStr)) { + this.lastSelections = !this.lastSelections ? [] : this.lastSelections; + this.$cherry.$event.emit('selectionChange', { selections, lastSelections: this.lastSelections, info }); + this.lastSelections = selections; + this.lastSelectionsStr = selectionStr; + } + }, 10); // 当编辑区选中内容改变时,需要展示/隐藏bubble工具栏,并计算工具栏位置 if (info.origin !== '*mouse' && (info.origin !== null || typeof info.origin === 'undefined')) { return true; diff --git a/types/cherry.d.ts b/types/cherry.d.ts index cea7f0b1..b2c827cd 100644 --- a/types/cherry.d.ts +++ b/types/cherry.d.ts @@ -54,12 +54,13 @@ export interface CherryOptions { onPaste?: (clipboardData: ClipboardEvent['clipboardData']) => string|boolean; }; event: { - focus?: (e: MouseEvent, cherry: Cherry) => void; - blur?: (e: MouseEvent, cherry: Cherry) => void; + focus?: ({ e: MouseEvent, cherry: Cherry }) => void; + blur?: ({ e: MouseEvent, cherry: Cherry }) => void; /** 编辑器内容改变并完成渲染后触发 */ afterChange?: CherryLifecycle; /** 编辑器完成初次渲染后触发 */ afterInit?: CherryLifecycle; + selectionChange?: ({ selections: [], lastSelections: [], info} ) => void; }; /** 预览区域配置 */ previewer: CherryPreviewerOptions; @@ -175,7 +176,7 @@ export interface CherryEditorOptions { showSuggestList?: boolean; } -export type CherryLifecycle = (text: string, html: string) => void; +export type CherryLifecycle = ({ text, html }) => void; export interface CherryPreviewerOptions { dom: HTMLDivElement | false; From 8c03f959a93312ab8dcc0ae27b298d9a7f557bf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Wed, 5 Jun 2024 12:39:59 +0800 Subject: [PATCH 07/40] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DafterInit?= =?UTF-8?q?=E5=A4=B1=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Cherry.config.js | 4 ++-- src/Cherry.js | 12 +++++++++--- types/cherry.d.ts | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Cherry.config.js b/src/Cherry.config.js index 15eaa454..8f08aead 100644 --- a/src/Cherry.config.js +++ b/src/Cherry.config.js @@ -52,8 +52,8 @@ const callbacks = { callback('images/demo-dog.png'); } }, - afterChange: ({ text, html }) => {}, - afterInit: ({ text, html }) => {}, + afterChange: (text, html) => {}, + afterInit: (text, html) => {}, beforeImageMounted: (srcProp, src) => ({ srcProp, src }), onClickPreview: (event) => {}, /** diff --git a/src/Cherry.js b/src/Cherry.js index f80174de..010b0361 100644 --- a/src/Cherry.js +++ b/src/Cherry.js @@ -228,6 +228,12 @@ export default class Cherry extends CherryStatic { on(eventName, callback) { if (this.$event.Events[eventName]) { + if (/afterInit|afterChange/.test(eventName)) { + // 做特殊处理 + return this.$event.on(eventName, (msg) => { + callback(msg.markdownText, msg.html); + }); + } return this.$event.on(eventName, callback); } switch (eventName) { @@ -712,9 +718,9 @@ export default class Cherry extends CherryStatic { const markdownText = codemirror.getValue(); const html = this.engine.makeHtml(markdownText); this.previewer.update(html); - if (this.options.callback.afterInit) { - this.options.callback.afterInit(markdownText, html); - } + setTimeout(() => { + this.$event.emit('afterInit', { markdownText, html }); + }, 10); } catch (e) { throw new NestedError(e); } diff --git a/types/cherry.d.ts b/types/cherry.d.ts index b2c827cd..aa151a19 100644 --- a/types/cherry.d.ts +++ b/types/cherry.d.ts @@ -176,7 +176,7 @@ export interface CherryEditorOptions { showSuggestList?: boolean; } -export type CherryLifecycle = ({ text, html }) => void; +export type CherryLifecycle = (text: String, html: String) => void; export interface CherryPreviewerOptions { dom: HTMLDivElement | false; From 036f070b3d0a724075366dbd3b1fe4f92d6154f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Thu, 6 Jun 2024 11:44:41 +0800 Subject: [PATCH 08/40] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dvscode=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E8=87=AA=E5=8A=A8=E6=89=93=E5=BC=80=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vscodePlugin/package.json | 2 +- vscodePlugin/src/extension.ts | 19 ++++++++++--------- vscodePlugin/src/readme.md | 9 +++++++++ 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/vscodePlugin/package.json b/vscodePlugin/package.json index 4a30cea2..ef4c60ad 100644 --- a/vscodePlugin/package.json +++ b/vscodePlugin/package.json @@ -2,7 +2,7 @@ "name": "cherry-markdown", "displayName": "cherry-markdown", "description": "A markdown previewer powered by [cherry-markdown](https://github.com/Tencent/cherry-markdown)", - "version": "0.0.11", + "version": "0.0.15", "publisher": "cherryMarkdownPublisher", "license": "Apache License", "keywords": [ diff --git a/vscodePlugin/src/extension.ts b/vscodePlugin/src/extension.ts index f17c9a12..7f748869 100644 --- a/vscodePlugin/src/extension.ts +++ b/vscodePlugin/src/extension.ts @@ -18,7 +18,7 @@ export function activate(context: vscode.ExtensionContext) { const disposable = vscode.commands.registerCommand( 'cherrymarkdown.preview', () => { - triggerEditorContentChange(); + triggerEditorContentChange(true); }, ); @@ -26,16 +26,12 @@ export function activate(context: vscode.ExtensionContext) { // 打开文件的时候触发 vscode.workspace.onDidOpenTextDocument(() => { - vscode.commands.executeCommand('cherrymarkdown.preview'); + triggerEditorContentChange(); }); // 切换文件的时候更新预览区域内容 vscode.window.onDidChangeActiveTextEditor((e) => { - const cherryUsage: 'active' | 'only-manual' | undefined = vscode.workspace - .getConfiguration('cherryMarkdown') - .get('usage'); - - if (e?.document && cherryUsage === 'active') { + if (e?.document) { triggerEditorContentChange(); // 如果打开的不是md文件,则让cherry强制进入预览模式 if (e.document.languageId !== 'markdown' && targetDocument) { @@ -207,14 +203,19 @@ const initCherryPanelEvent = () => { /** * 向预览区发送vscode编辑区内容变更的消息 */ -const triggerEditorContentChange = () => { +const triggerEditorContentChange = (focus: boolean = false) => { if (isCherryPanelInit) { const { mdInfo, currentTitle } = getMarkdownFileInfo(); cherryPanel.title = currentTitle; cherryPanel.webview.postMessage({ cmd: 'editor-change', data: mdInfo }); } else { if (vscode.window.activeTextEditor?.document?.languageId === 'markdown') { - initCherryPanel(); + const cherryUsage: 'active' | 'only-manual' | undefined = vscode.workspace + .getConfiguration('cherryMarkdown') + .get('usage'); + if (cherryUsage === 'active' || focus) { + initCherryPanel(); + } } } }; diff --git a/vscodePlugin/src/readme.md b/vscodePlugin/src/readme.md index 772bc500..5e3786c2 100644 --- a/vscodePlugin/src/readme.md +++ b/vscodePlugin/src/readme.md @@ -1,4 +1,13 @@ ## 发布插件 ``` +// 安装vsce +npm install -g @vscode/vsce +// 登录 +vsce login cherryMarkdownPublisher +// 根据提示输入token +// token在这里:https://dev.azure.com/cherry-markdown/_usersSettings/tokens +cd ./vscodePlugin +修改package.json里的version:`"version": "0.0.14",` +// 执行发布命令 vsce publish ``` From 6365f27453949ab08db8fa7a55f8b406502bf6c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Tue, 11 Jun 2024 14:46:22 +0800 Subject: [PATCH 09/40] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E9=AB=98?= =?UTF-8?q?=E4=BA=AE=E5=8C=BA=E7=9A=84=E6=98=BE=E7=A4=BA=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E6=88=90=E6=AF=8F=E6=AC=A1=E9=AB=98=E4=BA=AE?= =?UTF-8?q?=E5=8F=AA=E4=BA=AE3=E7=A7=92=EF=BC=8C=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E5=B8=B8=E9=A9=BB=E9=AB=98=E4=BA=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sass/previewer.scss | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/sass/previewer.scss b/src/sass/previewer.scss index f2f6b166..82c930d3 100644 --- a/src/sass/previewer.scss +++ b/src/sass/previewer.scss @@ -117,7 +117,12 @@ } } } + @keyframes changeBgColor { + 0% { background-color: #ffffcc88; } + 60% { background-color: #ffffcc88; } + 100% { background-color: #ffffcc00; } + } .cherry-highlight-line { - background-color: #ffffcc88; + animation: changeBgColor 3s; } } From 5bb2b265193f5c0fe3a9f969a3d16f8c8ad13e94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Tue, 11 Jun 2024 21:53:52 +0800 Subject: [PATCH 10/40] =?UTF-8?q?fix:=20#778=20=E4=BF=AE=E5=A4=8D=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E6=BC=8F=E6=8E=89=E7=9A=84=E5=9C=B0=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/scripts/index-demo.js | 1 + src/locales/en_US.js | 6 ++++++ src/locales/zh_CN.js | 6 ++++++ src/toolbars/hooks/Color.js | 5 +++-- src/toolbars/hooks/Size.js | 8 ++++---- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/examples/scripts/index-demo.js b/examples/scripts/index-demo.js index b9cc7f6d..031f2f88 100644 --- a/examples/scripts/index-demo.js +++ b/examples/scripts/index-demo.js @@ -245,6 +245,7 @@ var basicConfig = { }, // cherry初始化后是否检查 location.hash 尝试滚动到对应位置 autoScrollByHashAfterInit: true, + // locale: 'en_US', }; fetch('./markdown/basic.md').then((response) => response.text()).then((value) => { diff --git a/src/locales/en_US.js b/src/locales/en_US.js index 2cf42586..0d94e3ff 100644 --- a/src/locales/en_US.js +++ b/src/locales/en_US.js @@ -91,4 +91,10 @@ export default { justifyRight: 'Right', publish: 'Publish', wordCount: 'Word Count', + fontColor: 'Font Color', + fontBgColor: 'Font Bg Color', + small: 'Small', + medium: 'Medium', + large: 'Large', + superLarge: 'Super Large', }; diff --git a/src/locales/zh_CN.js b/src/locales/zh_CN.js index 59def137..fed3f45d 100644 --- a/src/locales/zh_CN.js +++ b/src/locales/zh_CN.js @@ -95,4 +95,10 @@ export default { justifyRight: '右对齐', publish: '发布', wordCount: '字数', + fontColor: '文本颜色', + fontBgColor: '背景颜色', + small: '小', + medium: '中', + large: '大', + superLarge: '特大', }; diff --git a/src/toolbars/hooks/Color.js b/src/toolbars/hooks/Color.js index ba9c8750..27f79825 100644 --- a/src/toolbars/hooks/Color.js +++ b/src/toolbars/hooks/Color.js @@ -112,6 +112,7 @@ export default class Color extends MenuBase { class BubbleColor { constructor($cherry) { this.editor = $cherry.editor; + this.$cherry = $cherry; this.init(); this.initAction(); } @@ -214,12 +215,12 @@ class BubbleColor { $colorWrap.classList.add('cherry-dropdown'); const $textWrap = document.createElement('div'); $textWrap.classList.add('cherry-color-text'); - $textWrap.innerHTML = this.getFontColorDom('文本颜色'); + $textWrap.innerHTML = this.getFontColorDom(this.$cherry.locale.fontColor); $colorWrap.appendChild($textWrap); const $bgWrap = document.createElement('div'); $bgWrap.classList.add('cherry-color-bg'); - $bgWrap.innerHTML = this.getFontColorDom('背景颜色'); + $bgWrap.innerHTML = this.getFontColorDom(this.$cherry.locale.fontBgColor); $colorWrap.appendChild($bgWrap); return $colorWrap; diff --git a/src/toolbars/hooks/Size.js b/src/toolbars/hooks/Size.js index 1621929e..01e1bdc8 100644 --- a/src/toolbars/hooks/Size.js +++ b/src/toolbars/hooks/Size.js @@ -21,10 +21,10 @@ export default class Size extends MenuBase { super($cherry); this.setName('size', 'size'); this.subMenuConfig = [ - { name: '小', noIcon: true, onclick: this.bindSubClick.bind(this, '12') }, - { name: '中', noIcon: true, onclick: this.bindSubClick.bind(this, '17') }, - { name: '大', noIcon: true, onclick: this.bindSubClick.bind(this, '24') }, - { name: '特大', noIcon: true, onclick: this.bindSubClick.bind(this, '32') }, + { name: this.$cherry.locale.small, noIcon: true, onclick: this.bindSubClick.bind(this, '12') }, + { name: this.$cherry.locale.medium, noIcon: true, onclick: this.bindSubClick.bind(this, '17') }, + { name: this.$cherry.locale.large, noIcon: true, onclick: this.bindSubClick.bind(this, '24') }, + { name: this.$cherry.locale.superLarge, noIcon: true, onclick: this.bindSubClick.bind(this, '32') }, ]; this.shortKeyMap = { 'Alt-1': '12', From 912c25e268a57bfd0c15f82de2c8b992db945ef7 Mon Sep 17 00:00:00 2001 From: Leo Xia <52569690+Saraph1nes@users.noreply.github.com> Date: Fri, 14 Jun 2024 12:16:10 +0800 Subject: [PATCH 11/40] =?UTF-8?q?feat:=20#769=20=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=9D=97=E4=B8=BB=E9=A2=98=E7=BC=93=E5=AD=98=20(#781)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(release): 0.8.42 * feat: #769 代码块主题缓存 * fix: 修改代码主题支持多实例场景 --------- Co-authored-by: sunsonliu(刘阳) Co-authored-by: saraph1nes Co-authored-by: yuxuanxia --- dist/cherry-markdown.js | 4 +-- dist/fonts/ch-icon.eot | 2 +- dist/fonts/ch-icon.ttf | 2 +- dist/fonts/ch-icon.woff | 2 +- dist/fonts/ch-icon.woff2 | 4 +-- src/Cherry.js | 5 +++- src/toolbars/hooks/CodeTheme.js | 8 +++--- src/utils/config.js | 43 +++++++++++++++++++++++++++++++++ 8 files changed, 58 insertions(+), 12 deletions(-) diff --git a/dist/cherry-markdown.js b/dist/cherry-markdown.js index d3a8f744..53c89521 100644 --- a/dist/cherry-markdown.js +++ b/dist/cherry-markdown.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0604eca9203eefb80cb9c6c45f9a4eaac8b3ee2decc368db0d8d39a5ae396f8 -size 7569177 +oid sha256:f0434590a5ab8fe310652e998da8b5c484905e8c691c4c62317ff94f29aa78ca +size 7538532 diff --git a/dist/fonts/ch-icon.eot b/dist/fonts/ch-icon.eot index 71daf569..49519f1b 100644 --- a/dist/fonts/ch-icon.eot +++ b/dist/fonts/ch-icon.eot @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5cdac41b761a84bb81705f68e65d5e0ec2148784853a6bfa87477c30823c06e1 +oid sha256:3a3342832e2ad0ef67f178f5d3665a0e06fc64055a6a5c423759d26d5a6ab2c8 size 20424 diff --git a/dist/fonts/ch-icon.ttf b/dist/fonts/ch-icon.ttf index 73c5a901..a364592b 100644 --- a/dist/fonts/ch-icon.ttf +++ b/dist/fonts/ch-icon.ttf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b94579d68eb1945a93eae57069ce5a338212e2387be2f489911c46e3b1f7e36 +oid sha256:c9165d4e0d178722690468d2a33b19d7acc9257c170758c848cad6bb198928e2 size 20260 diff --git a/dist/fonts/ch-icon.woff b/dist/fonts/ch-icon.woff index 784f007d..0bc2242d 100644 --- a/dist/fonts/ch-icon.woff +++ b/dist/fonts/ch-icon.woff @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:15d20e0ef65fe98dc70cf406d0f1f7384be3c6eab4bae7f086e9f2fc929186d4 +oid sha256:734c6940c58d8382fb0372089d966d88e42446c048b0b12b6de0af8f52ce66f2 size 11780 diff --git a/dist/fonts/ch-icon.woff2 b/dist/fonts/ch-icon.woff2 index 8c38b282..5bbddd18 100644 --- a/dist/fonts/ch-icon.woff2 +++ b/dist/fonts/ch-icon.woff2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:59f84bfd5c7f9e201c2bd83bdc0a77065d29d020558a8dcf4b405d107993e8ff -size 10024 +oid sha256:0b097ec1e01dac6c82038a485370f3ca4f10d5429fcb16324b235ea493223854 +size 10028 diff --git a/src/Cherry.js b/src/Cherry.js index 010b0361..fc668c25 100644 --- a/src/Cherry.js +++ b/src/Cherry.js @@ -24,7 +24,7 @@ import ToolbarRight from './toolbars/ToolbarRight'; import Toc from './toolbars/Toc'; import { createElement } from './utils/dom'; import Sidebar from './toolbars/Sidebar'; -import { customizer, getThemeFromLocal, changeTheme } from './utils/config'; +import { customizer, getThemeFromLocal, changeTheme, getCodeThemeFromLocal } from './utils/config'; import NestedError, { $expectTarget } from './utils/error'; import getPosBydiffs from './utils/recount-pos'; import defaultConfig from './Cherry.config'; @@ -492,6 +492,9 @@ export default class Cherry extends CherryStatic { 'data-codeBlockTheme': codeBlockTheme, }, ); + + wrapperDom.setAttribute('data-code-block-theme', getCodeThemeFromLocal(this.options.themeNameSpace)); + this.wrapperDom = wrapperDom; return wrapperDom; } diff --git a/src/toolbars/hooks/CodeTheme.js b/src/toolbars/hooks/CodeTheme.js index 5dd0ef35..0d5778fb 100644 --- a/src/toolbars/hooks/CodeTheme.js +++ b/src/toolbars/hooks/CodeTheme.js @@ -14,6 +14,7 @@ * limitations under the License. */ import MenuBase from '@/toolbars/MenuBase'; +import { changeCodeTheme } from '@/utils/config'; /** * 设置代码块的主题 * 本功能依赖[prism组件](https://github.com/PrismJS/prism) @@ -39,10 +40,9 @@ export default class CodeTheme extends MenuBase { /** * 响应点击事件 * @param {string} shortKey 快捷键参数,本函数不处理这个参数 - * @param {string} theme 具体的代码块主题 - * @returns 回填到编辑器光标位置/选中文本区域的内容 + * @param {string} codeTheme 具体的代码块主题 */ - onClick(shortKey = '', theme) { - document.querySelector('.cherry').setAttribute('data-code-block-theme', theme); + onClick(shortKey = '', codeTheme) { + changeCodeTheme(this.$cherry, codeTheme); } } diff --git a/src/utils/config.js b/src/utils/config.js index 5b7380c6..7db8ccca 100644 --- a/src/utils/config.js +++ b/src/utils/config.js @@ -97,3 +97,46 @@ export function changeTheme($cherry, theme = '') { $cherry.previewer.getDomContainer().className.replace(/ theme__[^ $]+?( |$)/g, ' ') + newClass; saveThemeToLocal(themeNameSpace, newTheme); } + +/** + * 保存当前代码主题 + * @param {string} nameSpace + * @param {string} codeTheme + */ +function saveCodeThemeToLocal(nameSpace, codeTheme) { + if (typeof localStorage !== 'undefined') { + localStorage.setItem(`${nameSpace}-codeTheme`, codeTheme); + } +} + +/** + * 获取当前代码主题 + * @param {string} nameSpace + * @returns {string} 主题名 + */ +export function getCodeThemeFromLocal(nameSpace = 'cherry') { + let res = 'default'; + if (typeof localStorage !== 'undefined') { + const localTheme = localStorage.getItem(`${nameSpace}-codeTheme`); + if (localTheme) { + res = localTheme; + } + } + return res; +} + +/** + * 修改代码主题 + * 相同themeNameSpace的实例有一样的代码主题配置 + * @param {object} $cherry + * @param {string} codeTheme 如果没有传codeTheme,则从本地缓存里取 + */ +export function changeCodeTheme($cherry, codeTheme) { + const themeNameSpace = $cherry.options.themeNameSpace || 'cherry'; + + const newTheme = codeTheme ? codeTheme : getCodeThemeFromLocal(themeNameSpace); + + $cherry.wrapperDom.setAttribute('data-code-block-theme', newTheme); + + saveCodeThemeToLocal(themeNameSpace, newTheme); +} From d5e4d470129a02ea580488959aae12b75f63808c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Fri, 14 Jun 2024 14:13:45 +0800 Subject: [PATCH 12/40] =?UTF-8?q?fix:=20#782=20=E8=A1=A5=E4=B8=8A=E8=8B=B1?= =?UTF-8?q?=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/en_US.js | 2 ++ src/locales/zh_CN.js | 1 + src/toolbars/hooks/Detail.js | 3 +-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/locales/en_US.js b/src/locales/en_US.js index 0d94e3ff..5df6407e 100644 --- a/src/locales/en_US.js +++ b/src/locales/en_US.js @@ -97,4 +97,6 @@ export default { medium: 'Medium', large: 'Large', superLarge: 'Super Large', + detailDefaultContent: + 'Click to expand more\nContent\n++- Expand by default\nContent\n++ Collapse by default\nContent', }; diff --git a/src/locales/zh_CN.js b/src/locales/zh_CN.js index fed3f45d..bee5674a 100644 --- a/src/locales/zh_CN.js +++ b/src/locales/zh_CN.js @@ -101,4 +101,5 @@ export default { medium: '中', large: '大', superLarge: '特大', + detailDefaultContent: '点击展开更多\n内容\n++- 默认展开\n内容\n++ 默认收起\n内容', }; diff --git a/src/toolbars/hooks/Detail.js b/src/toolbars/hooks/Detail.js index 4048a728..d3d2b0a5 100644 --- a/src/toolbars/hooks/Detail.js +++ b/src/toolbars/hooks/Detail.js @@ -33,8 +33,7 @@ export default class Detail extends MenuBase { */ onClick(selection) { let $selection = - getSelection(this.editor.editor, selection, 'line', true) || - '点击展开更多\n内容\n++- 默认展开\n内容\n++ 默认收起\n内容'; + getSelection(this.editor.editor, selection, 'line', true) || this.$cherry.locale.detailDefaultContent; this.detailRule.lastIndex = 0; if (!this.detailRule.test($selection)) { // 如果没有命中手风琴语法,则尝试扩大选区 From e7bc0085f15a2b5c5255f0781240646a073bbbc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Fri, 14 Jun 2024 14:25:23 +0800 Subject: [PATCH 13/40] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E5=B0=8Fapi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Cherry.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Cherry.js b/src/Cherry.js index fc668c25..3acdeea5 100644 --- a/src/Cherry.js +++ b/src/Cherry.js @@ -283,6 +283,22 @@ export default class Cherry extends CherryStatic { } } + $t(str) { + return this.locale[str] ? this.locale[str] : str; + } + + addLocale(key, value) { + this.locale[key] = value; + } + + addLocales(locales) { + this.locale = Object.assign(this.locale, locales); + } + + getLocales() { + return this.locale; + } + /** * 切换编辑模式 * @param {'edit&preview'|'editOnly'|'previewOnly'} [model=edit&preview] 模式类型 From 4e05ac696323c6dc6bd8d1961ab3adcbb44e7d92 Mon Sep 17 00:00:00 2001 From: Leo Xia <52569690+Saraph1nes@users.noreply.github.com> Date: Sun, 16 Jun 2024 23:00:18 +0800 Subject: [PATCH 14/40] =?UTF-8?q?feat:=20#767=20=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=9D=97=E3=80=81=E8=A1=8C=E5=86=85=E4=BB=A3=E7=A0=81=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8F=90=E7=A4=BA=E4=BA=A4=E4=BA=92=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20(#787)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(release): 0.8.42 * feat: #767 代码块、行内代码相关提示交互优化 --------- Co-authored-by: sunsonliu(刘阳) Co-authored-by: saraph1nes --- src/core/hooks/SuggestList.js | 55 +++++++++++++++++++++- src/core/hooks/Suggester.js | 28 ++++++++++- src/sass/cherry.scss | 53 +++++++++++---------- src/utils/code-preview-language-setting.js | 2 +- 4 files changed, 110 insertions(+), 28 deletions(-) diff --git a/src/core/hooks/SuggestList.js b/src/core/hooks/SuggestList.js index 3cadf7cc..5019f5df 100644 --- a/src/core/hooks/SuggestList.js +++ b/src/core/hooks/SuggestList.js @@ -18,6 +18,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import { codePreviewLangSelectList } from '@/utils/code-preview-language-setting'; + /* * 外加配置系统联想词 */ @@ -25,7 +28,7 @@ export const addonsKeywords = '#'; /* * 预留联想词 */ -export const suggesterKeywords = '/·¥、:“”【】()《》'.concat(addonsKeywords); +export const suggesterKeywords = '/·¥、:“”【】()《》`'.concat(addonsKeywords); /* * 系统联想候选表,主要为'、'以及'、'的联想。 */ @@ -256,11 +259,59 @@ const MoreSuggestList = [ value: `”“`, goLeft: 1, }, + { + icon: 'FullWidth', + label: '行内代码', + keyword: '`', + value: '``', + goLeft: 1, + }, + { + icon: 'FullWidth', + label: '代码块', + keyword: '`', + value: '```\n\n```\n', + goTop: 2, + }, ]; + +// TODO 提示列表超过一定长度的时候,需要跟随箭头上下滚动列表,以保证待选择项始终可见 + +// 代码语言的候选表 +const CodeLangSuggestList = (() => { + const CodePreviewLangSuggestList = codePreviewLangSelectList.map((lang) => ({ + icon: 'FullWidth', + label: lang, + keyword: '```', + value: `\`\`\`${lang}\n\n\`\`\`\n`, + goTop: 2, + exactMatch: true, + })); + + const CodePreviewLangSuggestListExact = []; + codePreviewLangSelectList.forEach((lang) => { + let str = ''; + for (const i of lang) { + str += i; + CodePreviewLangSuggestListExact.push({ + icon: 'FullWidth', + label: lang, + keyword: `\`\`\`${str}`, + value: `\`\`\`${lang}\n\n\`\`\`\n`, + goTop: 2, + exactMatch: true, + }); + } + }); + + return CodePreviewLangSuggestList.concat(CodePreviewLangSuggestListExact); +})(); + /* * 除开系统联想候选表的其他所有表之和 */ -const OtherSuggestList = HalfWidthSuggestList.concat(MoreSuggestList); +const OtherSuggestList = HalfWidthSuggestList.concat(MoreSuggestList).concat(CodeLangSuggestList); + export function allSuggestList(keyword, locales) { const systemSuggestList = [].concat(SystemSuggestList); const otherSuggestList = [].concat(OtherSuggestList); diff --git a/src/core/hooks/Suggester.js b/src/core/hooks/Suggester.js index c774258b..709365a6 100644 --- a/src/core/hooks/Suggester.js +++ b/src/core/hooks/Suggester.js @@ -123,8 +123,13 @@ export default class Suggester extends SyntaxBase { .replace(new RegExp(`^${suggesterKeyword}`, 'g'), '') // 删掉word当中suggesterKeywords出现的字符 .split('') .join('.*?'); + // 匹配任何包含 "keyword" 的字符串,无论 "keyword" 是在字符串的开头、中间还是结尾,并且不区分大小写 const test = new RegExp(`^.*?${keyword}.*?$`, 'i'); const suggestList = systemSuggestList.filter((item) => { + // 处理精确匹配 + if (item.exactMatch) { + return !word || item.keyword === word; + } // TODO: 首次联想的时候会把所有的候选项列出来,后续可以增加一些机制改成默认拉取一部分候选项 return !word || test.test(item.keyword); }); @@ -535,11 +540,17 @@ class SuggesterPanel { if (result) { this.editor.editor.replaceRange(result, cursorFrom, cursorTo); } - // 控制光标左移一位或者选中某个范围 + // 控制光标左移若干位 if (this.optionList[idx].goLeft) { const cursor = this.editor.editor.getCursor(); this.editor.editor.setCursor(cursor.line, cursor.ch - this.optionList[idx].goLeft); } + // 控制光标上移若干位 + if (this.optionList[idx].goTop) { + const cursor = this.editor.editor.getCursor(); + this.editor.editor.setCursor(cursor.line - this.optionList[idx].goTop, cursor.ch); + } + // 选中某个范围 if (this.optionList[idx].selection) { const { line } = this.editor.editor.getCursor(); const { ch } = this.editor.editor.getCursor(); @@ -651,6 +662,21 @@ class SuggesterPanel { selectedItem.classList.remove('cherry-suggester-panel__item--selected'); nextElement.classList.add('cherry-suggester-panel__item--selected'); + + // 提示面板高度 + const suggestPanelHeight = this.$suggesterPanel.offsetHeight; + // 可视区域范围上端 + const viewTop = this.$suggesterPanel.scrollTop; + // 可视区域范围下端 + const viewBottom = viewTop + suggestPanelHeight; + // item的上端 + const nextEleTop = nextElement.offsetTop; + // item高度 + const nextEleHeight = nextElement.offsetHeight; + // 当前元素全部或部分在可视区域之外,就滚动 + if (nextEleTop < viewTop || nextEleTop + nextEleHeight > viewBottom) { + this.$suggesterPanel.scrollTop = nextEleTop - suggestPanelHeight / 2; + } } else if (keyCode === 13) { const index = this.findSelectedItemIndex(); if (index >= 0) { diff --git a/src/sass/cherry.scss b/src/sass/cherry.scss index 4f8b3d15..a7e4c028 100644 --- a/src/sass/cherry.scss +++ b/src/sass/cherry.scss @@ -741,6 +741,8 @@ border-radius: 2px; max-height: 500px; box-shadow: 0 2px 8px 1px #00000033; + overflow-x: hidden; + overflow-y: auto; .cherry-suggester-panel__item { border: none; @@ -783,7 +785,7 @@ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - background: #FFFFFF33; + background: #ffffff33; margin-right: 8px; box-sizing: border-box; user-select: none; @@ -791,13 +793,13 @@ border-radius: 10px; transition: all 0.3s; &:hover { - background-color: #FFF; + background-color: #fff; width: 260px; } .cherry-toc-head { border-bottom: 1px dashed #33333333; padding: 5px; - .cherry-toc-title{ + .cherry-toc-title { font-size: 16px; font-weight: bold; padding-left: 5px; @@ -805,11 +807,12 @@ .ch-icon-chevronsLeft { display: none; } - .ch-icon-chevronsRight, .ch-icon-chevronsLeft { + .ch-icon-chevronsRight, + .ch-icon-chevronsLeft { padding: 5px; position: absolute; right: 0; - top:0; + top: 0; } i { cursor: pointer; @@ -867,7 +870,7 @@ width: 30px; height: calc(100% - 200px); max-height: 600px; - background: #FFFFFF00; + background: #ffffff00; box-shadow: none; border-radius: 0; .cherry-toc-head { @@ -894,49 +897,51 @@ } } } - + &.auto-num { .cherry-toc-list { counter-reset: toclevel1; - .cherry-toc-one-a__1{ + .cherry-toc-one-a__1 { counter-reset: toclevel2; } - .cherry-toc-one-a__2{ + .cherry-toc-one-a__2 { counter-reset: toclevel3; } - .cherry-toc-one-a__3{ + .cherry-toc-one-a__3 { counter-reset: toclevel4; } - .cherry-toc-one-a__4{ + .cherry-toc-one-a__4 { counter-reset: toclevel5; } - .cherry-toc-one-a__5{ + .cherry-toc-one-a__5 { counter-reset: toclevel6; } - .cherry-toc-one-a__1:before{ + .cherry-toc-one-a__1:before { counter-increment: toclevel1; - content: counter(toclevel1) ". "; + content: counter(toclevel1) '. '; } - .cherry-toc-one-a__2:before{ + .cherry-toc-one-a__2:before { counter-increment: toclevel2; - content: counter(toclevel1) "." counter(toclevel2) ". "; + content: counter(toclevel1) '.' counter(toclevel2) '. '; } - .cherry-toc-one-a__3:before{ + .cherry-toc-one-a__3:before { counter-increment: toclevel3; - content: counter(toclevel1) "." counter(toclevel2) "." counter(toclevel3) ". "; + content: counter(toclevel1) '.' counter(toclevel2) '.' counter(toclevel3) '. '; } - .cherry-toc-one-a__4:before{ + .cherry-toc-one-a__4:before { counter-increment: toclevel4; - content: counter(toclevel1) "." counter(toclevel2) "." counter(toclevel3) "." counter(toclevel4) ". "; + content: counter(toclevel1) '.' counter(toclevel2) '.' counter(toclevel3) '.' counter(toclevel4) '. '; } - .cherry-toc-one-a__5:before{ + .cherry-toc-one-a__5:before { counter-increment: toclevel5; - content: counter(toclevel1) "." counter(toclevel2) "." counter(toclevel3) "." counter(toclevel4) "." counter(toclevel5) ". "; + content: counter(toclevel1) '.' counter(toclevel2) '.' counter(toclevel3) '.' counter(toclevel4) '.' + counter(toclevel5) '. '; } - .cherry-toc-one-a__6:before{ + .cherry-toc-one-a__6:before { counter-increment: toclevel5; - content: counter(toclevel1) "." counter(toclevel2) "." counter(toclevel3) "." counter(toclevel4) "." counter(toclevel5) "." counter(toclevel6) ". "; + content: counter(toclevel1) '.' counter(toclevel2) '.' counter(toclevel3) '.' counter(toclevel4) '.' + counter(toclevel5) '.' counter(toclevel6) '. '; } } } diff --git a/src/utils/code-preview-language-setting.js b/src/utils/code-preview-language-setting.js index e342c9c6..c07c4eaf 100644 --- a/src/utils/code-preview-language-setting.js +++ b/src/utils/code-preview-language-setting.js @@ -19,7 +19,7 @@ export const getCodePreviewLangSelectElement = (lang) => { }; // program language list: -const codePreviewLangSelectList = [ +export const codePreviewLangSelectList = [ 'javascript', 'typescript', 'html', From e33c0d68bf5a5d2324d6a118a32f7372d5052d1f Mon Sep 17 00:00:00 2001 From: Leo Xia <52569690+Saraph1nes@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:40:23 +0800 Subject: [PATCH 15/40] =?UTF-8?q?feat:=20#696=20=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E4=BA=A7=E7=89=A9=E9=87=8C=E9=A2=9D=E5=A4=96=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=8C=BA=E6=A0=B7=E5=BC=8F=E7=9A=84=E6=96=87?= =?UTF-8?q?=E4=BB=B6=20(#783)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(release): 0.8.42 * feat: #696 构建产物里额外提供预览区样式的文件 --------- Co-authored-by: sunsonliu(刘阳) Co-authored-by: xiayuxuan --- build/rollup.styles.config.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/build/rollup.styles.config.js b/build/rollup.styles.config.js index 6d8809bc..d69d1617 100644 --- a/build/rollup.styles.config.js +++ b/build/rollup.styles.config.js @@ -52,6 +52,33 @@ const options = [ }, ], }, + { + input: 'src/sass/previewer.scss', + output: { + file: 'dist/cherry-previewer.styles.js', + }, + plugins: [ + scss({ + fileName: IS_PRODUCTION ? 'cherry-markdown.previewer.min.css' : 'cherry-markdown.previewer.css', + // node进程是否在错误时终止 + failOnError: true, + ...(IS_PRODUCTION && { + outputStyle: 'compressed', + }), + sass: dartSass, + }), + { + generateBundle: (option, bundle) => { + // remove all non-asset files from bundle + Object.keys(bundle).forEach((key) => { + if (bundle[key].type !== 'asset') { + delete bundle[key]; + } + }); + }, + }, + ], + }, // { // input: 'src/sass/markdown.scss', // output: { From 6089004e59a64ed5f79bd2aaca02ce2ceebcf098 Mon Sep 17 00:00:00 2001 From: Ethan Xu <34962267+ufec@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:40:41 +0800 Subject: [PATCH 16/40] Feat/589 (#789) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(release): 0.8.42 * feat(MenuBase): 允许自定义图标icon Closed #589 * fix(type error): Type Error --------- Co-authored-by: sunsonliu(刘阳) --- src/toolbars/HookCenter.js | 32 ++++++- src/toolbars/MenuBase.js | 159 ++++++++++++++++++++++++++++++++-- src/toolbars/hooks/Copy.js | 9 +- src/toolbars/hooks/Publish.js | 2 +- types/menus.d.ts | 24 +++++ 5 files changed, 212 insertions(+), 14 deletions(-) create mode 100644 types/menus.d.ts diff --git a/src/toolbars/HookCenter.js b/src/toolbars/HookCenter.js index 7443e3f7..c0b987b9 100644 --- a/src/toolbars/HookCenter.js +++ b/src/toolbars/HookCenter.js @@ -153,21 +153,35 @@ export default class HookCenter { * @type {{ [parentName: string]: string[]}} 二级菜单的名称, e.g. {一级菜单名称: [二级菜单名称1, 二级菜单名称2]} */ this.level2MenusName = {}; + // menu 参数配置的属性名 + this.menuOptionsKey = ['name', 'icon', 'subMenu']; this.init(); } - $newMenu(name) { + /** + * 实例化菜单 + * @param {string} name 菜单名称 + * @param {null|import('~types/menus').CustomMenuConfig} options 菜单配置项 + * @returns + */ + $newMenu(name, options = null) { if (this.hooks[name]) { return; } + /** + * 传入了options代表是新写法,不传兼容旧写法:即name和iconName一致,省去了在MenuBase的子类中调用setName + * 因为下面判断了name的合法性,这里就不需要再判断一次了,也防止了setName写错 + * @type {import('~types/menus').CustomMenuConfig} + */ + const currentMenuOptions = options || { name, icon: name }; const { $cherry, customMenu } = this.toolbar.options; if (HookList[name]) { this.allMenusName.push(name); - this.hooks[name] = new HookList[name]($cherry); + this.hooks[name] = new HookList[name]({ ...$cherry, $currentMenuOptions: currentMenuOptions }); } else if (customMenu !== undefined && customMenu !== null && customMenu[name]) { this.allMenusName.push(name); // 如果是自定义菜单,传参兼容旧版 - this.hooks[name] = new customMenu[name]($cherry); + this.hooks[name] = new customMenu[name]({ ...$cherry, $currentMenuOptions: currentMenuOptions }); } } @@ -186,12 +200,24 @@ export default class HookCenter { if (keys.length === 1) { // 只接受形如{ name: [ subMenu ] }的参数 const [name] = keys; + if (this.menuOptionsKey.includes(name)) { + throw Error(`this menu key is not allowed: ${name}, forbid menu key: ${this.menuOptionsKey}`); + } + console.warn( + `this subMenu config type will be deprecated, please use {subMenu: ['${name}']} config: ${item}`, + ); this.level1MenusName.push(name); this.$newMenu(name); this.level2MenusName[name] = item[name]; item[name].forEach((subItem) => { this.$newMenu(subItem); }); + } else { + if (!item.name) { + return; + } + this.level1MenusName.push(item.name); + this.$newMenu(item.name, item); } } }); diff --git a/src/toolbars/MenuBase.js b/src/toolbars/MenuBase.js index 76a46dda..fe5c5971 100644 --- a/src/toolbars/MenuBase.js +++ b/src/toolbars/MenuBase.js @@ -17,6 +17,7 @@ import Logger from '@/Logger'; import { escapeHTMLSpecialCharOnce as $e } from '@/utils/sanitize'; import { createElement } from '@/utils/dom'; +import NestedError from '@/utils/error'; /** * @typedef {Object} SubMenuConfigItem @@ -66,13 +67,20 @@ export default class MenuBase { /** * - * @param {Partial} $cherry + * @param {Partial & {$currentMenuOptions?:import('~types/menus').CustomMenuConfig}} $cherry */ constructor($cherry) { this.$cherry = $cherry; this.bubbleMenu = false; this.subMenu = null; // 子菜单实例 - this.name = ''; // 菜单项Name + this.$currentMenuOptions = $cherry.$currentMenuOptions; + // HookCenter 中会默认使currentMenuOptions的name属性与iconName属性一致 + this.name = $cherry.$currentMenuOptions?.name ?? ''; // 菜单项Name + if (typeof $cherry.$currentMenuOptions?.icon === 'string') { + this.iconName = $cherry.$currentMenuOptions.icon; + } + /** @type {import('~types/menus').MenuIconType} */ + this.iconType = null; this.editor = $cherry.editor; // markdown实例 this.locale = $cherry.locale; this.dom = null; @@ -138,6 +146,56 @@ export default class MenuBase { return this.cacheOnce !== false; } + /** + * 创建一个IconFont类型的图标 + * @param {string} iconName + * @param {object} options + */ + createIconFontIcon(iconName, options = {}) { + const icon = createElement('i', `ch-icon ch-icon-${iconName}`); + if (typeof options?.className === 'string') { + icon.classList.add(options.className); + } + return icon; + } + + /** + * 创建一个SVG类型的图标 + * @param {import('~types/menus').CustomMenuIcon} options + */ + createSvgIcon(options) { + if (options.type !== 'svg') { + throw new Error('except options.type is "svg", but get "${options.type}"'); + } + try { + const domParser = new DOMParser(); + const svg = domParser.parseFromString(options.content, 'image/svg+xml')?.lastElementChild; + if (options.iconStyle) { + svg.setAttribute('style', options.iconStyle); + } + if (options.iconClassName) { + svg.setAttribute('class', options.iconClassName); + } + return svg; + } catch (error) { + throw new NestedError(error); + } + } + + /** + * 创建一个Image类型的图标 + * @param {import('~types/menus').CustomMenuIcon} options + */ + createImageIcon(options) { + if (options.type !== 'image') { + throw new Error('except options.type is "image", but get "${options.type}"'); + } + return createElement('img', `ch-icon${options.iconClassName ? ` ${options.iconClassName}` : ''}`, { + src: options.content, + style: options.iconStyle, + }); + } + /** * 创建一个一级菜单 * @param {boolean} asSubMenu 是否以子菜单的形式创建 @@ -149,10 +207,38 @@ export default class MenuBase { const span = createElement('span', classNames, { title: this.locale[this.name] || $e(this.name), }); - // 如果有图标,则添加图标 - if (this.iconName && !this.noIcon) { - const icon = createElement('i', `ch-icon ch-icon-${this.iconName}`); - span.appendChild(icon); + if (!this.noIcon) { + /** @type{Element} */ + let icon = null; + const customIcon = this.$currentMenuOptions.icon; + if (typeof customIcon === 'string') { + // 默认 this.name 和 iconName 是一致的,除非手动调用 setName 方法来更改 + // 这里的逻辑就是 MenuBase 子类没有手动调用setName时则以传入的(默认跟hook name一致,可以在配置文件中更改)为准 + // 否则以子类set的为准 + icon = this.createIconFontIcon(this.iconName !== this.name ? this.iconName : customIcon); + this.iconType = 'iconfont'; + } else if (customIcon instanceof HTMLElement) { + icon = customIcon; + this.iconType = 'element'; + } else if (typeof customIcon === 'object') { + const { type } = customIcon; + if (type === 'svg') { + icon = this.createSvgIcon(customIcon); + this.iconType = 'svg'; + } else if (type === 'image') { + icon = this.createImageIcon(customIcon); + this.iconType = 'image'; + } else if (type === 'iconfont') { + icon = this.createIconFontIcon(customIcon.content); + this.iconType = 'iconfont'; + } else { + throw new Error(`except customIcon.type is "svg", "image", "iconfont", but get "${type}"`); + } + } + if (icon !== null) { + icon.classList.add(`cherry-menu-${this.name}`); + span.appendChild(icon); + } } // 二级菜单强制显示文字,没有图标的按钮也显示文字 if (asSubMenu || this.noIcon) { @@ -344,6 +430,67 @@ export default class MenuBase { return []; } + /** + * 更新菜单图标 + * @param {import('~types/menus').CustomMenuConfig['icon']} options 图标配置 + */ + updateMenuIcon(options) { + if (this.noIcon) { + return false; + } + // 传入 options 是个字符串,说明是想要更新 iconfont,那就要求当前的icon类型也为iconfont + if (typeof options === 'string') { + if (this.iconType === 'iconfont') { + this.dom.querySelector('i')?.classList.replace(`ch-icon-${this.iconName}`, `ch-icon-${options}`); + this.iconName = options; + this.$currentMenuOptions.icon = options; + this.iconType = 'iconfont'; + return true; + } + return false; + } + if (options instanceof HTMLElement) { + options.classList.add(`ch-icon cherry-menu-${this.name}`); + this.dom.replaceChildren(options); + this.iconType = 'element'; + return true; + } + let { iconName } = this; + switch (options.type) { + case 'iconfont': + if (this.iconType === 'iconfont') { + iconName = options.content; + this.dom.querySelector('i')?.classList.replace(`ch-icon-${this.iconName}`, `ch-icon-${iconName}`); + this.iconName = iconName; + } else { + const icon = this.createIconFontIcon(options.content, { + className: `cherry-menu-${this.name}`, + }); + if (options.iconClassName) { + icon.classList.add(options.iconClassName); + } + if (options.iconStyle) { + icon.setAttribute('style', options.iconStyle); + } + this.dom.replaceChildren(icon); + } + this.iconType = 'iconfont'; + break; + case 'svg': + this.dom.replaceChildren(this.createSvgIcon(options)); + this.iconType = 'svg'; + break; + case 'image': + this.dom.replaceChildren(this.createImageIcon(options)); + this.iconType = 'image'; + break; + case 'element': + throw Error(`except the options argument instance of HTMLElement, but get a type of ${typeof options}`); + default: + break; + } + } + /** * 获取当前菜单的位置 */ diff --git a/src/toolbars/hooks/Copy.js b/src/toolbars/hooks/Copy.js index a83c5e4e..6d1a0589 100644 --- a/src/toolbars/hooks/Copy.js +++ b/src/toolbars/hooks/Copy.js @@ -27,6 +27,7 @@ export default class Copy extends MenuBase { this.isLoading = false; this.updateMarkdown = false; this.setName('copy', 'copy'); + this.lastIconOuterHtml = ''; } async adaptWechat(rawHtml) { @@ -79,11 +80,11 @@ export default class Copy extends MenuBase { toggleLoading() { // 切换loading状态 if (this.isLoading) { - const loadingButton = document.querySelector('.icon-loading'); - loadingButton.outerHTML = ``; + this.dom.lastElementChild.outerHTML = this.lastIconOuterHtml; + this.lastIconOuterHtml = ''; } else { - const copyButton = document.querySelector('.ch-icon-copy'); - copyButton.outerHTML = '
'; + this.lastIconOuterHtml = this.dom.lastElementChild.outerHTML; + this.dom.lastElementChild.outerHTML = '
'; } this.isLoading = !this.isLoading; } diff --git a/src/toolbars/hooks/Publish.js b/src/toolbars/hooks/Publish.js index ab38f2a7..da2cf085 100644 --- a/src/toolbars/hooks/Publish.js +++ b/src/toolbars/hooks/Publish.js @@ -24,7 +24,7 @@ const supportPlatforms = ['wechat']; export default class Publish extends MenuBase { /** - * @param {Partial} $cherry + * @param {Partial & {$currentMenuOptions?:import('~types/menus').CustomMenuConfig}} $cherry */ constructor($cherry) { super($cherry); diff --git a/types/menus.d.ts b/types/menus.d.ts new file mode 100644 index 00000000..a7759d47 --- /dev/null +++ b/types/menus.d.ts @@ -0,0 +1,24 @@ +export type MenuIconType = 'svg' | 'iconfont' | 'image' | 'element'; + +export interface CustomMenuIcon { + type: MenuIconType; + /** + * 如果 type 为 'svg',则该属性为 svg 文件内容 + * 如果 type 为 'iconfont',则该属性为 iconfont 类名(请确保已引入字体) + * 如果 type 为 'image',则该属性为img元素的src属性 + */ + content: string; + /** + * 除了 iconfont 外,其他类型可以设置该属性来改变图标的内联样式 + */ + iconStyle?: string; + /** 设置class属性 */ + iconClassName?: string; +} + +export type IconElement = T; + +export interface CustomMenuConfig { + name: string; + icon: string | CustomMenuIcon | IconElement; +} From 467d87043ace777f05afd04958a982a358376a0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Mon, 17 Jun 2024 10:27:03 +0800 Subject: [PATCH 17/40] =?UTF-8?q?feat:=20=E7=8B=AC=E7=AB=8B=E4=B8=80?= =?UTF-8?q?=E4=B8=AAmarkdown=E6=A0=B7=E5=BC=8F=E6=96=87=E4=BB=B6=EF=BC=88?= =?UTF-8?q?=E5=90=AB=E4=B8=BB=E9=A2=98=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/rollup.styles.config.js | 33 ++------------------------------- src/sass/markdown_pure.scss | 9 +++++++++ 2 files changed, 11 insertions(+), 31 deletions(-) create mode 100644 src/sass/markdown_pure.scss diff --git a/build/rollup.styles.config.js b/build/rollup.styles.config.js index d69d1617..c799d8b5 100644 --- a/build/rollup.styles.config.js +++ b/build/rollup.styles.config.js @@ -53,13 +53,13 @@ const options = [ ], }, { - input: 'src/sass/previewer.scss', + input: 'src/sass/markdown_pure.scss', output: { file: 'dist/cherry-previewer.styles.js', }, plugins: [ scss({ - fileName: IS_PRODUCTION ? 'cherry-markdown.previewer.min.css' : 'cherry-markdown.previewer.css', + fileName: IS_PRODUCTION ? 'cherry-markdown.markdown.min.css' : 'cherry-markdown.markdown.css', // node进程是否在错误时终止 failOnError: true, ...(IS_PRODUCTION && { @@ -79,35 +79,6 @@ const options = [ }, ], }, - // { - // input: 'src/sass/markdown.scss', - // output: { - // file: 'dist/cherry-markdown.styles.js', - // }, - // plugins: [ - // scss({ - // // Filename to write all styles to - // fileName: IS_PRODUCTION ? 'cherry-markdown.markdown.min.css' : 'cherry-markdown.markdown.css', - - // // Determine if node process should be terminated on error (default: false) - // failOnError: true, - // ...(IS_PRODUCTION && { - // outputStyle: 'compressed', - // }), - // sass: dartSass, - // }), - // { - // generateBundle: (option, bundle) => { - // // remove all non-asset files from bundle - // Object.keys(bundle).forEach((key) => { - // if (bundle[key].type !== 'asset') { - // delete bundle[key]; - // } - // }); - // }, - // }, - // ], - // }, ]; export default options; diff --git a/src/sass/markdown_pure.scss b/src/sass/markdown_pure.scss new file mode 100644 index 00000000..caa56a90 --- /dev/null +++ b/src/sass/markdown_pure.scss @@ -0,0 +1,9 @@ +@import './markdown.scss'; +/** 引入自带的主题 */ +@import './themes/default.scss'; +@import './themes/dark.scss'; +@import './themes/light.scss'; +@import './themes/green.scss'; +@import './themes/red.scss'; +@import './themes/violet.scss'; +@import './themes/blue.scss'; From 335b9bd6434d376ff0615695efdf39bd35df13f6 Mon Sep 17 00:00:00 2001 From: Ethan Xu <34962267+ufec@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:30:41 +0800 Subject: [PATCH 18/40] =?UTF-8?q?Fix:=20=E8=87=AA=E5=AE=9A=E4=B9=89icon?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E8=87=AA=E5=AE=9A=E4=B9=89=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=20&=20=E5=AE=8C=E5=96=84propTypes=E6=A0=A1=E9=AA=8C=20(#791)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(release): 0.8.42 * feat(MenuBase): 允许自定义图标icon Closed #589 * fix(type error): Type Error * fix(Factory): 自定义icon兼容自定义菜单 --------- Co-authored-by: sunsonliu(刘阳) --- src/Factory.js | 65 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 11 deletions(-) diff --git a/src/Factory.js b/src/Factory.js index 4c2c0a03..aa1ef1c9 100644 --- a/src/Factory.js +++ b/src/Factory.js @@ -17,6 +17,42 @@ import SyntaxBase, { HOOKS_TYPE_LIST } from './core/SyntaxBase'; import ParagraphBase from './core/ParagraphBase'; import MenuBase from './toolbars/MenuBase'; +/** + * 属性类型匹配 + * @param {object} obj 待匹配的对象 + * @param {string} key 待匹配的属性名 + * @param {any} type 匹配的类型 + */ +function matchPropTypes(obj, key, type) { + if (typeof obj !== 'object' || !obj) { + throw TypeError(`first argument must be a object, but get ${typeof obj}`); + } + // 不用检测,会存在 undefined 的情况 + // if (!Object.keys(obj).includes(key)) + // 递归 + if ( + !Array.isArray(type) && + typeof type === 'object' && + type !== null && + typeof obj[key] === 'object' && + obj[key] !== null + ) { + // 递归时,取对象里每个属性进行匹配,必须全部匹配才返回true + return Object.keys(obj[key]).every((objKey) => matchPropTypes(obj[key], objKey, type[objKey])); + } + if (typeof type === 'string' && typeof obj[key] === type) { + return true; + } + if (typeof type === 'function' && obj[key] instanceof type) { + return true; + } + // 联合类型 + if (Array.isArray(type)) { + return type.some((type) => matchPropTypes(obj, key, type)); + } + return false; +} + function filterOptions(options, whiteList, propTypes) { const filteredOptions = {}; Object.keys(options).forEach((key) => { @@ -24,14 +60,8 @@ function filterOptions(options, whiteList, propTypes) { return; } if (typeof propTypes === 'object') { - if (typeof propTypes[key] === 'string') { - if (typeof options[key] === propTypes[key]) { - filteredOptions[key] = options[key]; - } - } else { - if (options[key] instanceof propTypes[key]) { - filteredOptions[key] = options[key]; - } + if (matchPropTypes(options, key, propTypes[key])) { + filteredOptions[key] = options[key]; } } else if (typeof propTypes === 'string') { if (typeof options[key] === propTypes) { @@ -98,21 +128,34 @@ export function createSyntaxHook(name, type, options) { } export function createMenuHook(name, options) { - const optionsWhiteList = ['subMenuConfig', 'onClick', 'shortcutKeys', 'iconName']; + const optionsWhiteList = ['subMenuConfig', 'onClick', 'shortcutKeys', 'iconName', 'icon']; const propTypes = { subMenuConfig: Array, onClick: 'function', shortcutKeys: Array, iconName: 'string', + icon: [ + 'string', + { + type: 'string', + content: 'string', + iconStyle: ['string', 'undefined'], + iconClassName: ['string', 'undefined'], + }, + ], }; const filteredOptions = filterOptions(options, optionsWhiteList, propTypes); return class CustomMenu extends MenuBase { constructor(editorInstance) { super(editorInstance); - if (!filteredOptions.iconName) { + if (!filteredOptions.iconName && !filteredOptions.icon) { this.noIcon = true; } - this.setName(name, filteredOptions.iconName); + if (filteredOptions.icon) { + this.$currentMenuOptions.icon = filteredOptions.icon; + } else { + this.setName(name, filteredOptions.iconName); + } this.subMenuConfig = filteredOptions.subMenuConfig || []; } From a1c24d228f5d6510355f0264309f3251f8bd75f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E8=8F=9C=20Cai?= Date: Tue, 18 Jun 2024 14:16:56 +0800 Subject: [PATCH 19/40] fix(vscodePlugin): first open markdown will not activate the extension (#784) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: 当更新到最新的vscode扩展 `v0.0.15` 时,当我第一次打开vscode,并且使用vscode打开markdown文件的时候,无论`uage`使用哪种方式都不会激活扩展预览,仅当使用右键手动打开`Open Cherry Markdown Preview` 之后,插件预览才能激活。 更换了`VS Code 扩展的激活事件(activationEvents)`,当遇到markdown文件即激活扩展。 ![1718430688104](https://github.com/Tencent/cherry-markdown/assets/81673017/c83e103a-5413-448b-abf0-4730f4f87822) --- vscodePlugin/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vscodePlugin/package.json b/vscodePlugin/package.json index ef4c60ad..f9217914 100644 --- a/vscodePlugin/package.json +++ b/vscodePlugin/package.json @@ -23,7 +23,7 @@ "Other" ], "activationEvents": [ - "onCommand:cherrymarkdown.preview" + "onLanguage:markdown" ], "main": "./dist/extension.js", "contributes": { From 5036f19b94e976b96d5ca31fa10ecf881ad94819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Wed, 19 Jun 2024 17:37:51 +0800 Subject: [PATCH 20/40] =?UTF-8?q?feat:#762=20=E5=A2=9E=E5=8A=A0=E8=AF=AD?= =?UTF-8?q?=E6=B3=95=E9=AB=98=E4=BA=AE=E6=94=AF=E6=8C=81=E7=9A=84=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=90=8Echerry.min.js?= =?UTF-8?q?=E4=BD=93=E7=A7=AF=E5=A2=9E=E5=8A=A0=E4=BA=86105KB=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B9=85=E5=BA=A62.7%=E8=BF=98=E5=9C=A8?= =?UTF-8?q?=E5=8F=AF=E6=8E=A5=E5=8F=97=E8=8C=83=E5=9B=B4=EF=BC=8C=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=EF=BC=88=E6=9C=89=E7=94=A8=E6=88=B7=E5=8F=8D=E9=A6=88?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=89=E8=80=83=E8=99=91=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=85=8D=E7=BD=AE=E4=B8=9A=E5=8A=A1=E8=87=AA=E5=B7=B1?= =?UTF-8?q?prismjs=E7=BB=84=E5=BB=BA=E7=9A=84=E5=8A=9F=E8=83=BD=E7=94=A8?= =?UTF-8?q?=E4=BB=A5=E5=87=8F=E5=B0=8F=E5=8C=85=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- babel.config.js | 109 ++++++++++++++++++--- src/utils/code-preview-language-setting.js | 2 + vscodePlugin/package.json | 2 +- 3 files changed, 98 insertions(+), 15 deletions(-) diff --git a/babel.config.js b/babel.config.js index 05d73a4d..128558c3 100644 --- a/babel.config.js +++ b/babel.config.js @@ -51,51 +51,132 @@ module.exports = { 'prismjs', { languages: [ + 'html', + 'xml', + 'svg', + 'mathml', + 'ssml', + 'atom', + 'rss', + 'css', + 'clike', + 'javascript', + 'js', + 'asciidoc', + 'adoc', + 'aspnet', + 'asm6502', + 'awk', + 'gawk', + 'bash', + 'sh', + 'shell', + 'batch', 'c', 'csharp', + 'cs', + 'dotnet', 'cpp', - 'css', + 'cmake', + 'css-extras', + 'csv', 'dart', - 'diff', + 'django', + 'jinja2', + 'dns-zone-file', + 'dns-zone', 'docker', + 'dockerfile', + 'ftl', 'git', - 'glsl', + 'linker-script', + 'ld', 'go', + 'go-module', 'go-mod', - 'graphql', - 'haml', + 'gradle', + 'http', 'ini', 'java', - 'javascript', + 'javadoc', + 'javadoclike', + 'javastacktrace', + 'jsdoc', + 'js-extras', 'json', + 'webmanifest', 'json5', + 'jsonp', + 'jsstacktrace', + 'js-templates', + 'latex', + 'tex', + 'context', 'less', - 'lua', + 'makefile', 'markdown', - 'markup', + 'md', + 'markup-templating', 'matlab', + 'mermaid', 'mongodb', + 'nasm', 'nginx', + 'nsis', + 'objectivec', 'objc', - 'pascal', + 'perl', 'php', - 'protobuf', + 'phpdoc', + 'php-extras', + 'plant-uml', + 'plantuml', + 'plsql', + 'powershell', + 'properties', 'python', + 'py', 'r', + 'jsx', + 'tsx', 'regex', 'ruby', + 'rb', 'rust', - 'jsx', - 'tsx', + 'sas', 'sass', 'scss', - 'shell', + 'scala', + 'scheme', + 'shell-session', + 'sh-session', + 'shellsession', + 'smali', + 'splunk-spl', 'sql', 'swift', - 'typescript', + 'systemd', + 'textile', + 'uri', + 'url', + 'vbnet', + 'vim', + 'visual-basic', 'vb', + 'vba', 'wasm', + 'wiki', + 'xml-doc', 'yaml', + 'yml', + 'diff', + 'glsl', + 'graphql', + 'haml', + 'lua', + 'pascal', + 'protobuf', + 'typescript', ], plugins: [], css: false, diff --git a/src/utils/code-preview-language-setting.js b/src/utils/code-preview-language-setting.js index c07c4eaf..0d2423bf 100644 --- a/src/utils/code-preview-language-setting.js +++ b/src/utils/code-preview-language-setting.js @@ -44,4 +44,6 @@ export const codePreviewLangSelectList = [ 'perl', 'r', 'sql', + 'xml', + 'svg', ]; diff --git a/vscodePlugin/package.json b/vscodePlugin/package.json index f9217914..8aaba420 100644 --- a/vscodePlugin/package.json +++ b/vscodePlugin/package.json @@ -2,7 +2,7 @@ "name": "cherry-markdown", "displayName": "cherry-markdown", "description": "A markdown previewer powered by [cherry-markdown](https://github.com/Tencent/cherry-markdown)", - "version": "0.0.15", + "version": "0.0.16", "publisher": "cherryMarkdownPublisher", "license": "Apache License", "keywords": [ From 42be1bc8b2ee066acc5281f2907be4ab207dd26f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Thu, 20 Jun 2024 18:33:25 +0800 Subject: [PATCH 21/40] =?UTF-8?q?feat:=20#790=20=E9=94=9A=E7=82=B9/toc?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E5=85=BC=E5=AE=B9=E6=BB=9A=E5=8A=A8=E6=9D=A1?= =?UTF-8?q?=E5=9C=A8window=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/preview_only.html | 42 ++++++++++++++++++++++++++++--- examples/scripts/multiple-demo.js | 10 ++++++++ examples/scripts/preview-demo.js | 2 ++ src/Cherry.config.js | 2 ++ src/Cherry.js | 4 +++ src/Previewer.js | 33 +++++++++++++++++++++--- src/sass/cherry.scss | 3 +++ src/toolbars/Toc.js | 26 ++++++++++++++++--- types/cherry.d.ts | 2 ++ 9 files changed, 112 insertions(+), 12 deletions(-) diff --git a/examples/preview_only.html b/examples/preview_only.html index 8246d3b3..c5f0071f 100644 --- a/examples/preview_only.html +++ b/examples/preview_only.html @@ -7,10 +7,27 @@ @@ -24,8 +41,25 @@ -
+

纯预览页面标题

+
+ 作者:Cherry + 时间:2024-06-20 +
+
+
+ + diff --git a/examples/scripts/multiple-demo.js b/examples/scripts/multiple-demo.js index 49541916..cb914a2d 100644 --- a/examples/scripts/multiple-demo.js +++ b/examples/scripts/multiple-demo.js @@ -80,6 +80,11 @@ var cherryConfig1 = { ], toolbarRight: ['fullScreen'], sidebar: ['mobilePreview', 'copy', 'theme'], + // 配置目录 + toc: { + updateLocationHash: false, // 要不要更新URL的hash + defaultModel: 'full', // pure: 精简模式/缩略模式,只有一排小点; full: 完整模式,会展示所有标题 + }, }, editor: { height: '600px', @@ -148,6 +153,11 @@ var cherryConfig2 = { ], toolbarRight: ['fullScreen'], sidebar: ['copy', 'mobilePreview', 'theme'], + // 配置目录 + toc: { + updateLocationHash: false, // 要不要更新URL的hash + defaultModel: 'full', // pure: 精简模式/缩略模式,只有一排小点; full: 完整模式,会展示所有标题 + }, }, editor: { height: '600px', diff --git a/examples/scripts/preview-demo.js b/examples/scripts/preview-demo.js index 99050900..27585354 100644 --- a/examples/scripts/preview-demo.js +++ b/examples/scripts/preview-demo.js @@ -66,6 +66,8 @@ var cherryConfig = { toc: { updateLocationHash: false, // 要不要更新URL的hash defaultModel: 'full', // pure: 精简模式/缩略模式,只有一排小点; full: 完整模式,会展示所有标题 + position: 'fixed', // 悬浮目录的悬浮方式。当滚动条在cherry内部时,用absolute;当滚动条在cherry外部时,用fixed + cssText: 'right: 20px;', }, }, editor: { diff --git a/src/Cherry.config.js b/src/Cherry.config.js index 8f08aead..7243af6f 100644 --- a/src/Cherry.config.js +++ b/src/Cherry.config.js @@ -315,6 +315,8 @@ const defaultConfig = { // updateLocationHash: false, // 要不要更新URL的hash // defaultModel: 'full', // pure: 精简模式/缩略模式,只有一排小点; full: 完整模式,会展示所有标题 // showAutoNumber: false, // 是否显示自增序号 + // position: 'absolute', // 悬浮目录的悬浮方式。当滚动条在cherry内部时,用absolute;当滚动条在cherry外部时,用fixed + // cssText: '', // 自定义样式 // }, // 快捷键配置,如果配置为空,则使用toolbar的配置 shortcutKey: { diff --git a/src/Cherry.js b/src/Cherry.js index 3acdeea5..6a9df60b 100644 --- a/src/Cherry.js +++ b/src/Cherry.js @@ -258,6 +258,10 @@ export default class Cherry extends CherryStatic { // @ts-ignore updateLocationHash: this.options.toolbars.toc.updateLocationHash ?? true, // @ts-ignore + position: this.options.toolbars.toc.position ?? 'absolute', + // @ts-ignore + cssText: this.options.toolbars.toc.cssText ?? '', + // @ts-ignore defaultModel: this.options.toolbars.toc.defaultModel ?? 'pure', // @ts-ignore showAutoNumber: this.options.toolbars.toc.showAutoNumber ?? false, diff --git a/src/Previewer.js b/src/Previewer.js index af49245d..d478f8da 100644 --- a/src/Previewer.js +++ b/src/Previewer.js @@ -962,19 +962,44 @@ export default class Previewer { this.$scrollAnimation(top); } + /** + * 获取有滚动条的dom + */ + getDomCanScroll(currentDom = this.getDomContainer()) { + if (currentDom.scrollHeight > currentDom.clientHeight || currentDom.clientHeight < window.innerHeight) { + return currentDom; + } + if (currentDom.parentElement) { + if (currentDom.nodeName === 'BODY') { + // 如果当前是body了,再往上就是html了 + if (document.documentElement.scrollHeight > document.documentElement.clientHeight) { + return document.documentElement; + } + return currentDom; + } + return this.getDomCanScroll(currentDom.parentElement); + } + } + scrollToHeadByIndex(index) { const previewDom = this.getDomContainer(); + const scrollDom = this.getDomCanScroll(previewDom); const targetHead = previewDom.querySelectorAll('h1,h2,h3,h4,h5,h6,h7,h8')[index] ?? false; + let scrollTop = 0; if (targetHead !== false) { - const scrollTop = - previewDom.scrollTop + targetHead.getBoundingClientRect().y - previewDom.getBoundingClientRect().y - 10; - previewDom.scrollTo({ + if (scrollDom.nodeName === 'HTML') { + scrollTop = scrollDom.scrollTop + targetHead.getBoundingClientRect().y - 10; + } else { + scrollTop = + scrollDom.scrollTop + targetHead.getBoundingClientRect().y - scrollDom.getBoundingClientRect().y - 10; + } + scrollDom.scrollTo({ top: scrollTop, left: 0, behavior: 'smooth', }); } - } +} bindClick() { this.getDomContainer().addEventListener('click', (event) => { diff --git a/src/sass/cherry.scss b/src/sass/cherry.scss index a7e4c028..e17defd2 100644 --- a/src/sass/cherry.scss +++ b/src/sass/cherry.scss @@ -792,6 +792,9 @@ box-shadow: 0px 5px 11px #33333333; border-radius: 10px; transition: all 0.3s; + &.cherry-flex-toc__fixed { + position: fixed; + } &:hover { background-color: #fff; width: 260px; diff --git a/src/toolbars/Toc.js b/src/toolbars/Toc.js index f12674c6..f6237bfc 100644 --- a/src/toolbars/Toc.js +++ b/src/toolbars/Toc.js @@ -26,6 +26,8 @@ export default class Toc { this.updateLocationHash = options.updateLocationHash ?? true; this.defaultModel = options.defaultModel ?? 'full'; this.showAutoNumber = options.showAutoNumber ?? false; + this.position = options.position ?? 'absolute'; + this.cssText = options.cssText ?? ''; this.init(); } @@ -63,6 +65,14 @@ export default class Toc { 'div', `cherry-flex-toc cherry-flex-toc__pure${this.showAutoNumber ? ' auto-num' : ''}`, ); + if (this.position === 'fixed') { + tocDom.classList.add('cherry-flex-toc__fixed'); + } + + if (this.cssText.length > 0) { + tocDom.style.cssText = this.cssText; + } + const tocHead = createElement('div', 'cherry-toc-head'); const tocTitle = createElement('span', 'cherry-toc-title'); tocTitle.append(this.$cherry.locale.toc); @@ -125,9 +135,16 @@ export default class Toc { this.editor.on('scroll', (codemirror, evt) => { this.updateTocList(true); }); - this.$cherry.previewer.getDomContainer().addEventListener('scroll', () => { - this.updateTocList(true); - }); + const scrollDom = this.$cherry.previewer.getDomCanScroll(); + if (scrollDom.nodeName === 'HTML') { + window.addEventListener('scroll', () => { + this.updateTocList(true); + }); + } else { + scrollDom.addEventListener('scroll', () => { + this.updateTocList(true); + }); + } } $switchModel(model = 'pure') { @@ -200,7 +217,8 @@ export default class Toc { if (this.$cherry.status.previewer === 'hide') { // 似乎没有特别好的办法,先欠着 } else { - const minY = this.$cherry.previewer.getDomContainer().getBoundingClientRect().y; + const scrollDom = this.$cherry.previewer.getDomCanScroll(); + const minY = scrollDom.nodeName === 'HTML' ? 0 : scrollDom.getBoundingClientRect().y; const headList = this.$cherry.previewer.getDomContainer().querySelectorAll('h1,h2,h3,h4,h5,h6,h7,h8'); let index = 0; for (; index < headList.length; index++) { diff --git a/types/cherry.d.ts b/types/cherry.d.ts index aa151a19..d9a3a3b9 100644 --- a/types/cherry.d.ts +++ b/types/cherry.d.ts @@ -302,6 +302,8 @@ export interface CherryToolbarOptions { updateLocationHash: boolean, // 要不要更新URL的hash defaultModel: 'pure' | 'full', // pure: 精简模式/缩略模式,只有一排小点; full: 完整模式,会展示所有标题 showAutoNumber: boolean, // 是否显示自增序号 + position: 'absolute' | 'fixed', // 悬浮目录的悬浮方式。当滚动条在cherry内部时,用absolute;当滚动条在cherry外部时,用fixed + cssText: string, // 额外样式 }; /** 是否展示顶部工具栏 */ showToolbar?: boolean; From 85e514d14cf9684c874f6efab1633a174225d3ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Thu, 20 Jun 2024 18:34:53 +0800 Subject: [PATCH 22/40] =?UTF-8?q?=E5=85=B3=E6=8E=89=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E5=89=8D=E9=A2=84=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .husky/pre-commit | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index cf0c46b9..d361fa61 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" +# . "$(dirname -- "$0")/_/husky.sh" -npx --no-install lint-staged +# npx --no-install lint-staged From 08a6a5f526905082062b52dfa5f49d64c1d6e151 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Thu, 20 Jun 2024 18:36:35 +0800 Subject: [PATCH 23/40] fix lint --- src/Previewer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Previewer.js b/src/Previewer.js index d478f8da..dd50ff7a 100644 --- a/src/Previewer.js +++ b/src/Previewer.js @@ -991,7 +991,7 @@ export default class Previewer { scrollTop = scrollDom.scrollTop + targetHead.getBoundingClientRect().y - 10; } else { scrollTop = - scrollDom.scrollTop + targetHead.getBoundingClientRect().y - scrollDom.getBoundingClientRect().y - 10; + scrollDom.scrollTop + targetHead.getBoundingClientRect().y - scrollDom.getBoundingClientRect().y - 10; } scrollDom.scrollTo({ top: scrollTop, @@ -999,7 +999,7 @@ export default class Previewer { behavior: 'smooth', }); } -} + } bindClick() { this.getDomContainer().addEventListener('click', (event) => { From 3ca0bf87524b1cd98386c1467c0e1750cec74f60 Mon Sep 17 00:00:00 2001 From: wind <1012697589@qq.com> Date: Mon, 24 Jun 2024 11:57:13 +0800 Subject: [PATCH 24/40] Feature/paste opt (#804) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(release): 0.8.42 * fix: 长文本情况下,全选粘贴替换内容时会有性能问题 * fix: 修改全选判定方式 * fix: 修改selectAll参数获取 --------- Co-authored-by: sunsonliu(刘阳) --- src/Editor.js | 4 ++++ src/Previewer.js | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/Editor.js b/src/Editor.js index 94f8bab5..25ed247d 100644 --- a/src/Editor.js +++ b/src/Editor.js @@ -104,6 +104,7 @@ export default class Editor { * @type {{ timer?: number; destinationTop?: number }} */ this.animation = {}; + this.selectAll = false; const { codemirror, ...restOptions } = options; if (codemirror) { Object.assign(this.options.codemirror, codemirror); @@ -535,6 +536,9 @@ export default class Editor { editor.on('cursorActivity', () => { this.onCursorActivity(); }); + editor.on('beforeChange', (codemirror) => { + this.selectAll = this.editor.getValue() === codemirror.getSelection(); + }); addEvent( this.getEditorDom(), diff --git a/src/Previewer.js b/src/Previewer.js index dd50ff7a..348c0c85 100644 --- a/src/Previewer.js +++ b/src/Previewer.js @@ -704,6 +704,9 @@ export default class Previewer { // 预览区未隐藏时,直接更新 const tmpDiv = document.createElement('div'); const domContainer = this.getDomContainer(); + if (this.editor.selectAll) { + domContainer.innerHTML = ''; + } tmpDiv.innerHTML = newHtml; const newHtmlList = this.$getSignData(tmpDiv); const oldHtmlList = this.$getSignData(domContainer); From a87334c98bd5510efbc5cd8f167a15ec29f017f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Mon, 24 Jun 2024 15:08:22 +0800 Subject: [PATCH 25/40] chore(release): 0.8.43 --- CHANGELOG.md | 28 ++++++++++++++++++++++ dist/cherry-markdown.core.common.js | 4 ++-- dist/cherry-markdown.core.js | 4 ++-- dist/cherry-markdown.css | 4 ++-- dist/cherry-markdown.engine.core.common.js | 4 ++-- dist/cherry-markdown.engine.core.esm.js | 4 ++-- dist/cherry-markdown.engine.core.js | 4 ++-- dist/cherry-markdown.esm.js | 4 ++-- dist/cherry-markdown.js | 4 ++-- dist/cherry-markdown.js.map | 4 ++-- dist/cherry-markdown.markdown.css | 3 +++ dist/cherry-markdown.markdown.min.css | 3 +++ dist/cherry-markdown.min.css | 4 ++-- dist/cherry-markdown.min.js | 4 ++-- dist/fonts/ch-icon.eot | 2 +- dist/fonts/ch-icon.ttf | 2 +- dist/fonts/ch-icon.woff | 2 +- dist/fonts/ch-icon.woff2 | 4 ++-- package.json | 2 +- 19 files changed, 62 insertions(+), 28 deletions(-) create mode 100644 dist/cherry-markdown.markdown.css create mode 100644 dist/cherry-markdown.markdown.min.css diff --git a/CHANGELOG.md b/CHANGELOG.md index a6591dca..65b0f4e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,34 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.8.43](https://github.com/Tencent/cherry-markdown/compare/v0.8.42...v0.8.43) (2024-06-24) + + +### Features + +* [#696](https://github.com/Tencent/cherry-markdown/issues/696) 构建产物里额外提供预览区样式的文件 ([#783](https://github.com/Tencent/cherry-markdown/issues/783)) ([e33c0d6](https://github.com/Tencent/cherry-markdown/commit/e33c0d68bf5a5d2324d6a118a32f7372d5052d1f)) +* [#767](https://github.com/Tencent/cherry-markdown/issues/767) 代码块、行内代码相关提示交互优化 ([#787](https://github.com/Tencent/cherry-markdown/issues/787)) ([4e05ac6](https://github.com/Tencent/cherry-markdown/commit/4e05ac696323c6dc6bd8d1961ab3adcbb44e7d92)) +* [#769](https://github.com/Tencent/cherry-markdown/issues/769) 代码块主题缓存 ([#781](https://github.com/Tencent/cherry-markdown/issues/781)) ([912c25e](https://github.com/Tencent/cherry-markdown/commit/912c25e268a57bfd0c15f82de2c8b992db945ef7)) +* [#774](https://github.com/Tencent/cherry-markdown/issues/774) 增加选区改变事件 selectionChange ([1859e20](https://github.com/Tencent/cherry-markdown/commit/1859e2080f908ee19f0aeb057631807ded5feded)) +* [#790](https://github.com/Tencent/cherry-markdown/issues/790) 锚点/toc滚动兼容滚动条在window的情况 ([42be1bc](https://github.com/Tencent/cherry-markdown/commit/42be1bc8b2ee066acc5281f2907be4ab207dd26f)) +* 独立一个markdown样式文件(含主题) ([467d870](https://github.com/Tencent/cherry-markdown/commit/467d87043ace777f05afd04958a982a358376a0f)) +* 优化高亮区的显示逻辑,改成每次高亮只亮3秒,不再常驻高亮 ([6365f27](https://github.com/Tencent/cherry-markdown/commit/6365f27453949ab08db8fa7a55f8b406502bf6c4)) +* 增加表格和加粗斜体语法对流式输出场景的适配 ([b1a07a7](https://github.com/Tencent/cherry-markdown/commit/b1a07a7f782c363d29d11681331a49bf5e318264)) +* 增加流式会话的例子 ([0de1a93](https://github.com/Tencent/cherry-markdown/commit/0de1a9372dee6c336208a20cfda8c0900c1776f0)) +* 增加一些小api ([e7bc008](https://github.com/Tencent/cherry-markdown/commit/e7bc0085f15a2b5c5255f0781240646a073bbbc0)) + + +### Bug Fixes + +* [#778](https://github.com/Tencent/cherry-markdown/issues/778) 修复国际化漏掉的地方 ([5bb2b26](https://github.com/Tencent/cherry-markdown/commit/5bb2b265193f5c0fe3a9f969a3d16f8c8ad13e94)) +* [#782](https://github.com/Tencent/cherry-markdown/issues/782) 补上英文 ([d5e4d47](https://github.com/Tencent/cherry-markdown/commit/d5e4d470129a02ea580488959aae12b75f63808c)) +* 修复afterInit失效的问题 ([8c03f95](https://github.com/Tencent/cherry-markdown/commit/8c03f959a93312ab8dcc0ae27b298d9a7f557bf3)) +* 修复vscode插件自动打开预览的问题 ([036f070](https://github.com/Tencent/cherry-markdown/commit/036f070b3d0a724075366dbd3b1fe4f92d6154f7)) +* 右侧编辑列表过程中, 输入回车后, 再次编辑此列表, 数据会异常 [#751](https://github.com/Tencent/cherry-markdown/issues/751) ([#772](https://github.com/Tencent/cherry-markdown/issues/772)) ([38ee8dc](https://github.com/Tencent/cherry-markdown/commit/38ee8dc21acece973946e5955dcf3b2c941d7401)) +* 自定义icon兼容自定义菜单 & 完善propTypes校验 ([#791](https://github.com/Tencent/cherry-markdown/issues/791)) ([335b9bd](https://github.com/Tencent/cherry-markdown/commit/335b9bd6434d376ff0615695efdf39bd35df13f6)), closes [#589](https://github.com/Tencent/cherry-markdown/issues/589) +* **vscodePlugin:** activation timing for VSCode extension ([#773](https://github.com/Tencent/cherry-markdown/issues/773)) ([15e019f](https://github.com/Tencent/cherry-markdown/commit/15e019f0d2d210535207b4c372e5ebebb4a779e5)) +* **vscodePlugin:** first open markdown will not activate the extension ([#784](https://github.com/Tencent/cherry-markdown/issues/784)) ([a1c24d2](https://github.com/Tencent/cherry-markdown/commit/a1c24d228f5d6510355f0264309f3251f8bd75f2)) + ### [0.8.42](https://github.com/Tencent/cherry-markdown/compare/v0.8.41...v0.8.42) (2024-05-27) diff --git a/dist/cherry-markdown.core.common.js b/dist/cherry-markdown.core.common.js index 385d47b3..aa57db6e 100644 --- a/dist/cherry-markdown.core.common.js +++ b/dist/cherry-markdown.core.common.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6cfcd9169e92ad9bfb8a1ca7bf8a768e048b00b0469820ede603c68fb36bf96c -size 1191252 +oid sha256:1330e88a88d56852a5e9ac4c194d112df18a253226dc90c27bf685700b2e434c +size 1301574 diff --git a/dist/cherry-markdown.core.js b/dist/cherry-markdown.core.js index c2c7aac0..e8379424 100644 --- a/dist/cherry-markdown.core.js +++ b/dist/cherry-markdown.core.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c5612008c3166ffe93ce515c272642f54e3563c101f28236ebdaf1245cece52 -size 1191535 +oid sha256:3c05a0c2a6fbf49f4410edc4fef7c37eba235fb0be0e2b70c5ecab37b73a4b45 +size 1301923 diff --git a/dist/cherry-markdown.css b/dist/cherry-markdown.css index cade7f36..2845e1e4 100644 --- a/dist/cherry-markdown.css +++ b/dist/cherry-markdown.css @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4339095e0faf661eeccb3aae142774efcd5c12d70446393d8de0afa05182959c -size 165177 +oid sha256:eaa96d5c55e34c35abdedbd92f6dcb65bbdad10223c5dead98749355bb1a83fe +size 165483 diff --git a/dist/cherry-markdown.engine.core.common.js b/dist/cherry-markdown.engine.core.common.js index a7716bfa..0fb96d17 100644 --- a/dist/cherry-markdown.engine.core.common.js +++ b/dist/cherry-markdown.engine.core.common.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:da253022adba1589ab96a68608bcc6a244d6c3238d6ee57c9baa86d84b7fdbfe -size 367213 +oid sha256:d6fb466c81b7b76d3a9a7e5e33ad96777ebe74dc83e64776720d907a379c27a3 +size 474114 diff --git a/dist/cherry-markdown.engine.core.esm.js b/dist/cherry-markdown.engine.core.esm.js index 4aa5020c..552299e6 100644 --- a/dist/cherry-markdown.engine.core.esm.js +++ b/dist/cherry-markdown.engine.core.esm.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fb2e165d6847bc7ad6e725a158f28435b0f4509599d8eb3c7469d5500c0b64c1 -size 367098 +oid sha256:ed2b3a414e2dd8c02bcd71b01fb74f567362d1f5d4c2316d873108e62535f108 +size 473993 diff --git a/dist/cherry-markdown.engine.core.js b/dist/cherry-markdown.engine.core.js index 0bc517f4..1b453414 100644 --- a/dist/cherry-markdown.engine.core.js +++ b/dist/cherry-markdown.engine.core.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:76274788ab29a91089e3c9f75a30a666f01df2f1764803e5abfda586f49d64a8 -size 367444 +oid sha256:939999cac6ce2cfd9ca6a88d461a38fa3233728610089101fb928a0d4d7adc40 +size 474411 diff --git a/dist/cherry-markdown.esm.js b/dist/cherry-markdown.esm.js index a5780226..d4da021b 100644 --- a/dist/cherry-markdown.esm.js +++ b/dist/cherry-markdown.esm.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6257117b3e980851c57fc68e71928465cc8471740dd201a6dcc71f1ed29151af -size 3950235 +oid sha256:606bb358da4047fe638095d608100484a11fdf16494dc90da375d2823a1588e3 +size 4060557 diff --git a/dist/cherry-markdown.js b/dist/cherry-markdown.js index 53c89521..794b3a28 100644 --- a/dist/cherry-markdown.js +++ b/dist/cherry-markdown.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f0434590a5ab8fe310652e998da8b5c484905e8c691c4c62317ff94f29aa78ca -size 7538532 +oid sha256:7259f57d5829171eb66f73c340722eccc70c7caf5578e3b160ac14fbd444cacf +size 7708704 diff --git a/dist/cherry-markdown.js.map b/dist/cherry-markdown.js.map index 936d8678..8d6ab6d7 100644 --- a/dist/cherry-markdown.js.map +++ b/dist/cherry-markdown.js.map @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:25ffc160ef180328a4caa370848fcf8756331967a242951562b01fa2bc4c9885 -size 18108331 +oid sha256:7ba07c5411a15baae6cb025f27cbc187ebba15f027bd20a5e2db7c9c6b8686f3 +size 18391668 diff --git a/dist/cherry-markdown.markdown.css b/dist/cherry-markdown.markdown.css new file mode 100644 index 00000000..3d8188a5 --- /dev/null +++ b/dist/cherry-markdown.markdown.css @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cefd33452e518b224caf6cf66b34fd1c0993a4c6d113bcde32b5d05c6a66668b +size 117625 diff --git a/dist/cherry-markdown.markdown.min.css b/dist/cherry-markdown.markdown.min.css new file mode 100644 index 00000000..6776a2c2 --- /dev/null +++ b/dist/cherry-markdown.markdown.min.css @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11d9ddd89c3007cdbf5de8a174883244bc1ff00750a1a4470b26385a6f171ac9 +size 84259 diff --git a/dist/cherry-markdown.min.css b/dist/cherry-markdown.min.css index 4591e819..426d8624 100644 --- a/dist/cherry-markdown.min.css +++ b/dist/cherry-markdown.min.css @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:084ca0965a803b97742ecb65be3cd4cd64aaea5927b78c3faf1efb0317d9bad5 -size 123766 +oid sha256:fe1389a0b49c098a5628253bd6a112bb80035b5699bf2c6663ad59eab8a5436a +size 124004 diff --git a/dist/cherry-markdown.min.js b/dist/cherry-markdown.min.js index 1a61fbed..d0680f37 100644 --- a/dist/cherry-markdown.min.js +++ b/dist/cherry-markdown.min.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:72a39b17552c2d478e6602ac7e58bf1d00d8b7cf974f65dc979890792d2cf326 -size 3950542 +oid sha256:053976ae6e675af18b028c53e0a95c2e58388c1e8d0c5badc1316d4ccdc57e4e +size 4060934 diff --git a/dist/fonts/ch-icon.eot b/dist/fonts/ch-icon.eot index 49519f1b..7e80ba46 100644 --- a/dist/fonts/ch-icon.eot +++ b/dist/fonts/ch-icon.eot @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a3342832e2ad0ef67f178f5d3665a0e06fc64055a6a5c423759d26d5a6ab2c8 +oid sha256:fbb1d455e2364493403c7ac72f1d9311cdd212574e73ce9132056907db8f747e size 20424 diff --git a/dist/fonts/ch-icon.ttf b/dist/fonts/ch-icon.ttf index a364592b..09978d06 100644 --- a/dist/fonts/ch-icon.ttf +++ b/dist/fonts/ch-icon.ttf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9165d4e0d178722690468d2a33b19d7acc9257c170758c848cad6bb198928e2 +oid sha256:252f707cefbf2a1bc999e02e518b89c346eee1052250dce8817a1f60dfd00b2b size 20260 diff --git a/dist/fonts/ch-icon.woff b/dist/fonts/ch-icon.woff index 0bc2242d..d62082d0 100644 --- a/dist/fonts/ch-icon.woff +++ b/dist/fonts/ch-icon.woff @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:734c6940c58d8382fb0372089d966d88e42446c048b0b12b6de0af8f52ce66f2 +oid sha256:938a9aaee75434d38978d9e8b427da781942e834d700a1bed19b14b16c201075 size 11780 diff --git a/dist/fonts/ch-icon.woff2 b/dist/fonts/ch-icon.woff2 index 5bbddd18..72e9de50 100644 --- a/dist/fonts/ch-icon.woff2 +++ b/dist/fonts/ch-icon.woff2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b097ec1e01dac6c82038a485370f3ca4f10d5429fcb16324b235ea493223854 -size 10028 +oid sha256:b9cec354d1dad34bdffa363af6811252ffa953f821055e82f6f2ff2b62ad09a2 +size 10024 diff --git a/package.json b/package.json index 089017c6..2a70f2f1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cherry-markdown", "license": "Apache-2.0", - "version": "0.8.42", + "version": "0.8.43", "description": "a new markdown editor", "repository": { "type": "git", From d947b186880001e9af669e79888588f8fcb7feb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E8=8F=9C=20Cai?= Date: Tue, 7 May 2024 16:55:52 +0800 Subject: [PATCH 26/40] feat: add configuration and right-click menu processing preview (#760) --- vscodePlugin/src/extension.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/vscodePlugin/src/extension.ts b/vscodePlugin/src/extension.ts index 7f748869..6c3e4caa 100644 --- a/vscodePlugin/src/extension.ts +++ b/vscodePlugin/src/extension.ts @@ -31,7 +31,11 @@ export function activate(context: vscode.ExtensionContext) { // 切换文件的时候更新预览区域内容 vscode.window.onDidChangeActiveTextEditor((e) => { - if (e?.document) { + const cherryUsage: 'active' | 'only-manual' | undefined = vscode.workspace + .getConfiguration('cherryMarkdown') + .get('usage'); + + if (e?.document && cherryUsage === 'active') { triggerEditorContentChange(); // 如果打开的不是md文件,则让cherry强制进入预览模式 if (e.document.languageId !== 'markdown' && targetDocument) { From 5a7799338d2f93ae0329207f672ae3607af7eb77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Fri, 24 May 2024 17:44:01 +0800 Subject: [PATCH 27/40] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=B5=81?= =?UTF-8?q?=E5=BC=8F=E4=BC=9A=E8=AF=9D=E7=9A=84=E4=BE=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/ai_chat.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/ai_chat.html b/examples/ai_chat.html index 0860b7cf..9b32d518 100644 --- a/examples/ai_chat.html +++ b/examples/ai_chat.html @@ -13,6 +13,8 @@ margin-right: auto; padding: 0; width: 70%; + min-width: 800px; + height: 100%; } .one-msg { margin-top: 50px; From 6fb3e8f694ae881f1c5d0d37cbf6f89148a238a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Mon, 27 May 2024 11:56:44 +0800 Subject: [PATCH 28/40] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E5=92=8C=E5=8A=A0=E7=B2=97=E6=96=9C=E4=BD=93=E8=AF=AD?= =?UTF-8?q?=E6=B3=95=E5=AF=B9=E6=B5=81=E5=BC=8F=E8=BE=93=E5=87=BA=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E7=9A=84=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/ai_chat.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/ai_chat.html b/examples/ai_chat.html index 9b32d518..0860b7cf 100644 --- a/examples/ai_chat.html +++ b/examples/ai_chat.html @@ -13,8 +13,6 @@ margin-right: auto; padding: 0; width: 70%; - min-width: 800px; - height: 100%; } .one-msg { margin-top: 50px; From d63a4a0228b19a759eee4870d821310c375ead3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Tue, 25 Jun 2024 15:39:00 +0800 Subject: [PATCH 29/40] fix: #808 --- babel.config.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/babel.config.js b/babel.config.js index 128558c3..d2e08a6b 100644 --- a/babel.config.js +++ b/babel.config.js @@ -69,7 +69,6 @@ module.exports = { 'awk', 'gawk', 'bash', - 'sh', 'shell', 'batch', 'c', @@ -94,7 +93,6 @@ module.exports = { 'go', 'go-module', 'go-mod', - 'gradle', 'http', 'ini', 'java', From eb084535b2aedc19d57e11b1a6f8268562785be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Tue, 25 Jun 2024 16:34:34 +0800 Subject: [PATCH 30/40] chore(release): 0.8.44 --- CHANGELOG.md | 6 +++ dist/cherry-markdown.core.common.js | 4 +- dist/cherry-markdown.core.js | 4 +- dist/cherry-markdown.engine.core.common.js | 4 +- dist/cherry-markdown.engine.core.esm.js | 4 +- dist/cherry-markdown.engine.core.js | 4 +- dist/cherry-markdown.esm.js | 4 +- dist/cherry-markdown.js | 4 +- dist/cherry-markdown.js.map | 4 +- dist/cherry-markdown.min.js | 4 +- dist/fonts/ch-icon.eot | 2 +- dist/fonts/ch-icon.ttf | 2 +- dist/fonts/ch-icon.woff | 2 +- dist/fonts/ch-icon.woff2 | 4 +- package.json | 2 +- yarn.lock | 59 ++++++++++++++++++++++ 16 files changed, 89 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65b0f4e0..74e2b2f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.8.44](https://github.com/Tencent/cherry-markdown/compare/v0.8.43...v0.8.44) (2024-06-25) + +### Bug Fixes + +* [#808](https://github.com/Tencent/cherry-markdown/issues/808) ([d63a4a0](https://github.com/Tencent/cherry-markdown/commit/d63a4a0228b19a759eee4870d821310c375ead3c)) + ### [0.8.43](https://github.com/Tencent/cherry-markdown/compare/v0.8.42...v0.8.43) (2024-06-24) diff --git a/dist/cherry-markdown.core.common.js b/dist/cherry-markdown.core.common.js index aa57db6e..1d2cd4a6 100644 --- a/dist/cherry-markdown.core.common.js +++ b/dist/cherry-markdown.core.common.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1330e88a88d56852a5e9ac4c194d112df18a253226dc90c27bf685700b2e434c -size 1301574 +oid sha256:80bfe3fad2fc623bf5055f3d803ae6d38a0530d6bda7fd446bbfe7c70e453197 +size 1300452 diff --git a/dist/cherry-markdown.core.js b/dist/cherry-markdown.core.js index e8379424..3d8d04be 100644 --- a/dist/cherry-markdown.core.js +++ b/dist/cherry-markdown.core.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c05a0c2a6fbf49f4410edc4fef7c37eba235fb0be0e2b70c5ecab37b73a4b45 -size 1301923 +oid sha256:795efe757b3145f705fba7329eeeff7654cfbb1b5a41685e208c87f83c19016b +size 1300737 diff --git a/dist/cherry-markdown.engine.core.common.js b/dist/cherry-markdown.engine.core.common.js index 0fb96d17..eabfce89 100644 --- a/dist/cherry-markdown.engine.core.common.js +++ b/dist/cherry-markdown.engine.core.common.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d6fb466c81b7b76d3a9a7e5e33ad96777ebe74dc83e64776720d907a379c27a3 -size 474114 +oid sha256:211a10bf9870205953a099cb7b3a3afe5d7dfd7e98161b48e924cf83639d3afb +size 472769 diff --git a/dist/cherry-markdown.engine.core.esm.js b/dist/cherry-markdown.engine.core.esm.js index 552299e6..b30c7756 100644 --- a/dist/cherry-markdown.engine.core.esm.js +++ b/dist/cherry-markdown.engine.core.esm.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ed2b3a414e2dd8c02bcd71b01fb74f567362d1f5d4c2316d873108e62535f108 -size 473993 +oid sha256:a415e79b06ea033f5213c6877fbbc003772e03738b30b30b988edc82a8698984 +size 472654 diff --git a/dist/cherry-markdown.engine.core.js b/dist/cherry-markdown.engine.core.js index 1b453414..5b826034 100644 --- a/dist/cherry-markdown.engine.core.js +++ b/dist/cherry-markdown.engine.core.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:939999cac6ce2cfd9ca6a88d461a38fa3233728610089101fb928a0d4d7adc40 -size 474411 +oid sha256:626e4ac9c576f1406eae0cd0fa75f90f92062afb8219dfed1b315319db767a95 +size 473002 diff --git a/dist/cherry-markdown.esm.js b/dist/cherry-markdown.esm.js index d4da021b..bd7e3e57 100644 --- a/dist/cherry-markdown.esm.js +++ b/dist/cherry-markdown.esm.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:606bb358da4047fe638095d608100484a11fdf16494dc90da375d2823a1588e3 -size 4060557 +oid sha256:c4f2cd286a4be66e46ef3cd2522abe9d576ae7bed0d99ea96337a9109f4d1290 +size 4058359 diff --git a/dist/cherry-markdown.js b/dist/cherry-markdown.js index 794b3a28..8d4e0b42 100644 --- a/dist/cherry-markdown.js +++ b/dist/cherry-markdown.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7259f57d5829171eb66f73c340722eccc70c7caf5578e3b160ac14fbd444cacf -size 7708704 +oid sha256:1de91f62e8cf25aab61bb0a110ff1b42252fbbd7dc7072c9e762f7cec2ed988a +size 7704734 diff --git a/dist/cherry-markdown.js.map b/dist/cherry-markdown.js.map index 8d6ab6d7..ff3b66e7 100644 --- a/dist/cherry-markdown.js.map +++ b/dist/cherry-markdown.js.map @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7ba07c5411a15baae6cb025f27cbc187ebba15f027bd20a5e2db7c9c6b8686f3 -size 18391668 +oid sha256:6c4bdfd7ea3b5b38ed2e330bc011f822d3c38dbaee7de322a241bf9264470bb7 +size 18358015 diff --git a/dist/cherry-markdown.min.js b/dist/cherry-markdown.min.js index d0680f37..0e04adf3 100644 --- a/dist/cherry-markdown.min.js +++ b/dist/cherry-markdown.min.js @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:053976ae6e675af18b028c53e0a95c2e58388c1e8d0c5badc1316d4ccdc57e4e -size 4060934 +oid sha256:d118628bc7956a60f2c00be5260b3c5c7e085c3e49d416f4b50476c1d5d4eda4 +size 4058666 diff --git a/dist/fonts/ch-icon.eot b/dist/fonts/ch-icon.eot index 7e80ba46..5235f084 100644 --- a/dist/fonts/ch-icon.eot +++ b/dist/fonts/ch-icon.eot @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fbb1d455e2364493403c7ac72f1d9311cdd212574e73ce9132056907db8f747e +oid sha256:a90e09f389d8d95e48489afd5a5389708f5f6e9545e463b3079abe655fcff048 size 20424 diff --git a/dist/fonts/ch-icon.ttf b/dist/fonts/ch-icon.ttf index 09978d06..0b9297d9 100644 --- a/dist/fonts/ch-icon.ttf +++ b/dist/fonts/ch-icon.ttf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:252f707cefbf2a1bc999e02e518b89c346eee1052250dce8817a1f60dfd00b2b +oid sha256:da0f9c3648a842be5136fe97f3cf83664a654609d21a2641edf500fb13afea8e size 20260 diff --git a/dist/fonts/ch-icon.woff b/dist/fonts/ch-icon.woff index d62082d0..eed96b82 100644 --- a/dist/fonts/ch-icon.woff +++ b/dist/fonts/ch-icon.woff @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:938a9aaee75434d38978d9e8b427da781942e834d700a1bed19b14b16c201075 +oid sha256:c797539e6c11cc4379e40db697c0b1094119de1954b43cab5134f21be0bc30db size 11780 diff --git a/dist/fonts/ch-icon.woff2 b/dist/fonts/ch-icon.woff2 index 72e9de50..6e1adb3a 100644 --- a/dist/fonts/ch-icon.woff2 +++ b/dist/fonts/ch-icon.woff2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b9cec354d1dad34bdffa363af6811252ffa953f821055e82f6f2ff2b62ad09a2 -size 10024 +oid sha256:e3a2c2e505fbe33e8b064d2f3a0ac287cb15b0eef8399891b38913c87348b9e3 +size 10032 diff --git a/package.json b/package.json index 2a70f2f1..ae94a9d2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cherry-markdown", "license": "Apache-2.0", - "version": "0.8.43", + "version": "0.8.44", "description": "a new markdown editor", "repository": { "type": "git", diff --git a/yarn.lock b/yarn.lock index 51ec1c76..822fd045 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24,6 +24,14 @@ dependencies: "@babel/highlight" "^7.16.7" +"@babel/code-frame@^7.10.4": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.10": version "7.17.10" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz" @@ -243,6 +251,11 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + "@babel/helper-validator-option@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" @@ -276,6 +289,16 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + "@babel/node@^7.12.10": version "7.17.10" resolved "https://registry.npmjs.org/@babel/node/-/node-7.17.10.tgz" @@ -7237,6 +7260,15 @@ jest-watcher@^27.5.1: jest-util "^27.5.1" string-length "^4.0.1" +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + jest-worker@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" @@ -9958,6 +9990,16 @@ rollup-plugin-serve@^2.0.2: mime ">=2.4.6" opener "1" +rollup-plugin-terser@^7.0.2: + version "7.0.2" + resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + rollup-plugin-typescript2@^0.32.1: version "0.32.1" resolved "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.32.1.tgz" @@ -10110,6 +10152,13 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: resolved "https://mirrors.tencent.com/npm/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + serialize-javascript@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz" @@ -10874,6 +10923,16 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" +terser@^5.0.0: + version "5.31.1" + resolved "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz#735de3c987dd671e95190e6b98cfe2f07f3cf0d4" + integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + terser@^5.17.4: version "5.19.2" resolved "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz" From a03c999e98f2295d607f92fc109f72337634ca43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Thu, 27 Jun 2024 11:17:56 +0800 Subject: [PATCH 31/40] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E6=9C=89?= =?UTF-8?q?=E5=A4=A7=E9=87=8Fbase64=E6=95=B0=E6=8D=AE=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E6=B8=B2=E6=9F=93=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Engine.js | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/Engine.js b/src/Engine.js index f64df1e4..695fddc3 100644 --- a/src/Engine.js +++ b/src/Engine.js @@ -19,7 +19,7 @@ import NestedError, { $expectTarget, $expectInherit, $expectInstance } from './u import md5 from 'md5'; import SyntaxBase from './core/SyntaxBase'; import ParagraphBase from './core/ParagraphBase'; -import { PUNCTUATION } from './utils/regexp'; +import { PUNCTUATION, imgBase64Reg, imgDrawioXmlReg } from './utils/regexp'; import { escapeHTMLSpecialChar } from './utils/sanitize'; import Logger from './Logger'; import { configureMathJax } from './utils/mathjax'; @@ -48,6 +48,7 @@ export default class Engine { this.hooks = this.hookCenter.getHookList(); this.md5Cache = {}; this.md5StrMap = {}; + this.cachedBigData = {}; this.markdownParams = markdownParams; this.currentStrMd5 = []; this.globalConfig = markdownParams.engine.global; @@ -227,14 +228,37 @@ export default class Engine { return this.$fireHookAction(md, 'paragraph', 'makeHtml', this.$dealSentenceByCache.bind(this)); } + // 缓存大文本数据,用以提升渲染性能 + $cacheBigData(md) { + let $md = md.replace(imgBase64Reg, (whole, m1, m2) => { + const cacheKey = `bigDataBegin${this.md5(m2)}bigDataEnd`; + this.cachedBigData[cacheKey] = m2; + return `${m1}${cacheKey})`; + }); + $md = $md.replace(imgDrawioXmlReg, (whole, m1, m2) => { + const cacheKey = `bigDataBegin${this.md5(m2)}bigDataEnd`; + this.cachedBigData[cacheKey] = m2; + return `${m1}${cacheKey}}`; + }); + return $md; + } + + $deCacheBigData(md) { + return md.replace(/bigDataBegin[^\n]+?bigDataEnd/g, (whole) => { + return this.cachedBigData[whole]; + }); + } + /** * @param {string} md md字符串 * @returns {string} 获取html */ makeHtml(md) { - let $md = this.$beforeMakeHtml(md); + let $md = this.$cacheBigData(md); + $md = this.$beforeMakeHtml($md); $md = this.$dealParagraph($md); $md = this.$afterMakeHtml($md); + $md = this.$deCacheBigData($md); return $md; } From d398c6a4f4c98a9c4e1616eb8e1633ef2957deea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Thu, 27 Jun 2024 17:00:20 +0800 Subject: [PATCH 32/40] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dmenu.setName?= =?UTF-8?q?=E5=A4=B1=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/toolbars/MenuBase.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/toolbars/MenuBase.js b/src/toolbars/MenuBase.js index fe5c5971..5957a7d9 100644 --- a/src/toolbars/MenuBase.js +++ b/src/toolbars/MenuBase.js @@ -115,6 +115,7 @@ export default class MenuBase { setName(name, iconName) { this.name = name; this.iconName = iconName; + this.$currentMenuOptions = { name, icon: iconName }; } /** From 40ba66fd3cda87542bc916b9252863a38eb18cd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sunsonliu=28=E5=88=98=E9=98=B3=29?= Date: Thu, 27 Jun 2024 17:52:54 +0800 Subject: [PATCH 33/40] =?UTF-8?q?feat:=20#522=20=E5=A2=9E=E5=8A=A0vim?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=A8=A1=E5=BC=8F=E7=9A=84=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.CN.md | 1 + README.md | 1 + examples/markdown/basic.md | 2 ++ examples/scripts/index-demo.js | 2 +- examples/vim.html | 47 ++++++++++++++++++++++++++++++++++ src/Cherry.config.js | 2 ++ src/Editor.js | 3 +++ types/cherry.d.ts | 2 ++ types/editor.d.ts | 1 + 9 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 examples/vim.html diff --git a/README.CN.md b/README.CN.md index 43a285aa..20267cb6 100644 --- a/README.CN.md +++ b/README.CN.md @@ -28,6 +28,7 @@ - [表格编辑](https://tencent.github.io/cherry-markdown/examples/table.html) - [标题自动序号](https://tencent.github.io/cherry-markdown/examples/head_num.html) - [流式输入模式(AI chart场景)](https://tencent.github.io/cherry-markdown/examples/ai_chat.html) +- [VIM 编辑模式](https://tencent.github.io/cherry-markdown/examples/vim.html) ----- diff --git a/README.md b/README.md index 02259c2f..567614ca 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ English | [简体中文](./README.CN.md) - [table wysiwyg](https://tencent.github.io/cherry-markdown/examples/table.html) - [headers with auto num](https://tencent.github.io/cherry-markdown/examples/head_num.html) - [流式输入模式(AI chart场景)](https://tencent.github.io/cherry-markdown/examples/ai_chat.html) +- [VIM 编辑模式](https://tencent.github.io/cherry-markdown/examples/vim.html) ----- diff --git a/examples/markdown/basic.md b/examples/markdown/basic.md index 78102cc6..c5ff7004 100644 --- a/examples/markdown/basic.md +++ b/examples/markdown/basic.md @@ -14,6 +14,8 @@ - [表格所见即所得编辑尺寸](table.html){target=_blank} - [标题自动序号](head_num.html){target=_blank} - [流式输入模式(AI chart场景)](ai_chat.html){target=_blank} +- [VIM 编辑模式](vim.html){target=_blank} + # Cherry Markdown { 简明手册 | jiǎn míng shǒu cè } diff --git a/examples/scripts/index-demo.js b/examples/scripts/index-demo.js index 031f2f88..a25ce9a7 100644 --- a/examples/scripts/index-demo.js +++ b/examples/scripts/index-demo.js @@ -179,7 +179,7 @@ var basicConfig = { '|', 'formula', { - insert: ['image', 'audio', 'video', 'link', 'hr', 'br', 'code', 'formula', 'toc', 'table', 'pdf', 'word', 'ruby'], + insert: ['image', 'audio', 'video', 'link', 'hr', 'br', 'code', 'formula', 'toc', 'table', 'pdf', 'word'], }, 'graph', 'customMenuTable', diff --git a/examples/vim.html b/examples/vim.html new file mode 100644 index 00000000..f51b66d3 --- /dev/null +++ b/examples/vim.html @@ -0,0 +1,47 @@ + + + + + VIM demo - Cherry Editor + + + + + + +
+ + + + diff --git a/src/Cherry.config.js b/src/Cherry.config.js index 7243af6f..15b4ca0d 100644 --- a/src/Cherry.config.js +++ b/src/Cherry.config.js @@ -260,6 +260,8 @@ const defaultConfig = { defaultModel: 'edit&preview', // 粘贴时是否自动将html转成markdown convertWhenPaste: true, + // 快捷键风格,目前仅支持 sublime 和 vim + keyMap: 'sublime', codemirror: { // 是否自动focus 默认为true autofocus: true, diff --git a/src/Editor.js b/src/Editor.js index 25ed247d..2babecb1 100644 --- a/src/Editor.js +++ b/src/Editor.js @@ -25,6 +25,7 @@ import 'codemirror/addon/edit/matchtags'; import 'codemirror/addon/search/searchcursor'; import 'codemirror/addon/display/placeholder'; import 'codemirror/keymap/sublime'; +import 'codemirror/keymap/vim'; import 'cm-search-replace/src/search'; import 'codemirror/addon/scroll/annotatescrollbar'; @@ -65,6 +66,7 @@ export default class Editor { wrapperDom: null, autoScrollByCursor: true, convertWhenPaste: true, + keyMap: 'sublime', showFullWidthMark: true, showSuggestList: true, codemirror: { @@ -110,6 +112,7 @@ export default class Editor { Object.assign(this.options.codemirror, codemirror); } Object.assign(this.options, restOptions); + this.options.codemirror.keyMap = this.options.keyMap; this.$cherry = this.options.$cherry; this.instanceId = this.$cherry.getInstanceId(); } diff --git a/types/cherry.d.ts b/types/cherry.d.ts index d9a3a3b9..4b519d09 100644 --- a/types/cherry.d.ts +++ b/types/cherry.d.ts @@ -163,6 +163,8 @@ export interface CherryEditorOptions { defaultModel?: EditorMode; /** 粘贴时是否自动将html转成markdown */ convertWhenPaste?: boolean; + /** 快捷键风格,目前仅支持 sublime 和 vim */ + keyMap?: 'sublime' | 'vim'; /** 透传给codemirror的配置项 */ codemirror?: object; /** 书写风格,normal 普通 | typewriter 打字机 | focus 专注,默认normal */ diff --git a/types/editor.d.ts b/types/editor.d.ts index c47d82ed..101412d9 100644 --- a/types/editor.d.ts +++ b/types/editor.d.ts @@ -46,6 +46,7 @@ export type EditorConfiguration = { toolbars: any; value?: string; convertWhenPaste?: boolean; + keyMap?: 'sublime' | 'vim'; // 快捷键风格,目前仅支持 sublime 和 vim keepDocumentScrollAfterInit?: boolean; /** 是否高亮全角符号 ·|¥|、|:|“|”|【|】|(|)|《|》 */ showFullWidthMark?: boolean; From c1bed21cec99000f9a71f78f557500cafde6a7e3 Mon Sep 17 00:00:00 2001 From: saraph1nes Date: Wed, 19 Jun 2024 00:10:46 +0800 Subject: [PATCH 34/40] =?UTF-8?q?feat:=20#794=20=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E6=94=AF=E6=8C=81pr=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 22 +++++++ .github/workflows/pr-viewer.yml | 113 ++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 .github/workflows/pr-viewer.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5030c607..b2c4dfb9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,6 +37,28 @@ jobs: uses: borales/actions-yarn@v3.0.0 with: cmd: build + + - name: Archive build dist + if: matrix.node-version == '16.x' + uses: actions/upload-artifact@v4 + with: + name: build-dist + path: dist + + - name: Archive examples + if: matrix.node-version == '16.x' + uses: actions/upload-artifact@v4 + with: + name: build-examples + path: examples # - uses: borales/actions-yarn@v2.3.0 # with: # cmd: test + + review: + needs: build + permissions: write-all + uses: ./.github/workflows/pr-viewer.yml + # inherit the secrets from the parent workflow + # https://docs.github.com/actions/using-workflows/reusing-workflows#using-inputs-and-secrets-in-a-reusable-workflow + secrets: inherit \ No newline at end of file diff --git a/.github/workflows/pr-viewer.yml b/.github/workflows/pr-viewer.yml new file mode 100644 index 00000000..a69a6a8e --- /dev/null +++ b/.github/workflows/pr-viewer.yml @@ -0,0 +1,113 @@ +name: PR Reviewer + +on: + workflow_call: + +jobs: + upload: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Print PR details + run: | + echo "The PR ID is ${{ github.event.pull_request.id }}" + echo "The PR number is ${{ github.event.pull_request.number }}" + echo "The PR title is ${{ github.event.pull_request.title }}" + echo "The PR branch is ${{ github.event.pull_request.head.ref }}" + + - run: npm install cos-nodejs-sdk-v5 + + - name: Download build dist + uses: actions/download-artifact@v4 + with: + name: build-dist + path: dist + + - name: Download build artifact + uses: actions/download-artifact@v4 + with: + name: build-examples + path: examples + + - name: Upload to COS + uses: actions/github-script@v7 + with: + script: | + const COS = require('cos-nodejs-sdk-v5'); + const fs = require('fs'); + const path = require('path'); + + const cos = new COS({ + SecretId: '${{ secrets.COS_SECRETID }}', + SecretKey: '${{ secrets.COS_SECRETKEY }}', + }); + + const uploadDirectory = (directoryPath, keyPrefix) => { + const uploadPromises = []; + const files = fs.readdirSync(directoryPath); + files.forEach(file => { + const filePath = path.join(directoryPath, file); + const key = `${keyPrefix}/${file}`; + if (fs.lstatSync(filePath).isDirectory()) { + uploadPromises.push(uploadDirectory(filePath, key)); + } else { + uploadPromises.push(uploadFile(filePath, key)); + } + }); + return Promise.all(uploadPromises); + }; + + const uploadFile = (filePath, key) => { + return new Promise((resolve, reject) => { + cos.uploadFile({ + Bucket: 'cherry-markdown-dev-1301618266', + Region: 'ap-shanghai', + Key: key, + FilePath: filePath, + SliceSize: 1024 * 1024 * 5, /* 触发分块上传的阈值,超过5MB使用分块上传,非必须 */ + ContentDisposition: 'inline', + CacheControl: 'no-cache', + Headers: { + 'Cache-control': 'no-cache', + 'Content-Disposition': 'inline', + }, + }, function(err, data) { + if (err) { + reject(err); + } else { + resolve(data); + } + }); + }); + }; + + (async () => { + try { + await uploadDirectory('dist', 'pr${{ github.event.pull_request.number }}/dist'); + await uploadDirectory('examples', 'pr${{ github.event.pull_request.number }}/examples'); + console.log('Upload success'); + } catch (err) { + console.error('Upload failed:', err); + } + })(); + + - name: Add Comment + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const response = await github.request('POST /repos/{owner}/{repo}/issues/{issue_number}/comments', { + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: ` + ### 【预览链接】 + + 通过下方链接查看效果 + + - https://cherry-markdown-dev-1301618266.cos-website.ap-shanghai.myqcloud.com/pr${{ github.event.pull_request.number }}/examples/index.html + ` + }); From d26a3bec891ed93115210d94f71cdbfa38c2c884 Mon Sep 17 00:00:00 2001 From: Leo Xia <52569690+Saraph1nes@users.noreply.github.com> Date: Sat, 29 Jun 2024 20:26:04 +0800 Subject: [PATCH 35/40] =?UTF-8?q?feat:=20#794=20=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E6=94=AF=E6=8C=81pr=E9=A2=84=E8=A7=88=20(#816)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: saraph1nes --- .github/workflows/build.yml | 22 +++++++ .github/workflows/pr-viewer.yml | 113 ++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 .github/workflows/pr-viewer.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5030c607..b2c4dfb9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,6 +37,28 @@ jobs: uses: borales/actions-yarn@v3.0.0 with: cmd: build + + - name: Archive build dist + if: matrix.node-version == '16.x' + uses: actions/upload-artifact@v4 + with: + name: build-dist + path: dist + + - name: Archive examples + if: matrix.node-version == '16.x' + uses: actions/upload-artifact@v4 + with: + name: build-examples + path: examples # - uses: borales/actions-yarn@v2.3.0 # with: # cmd: test + + review: + needs: build + permissions: write-all + uses: ./.github/workflows/pr-viewer.yml + # inherit the secrets from the parent workflow + # https://docs.github.com/actions/using-workflows/reusing-workflows#using-inputs-and-secrets-in-a-reusable-workflow + secrets: inherit \ No newline at end of file diff --git a/.github/workflows/pr-viewer.yml b/.github/workflows/pr-viewer.yml new file mode 100644 index 00000000..a69a6a8e --- /dev/null +++ b/.github/workflows/pr-viewer.yml @@ -0,0 +1,113 @@ +name: PR Reviewer + +on: + workflow_call: + +jobs: + upload: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Print PR details + run: | + echo "The PR ID is ${{ github.event.pull_request.id }}" + echo "The PR number is ${{ github.event.pull_request.number }}" + echo "The PR title is ${{ github.event.pull_request.title }}" + echo "The PR branch is ${{ github.event.pull_request.head.ref }}" + + - run: npm install cos-nodejs-sdk-v5 + + - name: Download build dist + uses: actions/download-artifact@v4 + with: + name: build-dist + path: dist + + - name: Download build artifact + uses: actions/download-artifact@v4 + with: + name: build-examples + path: examples + + - name: Upload to COS + uses: actions/github-script@v7 + with: + script: | + const COS = require('cos-nodejs-sdk-v5'); + const fs = require('fs'); + const path = require('path'); + + const cos = new COS({ + SecretId: '${{ secrets.COS_SECRETID }}', + SecretKey: '${{ secrets.COS_SECRETKEY }}', + }); + + const uploadDirectory = (directoryPath, keyPrefix) => { + const uploadPromises = []; + const files = fs.readdirSync(directoryPath); + files.forEach(file => { + const filePath = path.join(directoryPath, file); + const key = `${keyPrefix}/${file}`; + if (fs.lstatSync(filePath).isDirectory()) { + uploadPromises.push(uploadDirectory(filePath, key)); + } else { + uploadPromises.push(uploadFile(filePath, key)); + } + }); + return Promise.all(uploadPromises); + }; + + const uploadFile = (filePath, key) => { + return new Promise((resolve, reject) => { + cos.uploadFile({ + Bucket: 'cherry-markdown-dev-1301618266', + Region: 'ap-shanghai', + Key: key, + FilePath: filePath, + SliceSize: 1024 * 1024 * 5, /* 触发分块上传的阈值,超过5MB使用分块上传,非必须 */ + ContentDisposition: 'inline', + CacheControl: 'no-cache', + Headers: { + 'Cache-control': 'no-cache', + 'Content-Disposition': 'inline', + }, + }, function(err, data) { + if (err) { + reject(err); + } else { + resolve(data); + } + }); + }); + }; + + (async () => { + try { + await uploadDirectory('dist', 'pr${{ github.event.pull_request.number }}/dist'); + await uploadDirectory('examples', 'pr${{ github.event.pull_request.number }}/examples'); + console.log('Upload success'); + } catch (err) { + console.error('Upload failed:', err); + } + })(); + + - name: Add Comment + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const response = await github.request('POST /repos/{owner}/{repo}/issues/{issue_number}/comments', { + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: ` + ### 【预览链接】 + + 通过下方链接查看效果 + + - https://cherry-markdown-dev-1301618266.cos-website.ap-shanghai.myqcloud.com/pr${{ github.event.pull_request.number }}/examples/index.html + ` + }); From f72848760d50142bac1defe46831cd1de15c360a Mon Sep 17 00:00:00 2001 From: saraph1nes Date: Sun, 30 Jun 2024 17:53:08 +0800 Subject: [PATCH 36/40] =?UTF-8?q?feat:=20=E8=AE=BE=E7=BD=AEactions?= =?UTF-8?q?=E6=9D=83=E9=99=90=EF=BC=8C=E6=94=AF=E6=8C=81pr=E6=9E=84?= =?UTF-8?q?=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b2c4dfb9..df5d8955 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,12 +6,17 @@ name: Package Build on: push: branches: [main, dev] - pull_request: + # 由 pull_request_target 事件触发的工作流中,GITHUB_TOKEN 被授予了对仓库的读写访问权限。 + # 请注意限制每个作业的权限! + # https://docs.github.com/actions/using-jobs/assigning-permissions-to-jobs + pull_request_target: branches: [main, dev] jobs: build: runs-on: ubuntu-latest + # 将权限设置为 `read-all`,以防止工作流意外地对仓库进行写操作 + permissions: read-all strategy: matrix: @@ -57,6 +62,7 @@ jobs: review: needs: build + # 需要写权限才能在相应的PR中创建评论 permissions: write-all uses: ./.github/workflows/pr-viewer.yml # inherit the secrets from the parent workflow From 9214bd47caf8abbd4cc5155d7cc72a2ae8adc781 Mon Sep 17 00:00:00 2001 From: xiayuxuan Date: Sun, 30 Jun 2024 22:20:13 +0800 Subject: [PATCH 37/40] =?UTF-8?q?fix:=20github=20actions=20build=E6=8E=92?= =?UTF-8?q?=E9=99=A4=E6=8E=89push?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df5d8955..2c502f36 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,6 +14,8 @@ on: jobs: build: + # do not run on PRs in forks + if: github.repository == 'Tencent/cherry-markdown' runs-on: ubuntu-latest # 将权限设置为 `read-all`,以防止工作流意外地对仓库进行写操作 permissions: read-all @@ -64,6 +66,7 @@ jobs: needs: build # 需要写权限才能在相应的PR中创建评论 permissions: write-all + if: github.event_name == 'pull_request_target' uses: ./.github/workflows/pr-viewer.yml # inherit the secrets from the parent workflow # https://docs.github.com/actions/using-workflows/reusing-workflows#using-inputs-and-secrets-in-a-reusable-workflow From 564091907424c54d504131783f81088736237abb Mon Sep 17 00:00:00 2001 From: xiayuxuan Date: Sun, 30 Jun 2024 23:21:59 +0800 Subject: [PATCH 38/40] =?UTF-8?q?revert:=20=E5=9B=9E=E9=80=80build.yml?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 33 +------------------------ .github/workflows/pr-viewer.yml | 43 ++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 33 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2c502f36..5030c607 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,19 +6,12 @@ name: Package Build on: push: branches: [main, dev] - # 由 pull_request_target 事件触发的工作流中,GITHUB_TOKEN 被授予了对仓库的读写访问权限。 - # 请注意限制每个作业的权限! - # https://docs.github.com/actions/using-jobs/assigning-permissions-to-jobs - pull_request_target: + pull_request: branches: [main, dev] jobs: build: - # do not run on PRs in forks - if: github.repository == 'Tencent/cherry-markdown' runs-on: ubuntu-latest - # 将权限设置为 `read-all`,以防止工作流意外地对仓库进行写操作 - permissions: read-all strategy: matrix: @@ -44,30 +37,6 @@ jobs: uses: borales/actions-yarn@v3.0.0 with: cmd: build - - - name: Archive build dist - if: matrix.node-version == '16.x' - uses: actions/upload-artifact@v4 - with: - name: build-dist - path: dist - - - name: Archive examples - if: matrix.node-version == '16.x' - uses: actions/upload-artifact@v4 - with: - name: build-examples - path: examples # - uses: borales/actions-yarn@v2.3.0 # with: # cmd: test - - review: - needs: build - # 需要写权限才能在相应的PR中创建评论 - permissions: write-all - if: github.event_name == 'pull_request_target' - uses: ./.github/workflows/pr-viewer.yml - # inherit the secrets from the parent workflow - # https://docs.github.com/actions/using-workflows/reusing-workflows#using-inputs-and-secrets-in-a-reusable-workflow - secrets: inherit \ No newline at end of file diff --git a/.github/workflows/pr-viewer.yml b/.github/workflows/pr-viewer.yml index a69a6a8e..a5bb253c 100644 --- a/.github/workflows/pr-viewer.yml +++ b/.github/workflows/pr-viewer.yml @@ -1,9 +1,50 @@ name: PR Reviewer on: - workflow_call: + workflow_dispatch: jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'yarn' + - name: Install dependencies + uses: borales/actions-yarn@v3.0.0 + with: + cmd: install + - name: Eslint + uses: borales/actions-yarn@v3.0.0 + with: + cmd: lint:ci + - name: Run Build + uses: borales/actions-yarn@v3.0.0 + with: + cmd: build + - name: Archive build dist + if: matrix.node-version == '16.x' + uses: actions/upload-artifact@v4 + with: + name: build-dist + path: dist + + - name: Archive examples + if: matrix.node-version == '16.x' + uses: actions/upload-artifact@v4 + with: + name: build-examples + path: examples + upload: runs-on: ubuntu-latest From 1e61fe45b24f01b7b34c3ccfa58b4d4178a16d9c Mon Sep 17 00:00:00 2001 From: Jake W Date: Thu, 4 Jul 2024 14:04:22 +0800 Subject: [PATCH 39/40] Updated typescript version to 4.7.2 (#825) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae94a9d2..a8bda8df 100644 --- a/package.json +++ b/package.json @@ -144,7 +144,7 @@ "standard-version": "^9.3.2", "ts-jest": "^27.1.1", "ts-node": "^10.7.0", - "typescript": "4.5.5", + "typescript": "4.7.2", "virtual-dom": "^2.1.1" }, "dependencies": { From adc310be0926912122be6405da258077ff69e28d Mon Sep 17 00:00:00 2001 From: yuxuanxia Date: Tue, 2 Jul 2024 11:02:41 +0800 Subject: [PATCH 40/40] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4pr-viewer?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{pr-viewer.yml => pr-reviewer.yml} | 56 ++---------- .github/workflows/pr-test.yml | 85 +++++++++++++++++++ 2 files changed, 91 insertions(+), 50 deletions(-) rename .github/workflows/{pr-viewer.yml => pr-reviewer.yml} (70%) create mode 100644 .github/workflows/pr-test.yml diff --git a/.github/workflows/pr-viewer.yml b/.github/workflows/pr-reviewer.yml similarity index 70% rename from .github/workflows/pr-viewer.yml rename to .github/workflows/pr-reviewer.yml index a5bb253c..cf313115 100644 --- a/.github/workflows/pr-viewer.yml +++ b/.github/workflows/pr-reviewer.yml @@ -1,51 +1,9 @@ name: PR Reviewer -on: - workflow_dispatch: +on: workflow_call jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [16.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - - name: Install dependencies - uses: borales/actions-yarn@v3.0.0 - with: - cmd: install - - name: Eslint - uses: borales/actions-yarn@v3.0.0 - with: - cmd: lint:ci - - name: Run Build - uses: borales/actions-yarn@v3.0.0 - with: - cmd: build - - name: Archive build dist - if: matrix.node-version == '16.x' - uses: actions/upload-artifact@v4 - with: - name: build-dist - path: dist - - - name: Archive examples - if: matrix.node-version == '16.x' - uses: actions/upload-artifact@v4 - with: - name: build-examples - path: examples - - upload: + review: runs-on: ubuntu-latest steps: @@ -104,8 +62,8 @@ jobs: const uploadFile = (filePath, key) => { return new Promise((resolve, reject) => { cos.uploadFile({ - Bucket: 'cherry-markdown-dev-1301618266', - Region: 'ap-shanghai', + Bucket: 'cherrymd-1301618266', + Region: 'ap-singapore', Key: key, FilePath: filePath, SliceSize: 1024 * 1024 * 5, /* 触发分块上传的阈值,超过5MB使用分块上传,非必须 */ @@ -147,8 +105,6 @@ jobs: body: ` ### 【预览链接】 - 通过下方链接查看效果 - - - https://cherry-markdown-dev-1301618266.cos-website.ap-shanghai.myqcloud.com/pr${{ github.event.pull_request.number }}/examples/index.html + - https://cherrymd.com/pr${{ github.event.pull_request.number }}/examples/index.html ` - }); + }); \ No newline at end of file diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml new file mode 100644 index 00000000..30665b80 --- /dev/null +++ b/.github/workflows/pr-test.yml @@ -0,0 +1,85 @@ +name: PR Test + +on: + pull_request_target: + branches: [main, dev] + +jobs: + build: + runs-on: ubuntu-latest + env: + BASE_SHA: ${{ github.event.pull_request.base.sha }} + HEAD_SHA: ${{ github.event.pull_request.head.sha }} + + steps: + - uses: actions/checkout@v2 + with: + ref: '${{ env.HEAD_SHA }}' + + - name: Get changed files and operations + run: | + # 使用 GitHub API 获取变更文件列表及其操作 + DIFF_DOCUMENTS=$(gh api repos/${{ github.repository }}/compare/${{ env.BASE_SHA }}...${{ env.HEAD_SHA }} \ + --jq '.files | .[] | select(.status|IN("added", "modified", "renamed", "copied", "changed")) | .filename') + echo "Changed files and operations: ${DIFF_DOCUMENTS}" + + # 忽略 .github/workflows 下的文件 + GIT_DIFF_FILES=$(echo "${DIFF_DOCUMENTS}" | grep -vE '^\.github\/workflows\/.*' | xargs) + echo "GIT_DIFF_FILES=${GIT_DIFF_FILES}" >> $GITHUB_ENV + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - uses: actions/checkout@v2 + if: ${{ env.GIT_DIFF_FILES }} + with: + repository: ${{ github.repository }} + ref: '${{ env.BASE_SHA }}' + path: base-repo + + - name: Replace changed files + if: ${{ env.GIT_DIFF_FILES }} + run: | + for file in ${{ env.GIT_DIFF_FILES }}; do + cp "$file" "base-repo/$file" + done + + - name: Use Node.js 16.x + uses: actions/setup-node@v2 + with: + node-version: 16.x + cache: 'yarn' + + - name: Install dependencies + uses: borales/actions-yarn@v3.0.0 + with: + cmd: install + + - name: Lint Changed Files + if: ${{ env.GIT_DIFF_FILES }} + run: | + for file in ${{ env.GIT_DIFF_FILES }}; do + yarn eslint "$file" + done + + - name: Run Build + uses: borales/actions-yarn@v3.0.0 + with: + cmd: build + + - name: Archive build dist + uses: actions/upload-artifact@v4 + with: + name: build-dist + path: dist + + - name: Archive examples + uses: actions/upload-artifact@v4 + with: + name: build-examples + path: examples + + review: + needs: build + permissions: write-all + uses: ./.github/workflows/pr-reviewer.yml + secrets: inherit