From 5841b9c128547a7c85331ea9a54242e1c07d13d9 Mon Sep 17 00:00:00 2001 From: msojocs Date: Fri, 2 May 2025 13:09:50 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8napi=E9=87=8D?= =?UTF-8?q?=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 2 +- .mocharc.js | 2 + .vscode/launch.json | 2 +- CMakeLists.txt | 6 +- changelog.md | 4 +- docker-compose.yml | 1 - docker/docker-entrypoint | 4 + docker/entrypoint | 1 + package.json | 11 + pnpm-lock.yaml | 1944 +++-------------- src/module/CMakeLists.txt | 100 +- src/module/config/wcc.cc | 253 +-- src/module/{include => config}/wcc.hh | 6 +- src/module/config/wcsc.cc | 233 +- src/module/{include => config}/wcsc.hh | 6 +- src/module/wcc.cpp | 205 +- src/module/wcsc.cpp | 173 +- test/runner/module-linux.ts | 2 - test/runner/nwjs/compiler.js | 20 +- test/spec/issue/137/data/example.json | 29 + test/spec/issue/137/issue137.spec.ts | 38 + .../wcc/module/data/options-202505012307.json | 28 + test/spec/wcc/module/module.spec.ts | 26 + test/wcsc_module.sh | 6 + 24 files changed, 862 insertions(+), 2240 deletions(-) rename src/module/{include => config}/wcc.hh (83%) rename src/module/{include => config}/wcsc.hh (73%) create mode 100644 test/spec/issue/137/data/example.json create mode 100644 test/spec/issue/137/issue137.spec.ts create mode 100644 test/spec/wcc/module/data/options-202505012307.json create mode 100755 test/wcsc_module.sh diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 18ed517..a621d8d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -178,7 +178,7 @@ jobs: sudo apt install -y fuse wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage chmod +x pyuploadtool-x86_64.AppImage - ./pyuploadtool-x86_64.AppImage **build/wcc **build/wcsc + ./pyuploadtool-x86_64.AppImage **build/wcc **build/wcsc **build/wcc_module.node **build/wcsc_module.node - name: Release uses: softprops/action-gh-release@v1 diff --git a/.mocharc.js b/.mocharc.js index 7e3de23..e461588 100644 --- a/.mocharc.js +++ b/.mocharc.js @@ -7,6 +7,8 @@ module.exports = { // spec: "./test/spec/**/*.spec.ts", spec: [ "./test/spec/**/*.spec.ts", + // 'test/spec/wcc/module/module.spec.ts', + // 'test/spec/issue/137/issue137.spec.ts', // 'test/spec/issue/129/issue129.spec.ts', // 'test/spec/issue/115/issue115.spec.ts', // 'test/spec/wcc/module/module.spec.ts', diff --git a/.vscode/launch.json b/.vscode/launch.json index 37b3bca..9686703 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,7 +12,7 @@ "args": [ "${workspaceFolder}/test/runner/nwjs/compiler.js", "wcsc", - "${workspaceFolder}/test/spec/issue/129/data/example.json" + "${workspaceFolder}/test/spec/issue/137/data/example.json" ], "cwd": "${workspaceFolder}" }, diff --git a/CMakeLists.txt b/CMakeLists.txt index adde013..183e9f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,10 +3,8 @@ project(wx_complier VERSION 0.1.0 LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 14) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -# set(CMAKE_VERBOSE_MAKEFILE ON) -# message("before: ${CMAKE_CXX_FLAGS_DEBUG}") -# set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O1") -# message("after: ${CMAKE_CXX_FLAGS_DEBUG}") +set(TARGET_ARCH x64) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_REENTRANT") add_executable(wcc src/wcc.cpp diff --git a/changelog.md b/changelog.md index bc2b412..6ad7d92 100644 --- a/changelog.md +++ b/changelog.md @@ -1,7 +1,7 @@ -## 🌈 v0.1.4 / 2025-05-02 +## 🌈 v0.1.4 / 2025-05-01 🐞 Bug Fixes -- 修正:Arch Linux崩溃 +- `WXSS::CSSTreeLib::CSSSyntaxTree::RenderCode`: Arch linux会崩溃.(数组访问越界) ## 🌈 v0.1.3 / 2025-02-17 diff --git a/docker-compose.yml b/docker-compose.yml index c1d5761..aa50d07 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,3 @@ -version: "3" services: wx_compiler: image: jiyecafe/wechat-devtools-build:v3 diff --git a/docker/docker-entrypoint b/docker/docker-entrypoint index c21416c..7af2697 100755 --- a/docker/docker-entrypoint +++ b/docker/docker-entrypoint @@ -1,5 +1,9 @@ #!/bin/bash +set -ex + +npm install -g pnpm@8 +pnpm install strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC echo "----" strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_ diff --git a/docker/entrypoint b/docker/entrypoint index b79a86d..77ed984 100755 --- a/docker/entrypoint +++ b/docker/entrypoint @@ -1,4 +1,5 @@ #!/bin/bash +set -ex gcc --version g++ --version # cmake --verion diff --git a/package.json b/package.json index 13de521..0d2bcc8 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,17 @@ "keywords": [], "author": "", "license": "ISC", + "dependencies": { + "bindings": "^1.5.0", + "cmake-js": "^7.3.0", + "node-addon-api": "^7.1.0", + "node-api-headers": "^1.5.0" + }, + "binary": { + "napi_versions": [ + 7 + ] + }, "devDependencies": { "@babel/cli": "^7.18.10", "@babel/core": "^7.18.13", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16ad898..66cf226 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,19 @@ settings: importers: .: + dependencies: + bindings: + specifier: ^1.5.0 + version: 1.5.0 + cmake-js: + specifier: ^7.3.0 + version: 7.3.1 + node-addon-api: + specifier: ^7.1.0 + version: 7.1.1 + node-api-headers: + specifier: ^1.5.0 + version: 1.5.0 devDependencies: '@babel/cli': specifier: ^7.18.10 @@ -29,9 +42,6 @@ importers: assert: specifier: ^2.0.0 version: 2.0.0 - eslint-config-wxapp: - specifier: ^1.0.0 - version: 1.0.0 miniprogram-ci: specifier: ^1.9.8 version: 1.9.8 @@ -956,9 +966,6 @@ packages: '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -975,9 +982,6 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/mocha@10.0.1': resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==} @@ -993,11 +997,6 @@ packages: '@vue/shared@3.0.5': resolution: {integrity: sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw==} - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} @@ -1007,11 +1006,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} @@ -1035,18 +1029,10 @@ packages: resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} engines: {node: '>=6'} - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - ansi-regex@2.1.1: resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} - ansi-regex@4.1.1: - resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} - engines: {node: '>=6'} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1070,39 +1056,20 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -1116,10 +1083,6 @@ packages: assert@2.0.0: resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==} - astral-regex@1.0.0: - resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} - engines: {node: '>=4'} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -1138,16 +1101,15 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} aws4@1.12.0: resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + axios@1.9.0: + resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} + babel-code-frame@6.26.0: resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} @@ -1411,6 +1373,9 @@ packages: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + bmp-js@0.1.0: resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} @@ -1457,18 +1422,6 @@ packages: call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - camel-case@3.0.0: resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} @@ -1504,35 +1457,37 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + clean-css@4.2.4: resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} engines: {node: '>= 4.0'} - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + clone-deep@4.0.1: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} engines: {node: '>=6'} + cmake-js@7.3.1: + resolution: {integrity: sha512-aJtHDrTFl8qovjSSqXT9aC2jdGfmP8JQsPtjdLAXFfH1BF4/ImZ27Jx0R61TFg8Apc3pl6e2yBKMveAeRXx2Rw==} + engines: {node: '>= 14.15.0'} + hasBin: true + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -1546,6 +1501,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -1580,6 +1539,9 @@ packages: config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} @@ -1609,10 +1571,6 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cross-spawn@6.0.6: - resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} - engines: {node: '>=4.8'} - css-declaration-sorter@6.4.1: resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} engines: {node: ^10 || ^12 || >=14} @@ -1661,18 +1619,6 @@ packages: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - debounce-fn@4.0.0: resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==} engines: {node: '>=10'} @@ -1714,25 +1660,21 @@ packages: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} engines: {node: '>=10'} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + detect-indent@4.0.0: resolution: {integrity: sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==} engines: {node: '>=0.10.0'} @@ -1748,14 +1690,6 @@ packages: resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} engines: {node: '>=0.3.1'} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-serializer@1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} @@ -1786,9 +1720,6 @@ packages: electron-to-chromium@1.4.477: resolution: {integrity: sha512-shUVy6Eawp33dFBFIoYbIwLHrX0IZ857AlH9ug2o4rvbWmpaCUdBpQ5Zw39HRrfzAFm4APJE9V+E2A/WB0YqJw==} - emoji-regex@7.0.3: - resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1803,10 +1734,6 @@ packages: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} - engines: {node: '>= 0.4'} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -1823,13 +1750,6 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - es6-object-assign@1.1.0: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} @@ -1845,124 +1765,6 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-prettier@6.15.0: - resolution: {integrity: sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==} - hasBin: true - peerDependencies: - eslint: '>=3.14.1' - - eslint-config-wxapp@1.0.0: - resolution: {integrity: sha512-cOb/hHTW6TISAFEuh75MP4DoBO7x5d6ogTKu00mq72tr8KII/BcdloysuyDPimxHbvCoMMKXEx7Q9kU4FJfeUg==} - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-es@1.4.1: - resolution: {integrity: sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==} - engines: {node: '>=6.5.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-node@9.2.0: - resolution: {integrity: sha512-2abNmzAH/JpxI4gEOwd6K8wZIodK3BmHbTxz4s79OIYwwIt2gkpEXlAouJXu4H1c9ySTnRso0tsuthSOZbUMlA==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=5.16.0' - - eslint-plugin-prettier@3.4.1: - resolution: {integrity: sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==} - engines: {node: '>=6.0.0'} - peerDependencies: - eslint: '>=5.0.0' - eslint-config-prettier: '*' - prettier: '>=1.13.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - - eslint-plugin-promise@4.3.1: - resolution: {integrity: sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==} - engines: {node: '>=6'} - - eslint-plugin-standard@4.1.0: - resolution: {integrity: sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==} - peerDependencies: - eslint: '>=5.0.0' - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-utils@1.4.3: - resolution: {integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==} - engines: {node: '>=6'} - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - - eslint@6.8.0: - resolution: {integrity: sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - - espree@6.2.1: - resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} - engines: {node: '>=6.0.0'} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -1976,10 +1778,6 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - extsprintf@1.3.0: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} @@ -1987,31 +1785,20 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-xml-parser@4.2.5: resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} hasBin: true - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - - file-entry-cache@5.0.1: - resolution: {integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==} - engines: {node: '>=4'} - file-type@9.0.0: resolution: {integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==} engines: {node: '>=6'} + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -2032,16 +1819,18 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@2.0.1: - resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==} - engines: {node: '>=4'} - flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flatted@2.0.2: - resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -2053,13 +1842,25 @@ packages: resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} engines: {node: '>= 0.12'} + form-data@4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + engines: {node: '>= 6'} + fraction.js@4.3.2: resolution: {integrity: sha512-9VLF466MqX1OUP7/d9r7/Vsvu6Hpp+taXBLmiR5x6mEYfT0BDkGVBt5TyA1aDu1WzIE1sF8F66evOFaz7iAEGQ==} + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + fs-readdir-recursive@1.1.0: resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} @@ -2077,15 +1878,10 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - - functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -2110,14 +1906,6 @@ packages: resolution: {integrity: sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==} engines: {node: '>=4'} - get-stdin@6.0.0: - resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==} - engines: {node: '>=4'} - - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} @@ -2141,18 +1929,10 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@12.4.0: - resolution: {integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==} - engines: {node: '>=8'} - globals@9.18.0: resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} engines: {node: '>=0.10.0'} - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -2176,10 +1956,6 @@ packages: resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} engines: {node: '>=0.10.0'} - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -2191,17 +1967,10 @@ packages: has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -2218,6 +1987,9 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} @@ -2246,10 +2018,6 @@ packages: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -2257,14 +2025,6 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - image-size@0.5.5: resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} engines: {node: '>=0.10.0'} @@ -2276,14 +2036,6 @@ packages: immutable@4.3.4: resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} @@ -2293,14 +2045,6 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - inquirer@7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} - engines: {node: '>=8.0.0'} - - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -2308,26 +2052,10 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - - is-async-function@2.1.0: - resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.2.1: - resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} - engines: {node: '>= 0.4'} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -2335,34 +2063,14 @@ packages: is-core-module@2.12.1: resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - is-finite@1.1.0: resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} engines: {node: '>=0.10.0'} - is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} - engines: {node: '>=4'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -2378,18 +2086,10 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - is-nan@1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -2406,34 +2106,10 @@ packages: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - is-typed-array@1.1.12: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} @@ -2441,27 +2117,12 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.0: - resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - is-what@3.14.1: resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -2484,10 +2145,6 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -2523,9 +2180,6 @@ packages: json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} @@ -2533,10 +2187,6 @@ packages: resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==} hasBin: true - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -2545,6 +2195,9 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonschema@1.4.1: resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} @@ -2564,10 +2217,6 @@ packages: engines: {node: '>=6'} hasBin: true - levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} - licia@1.38.2: resolution: {integrity: sha512-QsX3fZt88e1KaNdZXTSXqGYNHFXMV8xgfwa3eCTYdv8k4OLQimxwjTdXXej11BdSyUUp0rCZROI8rcTvnZRZ7w==} @@ -2645,6 +2294,9 @@ packages: resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + memory-stream@1.0.0: + resolution: {integrity: sha512-Wm13VcsPIMdG96dzILfij09PvuS3APtcKNh7M28FsCA/w6+1mjR7hhPmfFNoilX9xU7wTdhsH5lJAm6XNzdtww==} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -2682,14 +2334,31 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + miniprogram-ci@1.9.8: resolution: {integrity: sha512-wOitiTR1F2ubFZy0uOcczOoGcRLsT+X4fYewOsh+IyJJMoVAejeLRv+8IZ5WAlktpGCPVv4cUI4vq9/lXJZXCg==} hasBin: true + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + mocha@10.0.0: resolution: {integrity: sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==} engines: {node: '>= 14.0.0'} @@ -2710,9 +2379,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - nanoid@3.3.3: resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2723,20 +2389,20 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - needle@3.2.0: resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==} engines: {node: '>= 4.4.x'} hasBin: true - nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-api-headers@1.5.0: + resolution: {integrity: sha512-Yi/FgnN8IU/Cd6KeLxyHkylBUvDTsSScT0Tna2zTrz8klmc8qF2ppj6Q1LHsmOueJWhigQwR4cO2p0XBGW5IaQ==} + node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} @@ -2762,16 +2428,17 @@ packages: npm-normalize-package-bin@1.0.1: resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} - engines: {node: '>= 0.4'} - object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} @@ -2780,22 +2447,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - omggif@1.0.10: resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} @@ -2806,10 +2457,6 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - os-homedir@1.0.2: resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} engines: {node: '>=0.10.0'} @@ -2818,10 +2465,6 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -2852,10 +2495,6 @@ packages: param-case@2.1.1: resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - parse-bmfont-ascii@1.0.6: resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} @@ -2884,10 +2523,6 @@ packages: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -2932,10 +2567,6 @@ packages: resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} engines: {node: '>=4.0.0'} - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - postcss-calc@8.2.4: resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: @@ -3108,19 +2739,6 @@ packages: resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} engines: {node: ^10 || ^12 || >=14} - prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} - - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - - prettier@1.19.1: - resolution: {integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==} - engines: {node: '>=4'} - hasBin: true - private@0.1.8: resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==} engines: {node: '>= 0.6'} @@ -3132,13 +2750,12 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} @@ -3163,6 +2780,10 @@ packages: randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + read-package-json@2.1.2: resolution: {integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==} @@ -3173,6 +2794,10 @@ packages: readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + readdir-scoped-modules@1.1.0: resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} deprecated: This functionality has been moved to @npmcli/fs @@ -3181,10 +2806,6 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.1.0: resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} engines: {node: '>=4'} @@ -3204,14 +2825,6 @@ packages: regenerator-transform@0.15.1: resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - - regexpp@2.0.1: - resolution: {integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==} - engines: {node: '>=6.5.0'} - regexpu-core@2.0.0: resolution: {integrity: sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==} @@ -3254,58 +2867,20 @@ packages: require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - resolve@1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - - rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -3336,18 +2911,6 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -3355,30 +2918,6 @@ packages: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -3390,10 +2929,6 @@ packages: resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} engines: {node: '>=6'} - slice-ansi@2.1.0: - resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} - engines: {node: '>=6'} - source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -3424,9 +2959,6 @@ packages: spdx-license-ids@3.0.13: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - sshpk@1.17.0: resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} engines: {node: '>=0.10.0'} @@ -3439,26 +2971,10 @@ packages: string-hash-64@1.0.3: resolution: {integrity: sha512-D5OKWKvDhyVWWn2x5Y9b+37NUllks34q1dCDhk/vYcso9fmhs+Tl3KR/gE4v5UNj2UA35cnX4KdVVGkG1deKqw==} - string-width@3.1.0: - resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} - engines: {node: '>=6'} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -3466,17 +2982,13 @@ packages: resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} - strip-ansi@5.2.0: - resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} - engines: {node: '>=6'} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} @@ -3516,31 +3028,21 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - table@5.4.6: - resolution: {integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==} - engines: {node: '>=6.0.0'} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} terser@4.8.0: resolution: {integrity: sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==} engines: {node: '>=6.0.0'} hasBin: true - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - timm@1.7.1: resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - to-fast-properties@1.0.3: resolution: {integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==} engines: {node: '>=0.10.0'} @@ -3575,9 +3077,6 @@ packages: '@swc/wasm': optional: true - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tslib@1.10.0: resolution: {integrity: sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==} @@ -3590,34 +3089,6 @@ packages: tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - typescript@5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} @@ -3633,10 +3104,6 @@ packages: engines: {node: '>=0.8.0'} hasBin: true - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} @@ -3657,6 +3124,10 @@ packages: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + update-browserslist-db@1.0.11: resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -3669,6 +3140,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + utif@2.0.1: resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} @@ -3686,9 +3160,6 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -3696,18 +3167,6 @@ packages: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} @@ -3715,17 +3174,13 @@ packages: resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} - which-typed-array@1.1.18: - resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} - engines: {node: '>= 0.4'} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} workerpool@6.2.1: resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} @@ -3741,10 +3196,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write@1.0.3: - resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==} - engines: {node: '>=4'} - wxml-minifier@0.0.1: resolution: {integrity: sha512-g8ZS4fyLdyRIcExnevKTnAFxbtYlAPKBGFO1DXOcsJfmppQWjH2xe2Ff6rRQ2ubYAWalaNjMYpkAl6hurhqkHg==} @@ -3791,6 +3242,10 @@ packages: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} engines: {node: '>=10'} + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + yargs-unparser@2.0.0: resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} engines: {node: '>=10'} @@ -3803,6 +3258,10 @@ packages: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -5542,8 +5001,6 @@ snapshots: '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true - '@rtsao/scc@1.1.0': {} - '@trysound/sax@0.2.0': {} '@tsconfig/node10@1.0.9': {} @@ -5554,8 +5011,6 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@types/json5@0.0.29': {} - '@types/mocha@10.0.1': {} '@types/node@20.4.5': {} @@ -5568,16 +5023,10 @@ snapshots: '@vue/shared@3.0.5': {} - acorn-jsx@5.3.2(acorn@7.4.1): - dependencies: - acorn: 7.4.1 - acorn-walk@8.2.0: {} acorn@6.4.2: {} - acorn@7.4.1: {} - acorn@8.10.0: {} ajv-formats@1.6.1(ajv@7.2.4): @@ -5600,14 +5049,8 @@ snapshots: ansi-colors@4.1.1: {} - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - ansi-regex@2.1.1: {} - ansi-regex@4.1.1: {} - ansi-regex@5.0.1: {} ansi-styles@2.2.1: {} @@ -5627,61 +5070,17 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + aproba@2.0.0: {} + + are-we-there-yet@3.0.1: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + arg@4.1.3: {} - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - argparse@2.0.1: {} - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - is-array-buffer: 3.0.5 - - array-includes@3.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 - is-string: 1.1.1 - - array.prototype.findlastindex@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.0.2 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - is-array-buffer: 3.0.5 - asap@2.0.6: {} asn1@0.2.6: @@ -5697,8 +5096,6 @@ snapshots: object-is: 1.1.5 util: 0.12.5 - astral-regex@1.0.0: {} - asynckit@0.4.0: {} atomically@1.7.0: {} @@ -5715,14 +5112,18 @@ snapshots: available-typed-arrays@1.0.5: {} - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.0.0 - aws-sign2@0.7.0: {} aws4@1.12.0: {} + axios@1.9.0(debug@4.3.4): + dependencies: + follow-redirects: 1.15.9(debug@4.3.4) + form-data: 4.0.2 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + babel-code-frame@6.26.0: dependencies: chalk: 1.1.3 @@ -6302,6 +5703,10 @@ snapshots: binary-extensions@2.2.0: {} + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + bmp-js@0.1.0: {} boolbase@1.0.0: {} @@ -6354,20 +5759,6 @@ snapshots: function-bind: 1.1.1 get-intrinsic: 1.2.1 - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 - get-intrinsic: 1.2.7 - set-function-length: 1.2.2 - - call-bound@1.0.3: - dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.7 - - callsites@3.1.0: {} - camel-case@3.0.0: dependencies: no-case: 2.3.2 @@ -6409,8 +5800,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chardet@0.7.0: {} - chokidar@3.5.3: dependencies: anymatch: 3.1.3 @@ -6423,16 +5812,12 @@ snapshots: optionalDependencies: fsevents: 2.3.2 + chownr@2.0.0: {} + clean-css@4.2.4: dependencies: source-map: 0.6.1 - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - - cli-width@3.0.0: {} - cliui@6.0.0: dependencies: string-width: 4.2.3 @@ -6445,12 +5830,35 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + clone-deep@4.0.1: dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 + cmake-js@7.3.1: + dependencies: + axios: 1.9.0(debug@4.3.4) + debug: 4.3.4(supports-color@8.1.1) + fs-extra: 11.3.0 + memory-stream: 1.0.0 + node-api-headers: 1.5.0 + npmlog: 6.0.2 + rc: 1.2.8 + semver: 7.5.4 + tar: 6.2.1 + url-join: 4.0.1 + which: 2.0.2 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -6463,6 +5871,8 @@ snapshots: color-name@1.1.4: {} + color-support@1.1.3: {} + colord@2.9.3: {} combined-stream@1.0.8: @@ -6500,6 +5910,8 @@ snapshots: ini: 1.3.8 proto-list: 1.2.4 + console-control-strings@1.1.0: {} + convert-source-map@1.9.0: {} copy-anything@2.0.6: @@ -6527,14 +5939,6 @@ snapshots: create-require@1.1.1: {} - cross-spawn@6.0.6: - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.2 - shebang-command: 1.2.0 - which: 1.3.1 - css-declaration-sorter@6.4.1(postcss@8.4.29): dependencies: postcss: 8.4.29 @@ -6608,24 +6012,6 @@ snapshots: dependencies: assert-plus: 1.0.0 - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - debounce-fn@4.0.0: dependencies: mimic-fn: 3.1.0 @@ -6637,6 +6023,7 @@ snapshots: debug@3.2.7: dependencies: ms: 2.1.3 + optional: true debug@4.3.4(supports-color@8.1.1): dependencies: @@ -6650,27 +6037,17 @@ snapshots: decamelize@4.0.0: {} - deep-is@0.1.4: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.0.1 + deep-extend@0.6.0: {} define-properties@1.2.0: dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - delayed-stream@1.0.0: {} + delegates@1.0.0: {} + detect-indent@4.0.0: dependencies: repeating: 2.0.1 @@ -6684,14 +6061,6 @@ snapshots: diff@5.0.0: {} - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 @@ -6729,8 +6098,6 @@ snapshots: electron-to-chromium@1.4.477: {} - emoji-regex@7.0.3: {} - emoji-regex@8.0.0: {} entities@2.2.0: {} @@ -6741,60 +6108,6 @@ snapshots: dependencies: prr: 1.0.1 - es-abstract@1.23.9: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.2.7 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.0 - math-intrinsics: 1.1.0 - object-inspect: 1.13.3 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.18 - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -6810,16 +6123,6 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.2: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - es6-object-assign@1.1.0: {} escalade@3.1.1: {} @@ -6828,174 +6131,6 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@6.15.0(eslint@6.8.0): - dependencies: - eslint: 6.8.0 - get-stdin: 6.0.0 - - eslint-config-wxapp@1.0.0: - dependencies: - eslint: 6.8.0 - eslint-config-prettier: 6.15.0(eslint@6.8.0) - eslint-plugin-import: 2.31.0(eslint@6.8.0) - eslint-plugin-node: 9.2.0(eslint@6.8.0) - eslint-plugin-prettier: 3.4.1(eslint-config-prettier@6.15.0(eslint@6.8.0))(eslint@6.8.0)(prettier@1.19.1) - eslint-plugin-promise: 4.3.1 - eslint-plugin-standard: 4.1.0(eslint@6.8.0) - prettier: 1.19.1 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-import-resolver-node@0.3.9: - dependencies: - debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint@6.8.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - eslint: 6.8.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - - eslint-plugin-es@1.4.1(eslint@6.8.0): - dependencies: - eslint: 6.8.0 - eslint-utils: 1.4.3 - regexpp: 2.0.1 - - eslint-plugin-import@2.31.0(eslint@6.8.0): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 6.8.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint@6.8.0) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-node@9.2.0(eslint@6.8.0): - dependencies: - eslint: 6.8.0 - eslint-plugin-es: 1.4.1(eslint@6.8.0) - eslint-utils: 1.4.3 - ignore: 5.3.2 - minimatch: 3.1.2 - resolve: 1.22.2 - semver: 6.3.1 - - eslint-plugin-prettier@3.4.1(eslint-config-prettier@6.15.0(eslint@6.8.0))(eslint@6.8.0)(prettier@1.19.1): - dependencies: - eslint: 6.8.0 - prettier: 1.19.1 - prettier-linter-helpers: 1.0.0 - optionalDependencies: - eslint-config-prettier: 6.15.0(eslint@6.8.0) - - eslint-plugin-promise@4.3.1: {} - - eslint-plugin-standard@4.1.0(eslint@6.8.0): - dependencies: - eslint: 6.8.0 - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-utils@1.4.3: - dependencies: - eslint-visitor-keys: 1.3.0 - - eslint-visitor-keys@1.3.0: {} - - eslint@6.8.0: - dependencies: - '@babel/code-frame': 7.22.5 - ajv: 6.12.6 - chalk: 2.4.2 - cross-spawn: 6.0.6 - debug: 4.3.4(supports-color@8.1.1) - doctrine: 3.0.0 - eslint-scope: 5.1.1 - eslint-utils: 1.4.3 - eslint-visitor-keys: 1.3.0 - espree: 6.2.1 - esquery: 1.6.0 - esutils: 2.0.3 - file-entry-cache: 5.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 - globals: 12.4.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - inquirer: 7.3.3 - is-glob: 4.0.3 - js-yaml: 3.14.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.3.0 - lodash: 4.17.21 - minimatch: 3.1.2 - mkdirp: 0.5.6 - natural-compare: 1.4.0 - optionator: 0.8.3 - progress: 2.0.3 - regexpp: 2.0.1 - semver: 6.3.1 - strip-ansi: 5.2.0 - strip-json-comments: 3.1.1 - table: 5.4.6 - text-table: 0.2.0 - v8-compile-cache: 2.4.0 - transitivePeerDependencies: - - supports-color - - espree@6.2.1: - dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - eslint-visitor-keys: 1.3.0 - - esprima@4.0.1: {} - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - esutils@2.0.3: {} eventemitter3@4.0.7: {} @@ -7004,36 +6139,20 @@ snapshots: extend@3.0.2: {} - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - extsprintf@1.3.0: {} fast-deep-equal@3.1.3: {} - fast-diff@1.3.0: {} - fast-json-stable-stringify@2.1.0: {} - fast-levenshtein@2.0.6: {} - fast-xml-parser@4.2.5: dependencies: strnum: 1.0.5 - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - - file-entry-cache@5.0.1: - dependencies: - flat-cache: 2.0.1 - file-type@9.0.0: {} + file-uri-to-path@1.0.0: {} + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 @@ -7058,15 +6177,11 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@2.0.1: - dependencies: - flatted: 2.0.2 - rimraf: 2.6.3 - write: 1.0.3 - flat@5.0.2: {} - flatted@2.0.2: {} + follow-redirects@1.15.9(debug@4.3.4): + optionalDependencies: + debug: 4.3.4(supports-color@8.1.1) for-each@0.3.3: dependencies: @@ -7080,14 +6195,31 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 + form-data@4.0.2: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + mime-types: 2.1.35 + fraction.js@4.3.2: {} + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-extra@8.1.0: dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + fs-readdir-recursive@1.1.0: {} fs.realpath@1.0.0: {} @@ -7099,18 +6231,16 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.8: + gauge@4.0.4: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functional-red-black-tree@1.0.1: {} - - functions-have-names@1.2.3: {} + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 gensync@1.0.0-beta.2: {} @@ -7145,14 +6275,6 @@ snapshots: dependencies: npm-conf: 1.1.3 - get-stdin@6.0.0: {} - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - getpass@0.1.7: dependencies: assert-plus: 1.0.0 @@ -7195,17 +6317,8 @@ snapshots: globals@11.12.0: {} - globals@12.4.0: - dependencies: - type-fest: 0.8.1 - globals@9.18.0: {} - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - gopd@1.0.1: dependencies: get-intrinsic: 1.2.1 @@ -7225,8 +6338,6 @@ snapshots: dependencies: ansi-regex: 2.1.1 - has-bigints@1.1.0: {} - has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -7235,16 +6346,8 @@ snapshots: dependencies: get-intrinsic: 1.2.1 - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - has-proto@1.0.1: {} - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - has-symbols@1.0.3: {} has-symbols@1.1.0: {} @@ -7255,7 +6358,9 @@ snapshots: has-tostringtag@1.0.2: dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 + + has-unicode@2.0.1: {} has@1.0.3: dependencies: @@ -7290,10 +6395,6 @@ snapshots: jsprim: 1.4.2 sshpk: 1.17.0 - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -7301,10 +6402,6 @@ snapshots: ieee754@1.2.1: {} - ignore@4.0.6: {} - - ignore@5.3.2: {} - image-size@0.5.5: optional: true @@ -7312,13 +6409,6 @@ snapshots: immutable@4.3.4: {} - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - imurmurhash@0.1.4: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -7328,28 +6418,6 @@ snapshots: ini@1.3.8: {} - inquirer@7.3.3: - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - run-async: 2.4.1 - rxjs: 6.6.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - invariant@2.2.4: dependencies: loose-envify: 1.4.0 @@ -7359,63 +6427,20 @@ snapshots: call-bind: 1.0.2 has-tostringtag: 1.0.0 - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - - is-async-function@2.1.0: - dependencies: - call-bound: 1.0.3 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - is-binary-path@2.1.0: dependencies: binary-extensions: 2.2.0 - is-boolean-object@1.2.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - is-callable@1.2.7: {} is-core-module@2.12.1: dependencies: has: 1.0.3 - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - is-extglob@2.1.1: {} - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.3 - is-finite@1.1.0: {} - is-fullwidth-code-point@2.0.0: {} - is-fullwidth-code-point@3.0.0: {} is-function@1.0.2: {} @@ -7428,18 +6453,11 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-map@2.0.3: {} - is-nan@1.3.2: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - is-number@7.0.0: {} is-obj@2.0.0: {} @@ -7450,59 +6468,18 @@ snapshots: dependencies: isobject: 3.0.1 - is-regex@1.2.1: - dependencies: - call-bound: 1.0.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.3 - - is-string@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.3 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - is-typed-array@1.1.12: dependencies: which-typed-array: 1.1.11 - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.18 - is-typedarray@1.0.0: {} is-unicode-supported@0.1.0: {} - is-weakmap@2.0.2: {} - - is-weakref@1.1.0: - dependencies: - call-bound: 1.0.3 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - is-what@3.14.1: {} isarray@1.0.0: {} - isarray@2.0.5: {} - isexe@2.0.0: {} isobject@3.0.1: {} @@ -7524,11 +6501,6 @@ snapshots: js-tokens@4.0.0: {} - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -7551,22 +6523,22 @@ snapshots: json-schema@0.4.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} - json-stringify-safe@5.0.1: {} json5@0.5.1: {} - json5@1.0.2: - dependencies: - minimist: 1.2.8 - json5@2.2.3: {} jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + jsonschema@1.4.1: {} jsprim@1.4.2: @@ -7601,11 +6573,6 @@ snapshots: transitivePeerDependencies: - supports-color - levn@0.3.0: - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - licia@1.38.2: {} lie@3.3.0: @@ -7685,6 +6652,10 @@ snapshots: errno: 0.1.8 readable-stream: 2.3.8 + memory-stream@1.0.0: + dependencies: + readable-stream: 3.6.2 + mime-db@1.52.0: {} mime-types@2.1.35: @@ -7715,6 +6686,12 @@ snapshots: minimist@1.2.8: {} + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + miniprogram-ci@1.9.8: dependencies: '@babel/core': 7.21.4 @@ -7780,10 +6757,17 @@ snapshots: transitivePeerDependencies: - supports-color + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + mkdirp@0.5.6: dependencies: minimist: 1.2.8 + mkdirp@1.0.4: {} + mocha@10.0.0: dependencies: '@ungap/promise-all-settled': 1.1.2 @@ -7821,14 +6805,10 @@ snapshots: ms@2.1.3: {} - mute-stream@0.0.8: {} - nanoid@3.3.3: {} nanoid@3.3.6: {} - natural-compare@1.4.0: {} - needle@3.2.0: dependencies: debug: 3.2.7 @@ -7838,12 +6818,14 @@ snapshots: - supports-color optional: true - nice-try@1.0.5: {} - no-case@2.3.2: dependencies: lower-case: 1.1.4 + node-addon-api@7.1.1: {} + + node-api-headers@1.5.0: {} + node-releases@2.0.13: {} normalize-package-data@2.5.0: @@ -7866,14 +6848,19 @@ snapshots: npm-normalize-package-bin@1.0.1: {} + npmlog@6.0.2: + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + nth-check@2.1.1: dependencies: boolbase: 1.0.0 oauth-sign@0.9.0: {} - object-inspect@1.13.3: {} - object-is@1.1.5: dependencies: call-bind: 1.0.2 @@ -7881,35 +6868,6 @@ snapshots: object-keys@1.1.1: {} - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - omggif@1.0.10: {} once@1.4.0: @@ -7920,25 +6878,10 @@ snapshots: dependencies: mimic-fn: 2.1.0 - optionator@0.8.3: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.5 - os-homedir@1.0.2: {} os-tmpdir@1.0.2: {} - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.2.7 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -7967,10 +6910,6 @@ snapshots: dependencies: no-case: 2.3.2 - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - parse-bmfont-ascii@1.0.6: {} parse-bmfont-binary@1.0.6: {} @@ -7990,8 +6929,6 @@ snapshots: path-is-absolute@1.0.1: {} - path-key@2.0.1: {} - path-parse@1.0.7: {} performance-now@2.1.0: {} @@ -8022,8 +6959,6 @@ snapshots: pngjs@3.4.0: {} - possible-typed-array-names@1.0.0: {} - postcss-calc@8.2.4(postcss@8.4.29): dependencies: postcss: 8.4.29 @@ -8185,24 +7120,16 @@ snapshots: picocolors: 1.0.0 source-map-js: 1.0.2 - prelude-ls@1.1.2: {} - - prettier-linter-helpers@1.0.0: - dependencies: - fast-diff: 1.3.0 - - prettier@1.19.1: {} - private@0.1.8: {} process-nextick-args@2.0.1: {} process@0.11.10: {} - progress@2.0.3: {} - proto-list@1.2.4: {} + proxy-from-env@1.1.0: {} + prr@1.0.1: {} psl@1.9.0: {} @@ -8219,6 +7146,13 @@ snapshots: dependencies: safe-buffer: 5.2.1 + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + read-package-json@2.1.2: dependencies: glob: 7.2.3 @@ -8244,6 +7178,12 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + readdir-scoped-modules@1.1.0: dependencies: debuglog: 1.0.1 @@ -8255,17 +7195,6 @@ snapshots: dependencies: picomatch: 2.3.1 - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - regenerate-unicode-properties@10.1.0: dependencies: regenerate: 1.4.2 @@ -8286,17 +7215,6 @@ snapshots: dependencies: '@babel/runtime': 7.22.6 - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - - regexpp@2.0.1: {} - regexpu-core@2.0.0: dependencies: regenerate: 1.4.2 @@ -8357,62 +7275,20 @@ snapshots: require-main-filename@2.0.0: {} - resolve-from@4.0.0: {} - - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - resolve@1.22.2: dependencies: is-core-module: 2.12.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - - rimraf@2.6.3: - dependencies: - glob: 7.2.3 - rimraf@3.0.2: dependencies: glob: 7.2.3 - run-async@2.4.1: {} - - rxjs@6.6.7: - dependencies: - tslib: 1.10.0 - - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - has-symbols: 1.1.0 - isarray: 2.0.5 - safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-regex: 1.2.1 - safer-buffer@2.1.2: {} sass@1.66.1: @@ -8437,80 +7313,18 @@ snapshots: set-blocking@2.0.0: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.7 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - setimmediate@1.0.5: {} shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - shebang-command@1.2.0: - dependencies: - shebang-regex: 1.0.0 - - shebang-regex@1.0.0: {} - - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.3 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.3 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.3 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.3 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - signal-exit@3.0.7: {} slash@1.0.0: {} slash@2.0.0: {} - slice-ansi@2.1.0: - dependencies: - ansi-styles: 3.2.1 - astral-regex: 1.0.0 - is-fullwidth-code-point: 2.0.0 - source-map-js@1.0.2: {} source-map-support@0.4.18: @@ -8540,8 +7354,6 @@ snapshots: spdx-license-ids@3.0.13: {} - sprintf-js@1.0.3: {} - sshpk@1.17.0: dependencies: asn1: 0.2.6 @@ -8558,41 +7370,12 @@ snapshots: string-hash-64@1.0.3: {} - string-width@3.1.0: - dependencies: - emoji-regex: 7.0.3 - is-fullwidth-code-point: 2.0.0 - strip-ansi: 5.2.0 - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -8601,15 +7384,11 @@ snapshots: dependencies: ansi-regex: 2.1.1 - strip-ansi@5.2.0: - dependencies: - ansi-regex: 4.1.1 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strip-bom@3.0.0: {} + strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} @@ -8647,12 +7426,14 @@ snapshots: picocolors: 1.0.0 stable: 0.1.8 - table@5.4.6: + tar@6.2.1: dependencies: - ajv: 6.12.6 - lodash: 4.17.21 - slice-ansi: 2.1.0 - string-width: 3.1.0 + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 terser@4.8.0: dependencies: @@ -8661,18 +7442,10 @@ snapshots: source-map: 0.6.1 source-map-support: 0.5.21 - text-table@0.2.0: {} - - through@2.3.8: {} - timm@1.7.1: {} tinycolor2@1.6.0: {} - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 - to-fast-properties@1.0.3: {} to-fast-properties@2.0.0: {} @@ -8706,13 +7479,6 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - tslib@1.10.0: {} tslib@2.6.2: {} @@ -8723,47 +7489,6 @@ snapshots: tweetnacl@0.14.5: {} - type-check@0.3.2: - dependencies: - prelude-ls: 1.1.2 - - type-fest@0.21.3: {} - - type-fest@0.8.1: {} - - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.10 - typescript@5.1.6: {} uglify-js@3.0.27: @@ -8773,13 +7498,6 @@ snapshots: uglify-js@3.17.4: {} - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.3 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - unicode-canonical-property-names-ecmascript@2.0.0: {} unicode-match-property-ecmascript@2.0.0: @@ -8793,6 +7511,8 @@ snapshots: universalify@0.1.2: {} + universalify@2.0.1: {} + update-browserslist-db@1.0.11(browserslist@4.21.10): dependencies: browserslist: 4.21.10 @@ -8811,6 +7531,8 @@ snapshots: dependencies: punycode: 2.3.0 + url-join@4.0.1: {} + utif@2.0.1: dependencies: pako: 1.0.11 @@ -8829,8 +7551,6 @@ snapshots: v8-compile-cache-lib@3.0.1: {} - v8-compile-cache@2.4.0: {} - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -8842,37 +7562,6 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.1 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.3 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.0 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.0.10 - is-regex: 1.2.1 - is-weakref: 1.1.0 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.18 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - which-module@2.0.1: {} which-typed-array@1.1.11: @@ -8883,20 +7572,13 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.0 - which-typed-array@1.1.18: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - for-each: 0.3.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - which@1.3.1: + which@2.0.2: dependencies: isexe: 2.0.0 - word-wrap@1.2.5: {} + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 workerpool@6.2.1: {} @@ -8914,10 +7596,6 @@ snapshots: wrappy@1.0.2: {} - write@1.0.3: - dependencies: - mkdirp: 0.5.6 - wxml-minifier@0.0.1: dependencies: '@leejim/wxml-parser': 0.1.6 @@ -8957,6 +7635,8 @@ snapshots: yargs-parser@20.2.4: {} + yargs-parser@21.1.1: {} + yargs-unparser@2.0.0: dependencies: camelcase: 6.3.0 @@ -8988,6 +7668,16 @@ snapshots: y18n: 5.0.8 yargs-parser: 20.2.4 + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yn@3.1.1: {} yocto-queue@0.1.0: {} diff --git a/src/module/CMakeLists.txt b/src/module/CMakeLists.txt index 1746f09..87ede67 100644 --- a/src/module/CMakeLists.txt +++ b/src/module/CMakeLists.txt @@ -3,47 +3,65 @@ message("current dir: ${CMAKE_CURRENT_SOURCE_DIR}") execute_process( COMMAND mkdir -p ${CMAKE_CURRENT_SOURCE_DIR}/cache; ) -if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cache/nw-headers-v${NW_VERSION}.tar.gz") - execute_process( - COMMAND wget -c -O nw-headers-v${NW_VERSION}.tar.gz.tmp https://dl.nwjs.io/v${NW_VERSION}/nw-headers-v${NW_VERSION}.tar.gz; - COMMAND mv nw-headers-v${NW_VERSION}.tar.gz.tmp nw-headers-v${NW_VERSION}.tar.gz; - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cache - OUTPUT_VARIABLE CMAKE_JS_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE - ) -endif() -execute_process(COMMAND rm -rf ${CMAKE_CURRENT_SOURCE_DIR}/node WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) -if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/node") - execute_process(COMMAND tar -zxf nw-headers-v${NW_VERSION}.tar.gz -C ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cache) -endif() -# if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lib/node-v${NW_VERSION}.lib") -# execute_process( -# COMMAND wget -c -O node-v${NW_VERSION}.lib.tmp https://dl.nwjs.io/v${NW_VERSION}/node.lib; -# COMMAND mv node-v${NW_VERSION}.lib.tmp node-v${NW_VERSION}.lib; -# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib -# OUTPUT_VARIABLE CMAKE_JS_VERSION -# OUTPUT_STRIP_TRAILING_WHITESPACE -# ) -# endif() -# if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lib/nw-v${NW_VERSION}.lib") -# execute_process( -# COMMAND wget -c -O nw-v${NW_VERSION}.lib.tmp https://dl.nwjs.io/v${NW_VERSION}/nw.lib; -# COMMAND mv nw-v${NW_VERSION}.lib.tmp nw-v${NW_VERSION}.lib; -# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib -# OUTPUT_VARIABLE CMAKE_JS_VERSION -# OUTPUT_STRIP_TRAILING_WHITESPACE -# ) -# endif() -include_directories(node/src) -include_directories(node/include/node) -include_directories(node/deps/v8/include) -include_directories(node/deps/uv/include) +find_program(PNPM_EXECUTABLE pnpm) +if(NOT PNPM_EXECUTABLE) + message(FATAL_ERROR "pnpm not found!") +endif() +if(WIN32) + set(PNPM_EXECUTABLE "${PNPM_EXECUTABLE}.CMD") +endif() + +message("CMAKE_CXX_FLAGS:${CMAKE_CXX_FLAGS}") +message("获取 cmake-js 配置") +message(${PROJECT_SOURCE_DIR}) +execute_process(COMMAND + ${PNPM_EXECUTABLE} --silent cmake-js --version + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE CMAKE_JS_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE +) +execute_process(COMMAND + ${PNPM_EXECUTABLE} cmake-js print-cmakejs-src --arch ${TARGET_ARCH} --silent -l error + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE CMAKE_JS_SRC + OUTPUT_STRIP_TRAILING_WHITESPACE +) +message("获取 CMAKE_JS_SRC 配置: ${CMAKE_JS_SRC}") + +message("PNPM_EXECUTABLE: " ${PNPM_EXECUTABLE}) +execute_process(COMMAND + ${PNPM_EXECUTABLE} cmake-js print-cmakejs-include --silent -l error + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE CMAKE_JS_INC + OUTPUT_STRIP_TRAILING_WHITESPACE +) +message("CMAKE_JS_INC:" ${CMAKE_JS_INC}) +foreach(item IN LISTS CMAKE_JS_INC) + message("include: ${item}") + include_directories(${item}) +endforeach() + +message("获取 node-addon-api 配置") +execute_process(COMMAND + node -p "require('node-addon-api').include" + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE NODE_ADDON_API_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE +) +message("node-addon-api 路径:${NODE_ADDON_API_DIR}") + +message("CMAKE_JS_INC: " ${CMAKE_JS_INC}) +message("CMAKE_JS_SRC: " ${CMAKE_JS_SRC}) +message("CMAKE_JS_LIB: " ${CMAKE_JS_LIB}) + +include_directories(${CMAKE_JS_SRC}) +include_directories(${NODE_ADDON_API_DIR}) add_library(wcc_module SHARED ./wcc.cpp - ./include/wcc.hh + ./config/wcc.hh ./config/wcc.cc ../include/wxml.h ../include/night.h @@ -85,11 +103,10 @@ add_library(wcc_module ../utils/json.cpp ../utils/string_utils.cpp ../utils/file.cpp + ${CMAKE_JS_SRC} ) - +target_link_libraries(wcc_module PRIVATE rt pthread) set_target_properties(wcc_module PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) -# DV8_COMPRESS_POINTERS: 缺少会导致IsString崩溃 -target_compile_options(wcc_module PRIVATE "-DNODE_GYP_MODULE_NAME=binding" "-DUSING_UV_SHARED=1" "-DUSING_V8_SHARED=1" "-DV8_DEPRECATION_WARNINGS=1" "-DV8_DEPRECATION_WARNINGS" "-DV8_REVERSE_JSARGS" "-D_GLIBCXX_USE_CXX11_ABI=1" "-D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS" "-D_LARGEFILE_SOURCE" "-D_FILE_OFFSET_BITS=64" "-DV8_COMPRESS_POINTERS" "-DV8_31BIT_SMIS_ON_64BIT_ARCH" "-D__STDC_FORMAT_MACROS" "-DOPENSSL_NO_PINSHARED" "-DOPENSSL_THREADS" "-DOPENSSL_NO_ASM" "-DBUILDING_NODE_EXTENSION") set_target_properties(wcc_module PROPERTIES PREFIX "" SUFFIX ".node") # target_link_libraries(wcc_module ${CMAKE_CURRENT_SOURCE_DIR}/lib/nw-v${NW_VERSION}.lib) # target_link_libraries(wcc_module ${CMAKE_CURRENT_SOURCE_DIR}/lib/node-v${NW_VERSION}.lib) @@ -98,6 +115,7 @@ set_target_properties(wcc_module PROPERTIES PREFIX "" SUFFIX ".node") add_library(wcsc_module SHARED ./wcsc.cpp + ./config/wcsc.hh ./config/wcsc.cc ../wcsc/usage.cpp ../wxa/wxa.cpp @@ -119,8 +137,8 @@ add_library(wcsc_module ../utils/json.cpp ../utils/string_utils.cpp ../utils/file.cpp + ${CMAKE_JS_SRC} ) +target_link_libraries(wcsc_module PRIVATE rt pthread) set_target_properties(wcsc_module PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) -# DV8_COMPRESS_POINTERS: 缺少会导致IsString崩溃 -target_compile_options(wcsc_module PRIVATE "-DNODE_GYP_MODULE_NAME=binding" "-DUSING_UV_SHARED=1" "-DUSING_V8_SHARED=1" "-DV8_DEPRECATION_WARNINGS=1" "-DV8_DEPRECATION_WARNINGS" "-DV8_REVERSE_JSARGS" "-D_GLIBCXX_USE_CXX11_ABI=1" "-D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS" "-D_LARGEFILE_SOURCE" "-D_FILE_OFFSET_BITS=64" "-DV8_COMPRESS_POINTERS" "-DV8_31BIT_SMIS_ON_64BIT_ARCH" "-D__STDC_FORMAT_MACROS" "-DOPENSSL_NO_PINSHARED" "-DOPENSSL_THREADS" "-DOPENSSL_NO_ASM" "-DBUILDING_NODE_EXTENSION") set_target_properties(wcsc_module PROPERTIES PREFIX "" SUFFIX ".node") diff --git a/src/module/config/wcc.cc b/src/module/config/wcc.cc index 8a737e9..310f38d 100644 --- a/src/module/config/wcc.cc +++ b/src/module/config/wcc.cc @@ -1,172 +1,145 @@ -#include "../include/wcc.hh" +#include "./wcc.hh" +#include "napi.h" namespace wcc_options { - using v8::Local; - using v8::String; - using v8::Value; - bool get_boolean_property(v8::Isolate *isolate, v8::Local &src, const char *property_name, bool &out_value) + bool parse_wcc_options(Napi::Env &env, Napi::Object &src, WCCOptions *result) { - v8::Local key = v8::String::NewFromUtf8(isolate, property_name, v8::NewStringType::kNormal).ToLocalChecked(); - v8::Local value; - v8::Local context = isolate->GetCurrentContext(); + if (src.Get("verbose").IsBoolean()) + { + result->verbose = src.Get("verbose").As().Value(); + } - if (!src->Get(context, key).ToLocal(&value)) + if (src.Get("debug").IsBoolean()) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + result->debug = src.Get("debug").As().Value(); } - if (value->IsUndefined()) - { - out_value = false; - return true; - } - if (!value->IsBoolean()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + "' property must be a boolean").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - out_value = value->BooleanValue(isolate); - return true; - } - bool get_string_property(v8::Isolate *isolate, v8::Local &src, const char *property_name, std::string &out_value) - { - v8::Local key = v8::String::NewFromUtf8(isolate, property_name, v8::NewStringType::kNormal).ToLocalChecked(); - v8::Local value; - v8::Local context = isolate->GetCurrentContext(); + if (src.Get("debugWXS").IsBoolean()) + { + result->debugWXS = src.Get("debugWXS").As().Value(); + } - if (!src->Get(context, key).ToLocal(&value)) + if (src.Get("showNewTree").IsBoolean()) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + result->showNewTree = src.Get("showNewTree").As().Value(); } - if (!value->IsString()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + "' property must be a string").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - v8::String::Utf8Value utf8Value(isolate, value); - std::string str(*utf8Value, utf8Value.length()); - out_value = str; - return true; - } - bool get_vector_string_property(v8::Isolate *isolate, v8::Local &src, const char *property_name, std::vector &out_value) - { - v8::Local key = v8::String::NewFromUtf8(isolate, property_name, v8::NewStringType::kNormal).ToLocalChecked(); - v8::Local value; - v8::Local context = isolate->GetCurrentContext(); + if (src.Get("isPlugin").IsBoolean()) + { + result->isPlugin = src.Get("isPlugin").As().Value(); + } - if (!src->Get(context, key).ToLocal(&value)) + if (src.Get("addTestAttre").IsBoolean()) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + result->addTestAttre = src.Get("addTestAttre").As().Value(); } - if (!value->IsArray()) + + if (src.Get("independent").IsBoolean()) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + "' property must be a array").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + result->independent = src.Get("independent").As().Value(); } - auto arr = value.As(); - for (int i=0; i < arr->Length(); i++) + + if (src.Get("isCut").IsBoolean()) { - v8::Local v; - if (!arr->Get(context, i).ToLocal(&v)) + result->isCut = src.Get("isCut").As().Value(); + } + + if (src.Get("lazyload").IsBoolean()) + { + result->lazyload = src.Get("lazyload").As().Value(); + } + + if (src.Get("genfuncname").IsString()) + { + result->genfuncname = src.Get("genfuncname").As().Utf8Value(); + } + + if (src.Get("cwd").IsString()) + { + result->cwd = src.Get("cwd").As().Utf8Value(); + } + + if (src.Get("wxmlCompileConfig").IsString()) + { + result->wxmlCompileConfig = src.Get("wxmlCompileConfig").As().Utf8Value(); + } + + + if (src.Get("wxmlCompileConfigSplit").IsString()) + { + result->wxmlCompileConfigSplit = src.Get("wxmlCompileConfigSplit").As().Utf8Value(); + } + + + if (src.Get("lazyloadConfig").IsString()) + { + result->lazyloadConfig = src.Get("lazyloadConfig").As().Utf8Value(); + } + + + if (src.Get("files").IsArray()) + { + Napi::Array arr = src.Get("files").As(); + for (size_t i = 0; i < arr.Length(); i++) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + Napi::Value value = arr[i]; + if (value.IsString()) + { + result->files.push_back(value.As().Utf8Value()); + } + else + { + throw Napi::Error::New(env, "files must be an array of strings"); + } } - if (!v->IsString()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + std::string("[") + std::to_string(i) +"]' property must be a string").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - v8::String::Utf8Value utf8Value(isolate, v); - std::string str(*utf8Value, utf8Value.length()); - out_value.emplace_back(str); } - return true; - } - - bool get_map_string_property(v8::Isolate *isolate, v8::Local &src, const char *property_name, std::map &out_value) - { - v8::Local key = v8::String::NewFromUtf8(isolate, property_name, v8::NewStringType::kNormal).ToLocalChecked(); - v8::Local value; - v8::Local context = isolate->GetCurrentContext(); - - if (!src->Get(context, key).ToLocal(&value)) + + if (src.Get("contents").IsArray()) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + Napi::Array arr = src.Get("contents").As(); + for (size_t i = 0; i < arr.Length(); i++) + { + Napi::Value value = arr[i]; + if (value.IsString()) + { + result->contents.push_back(value.As().Utf8Value()); + } + else + { + throw Napi::Error::New(env, "contents must be an array of strings"); + } + } } - if (!value->IsObject()) + + if (src.Get("replaceContent").IsObject()) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + "' property must be a object").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - auto obj = value.As(); - auto keys = obj->GetPropertyNames(context).ToLocalChecked(); - - for (int i = 0; i < keys->Length(); i++) - { - // key - v8::Local k; - if (!keys->Get(context, i).ToLocal(&k)) + Napi::Object obj = src.Get("replaceContent").As(); + Napi::Array keys = obj.GetPropertyNames(); + for (size_t i = 0; i < keys.Length(); i++) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + Napi::Value key = keys[i]; + if (key.IsString()) + { + std::string keyStr = key.As().Utf8Value(); + Napi::Value value = obj.Get(key); + if (value.IsString()) + { + result->replaceContent[keyStr] = value.As().Utf8Value(); + } + else + { + throw Napi::Error::New(env, "replaceContent must be a map of strings"); + } + } + else + { + throw Napi::Error::New(env, "replaceContent must be a map of strings"); + } } - if (!k->IsString()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + std::string("[") + std::to_string(i) +"]' property must be a string").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - - // value - v8::Local v; - if (!obj->Get(context, k).ToLocal(&v)) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - if (!v->IsString()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + std::string("[") + std::to_string(i) +"]' property must be a string").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - v8::String::Utf8Value utf8Value(isolate, k); - std::string kr(*utf8Value, utf8Value.length()); - v8::String::Utf8Value utf8Value2(isolate, v); - std::string vr(*utf8Value2, utf8Value2.length()); - out_value.emplace(kr, vr); } return true; } - - bool parse_wcc_options(v8::Isolate *isolate, v8::Local &src, WCCOptions *result) - { - Local context = isolate->GetCurrentContext(); - bool ret = get_boolean_property(isolate, src, "verbose", result->verbose) && - get_boolean_property(isolate, src, "debug", result->debug) && - get_boolean_property(isolate, src, "debugWXS", result->debugWXS) && - get_boolean_property(isolate, src, "showNewTree", result->showNewTree) && - get_boolean_property(isolate, src, "isPlugin", result->isPlugin) && - get_boolean_property(isolate, src, "addTestAttre", result->addTestAttre) && - get_boolean_property(isolate, src, "independent", result->independent) && - get_boolean_property(isolate, src, "isCut", result->isCut) && - get_boolean_property(isolate, src, "lazyload", result->lazyload) && - get_string_property(isolate, src, "genfuncname", result->genfuncname) && - get_string_property(isolate, src, "cwd", result->cwd) && - get_string_property(isolate, src, "wxmlCompileConfig", result->wxmlCompileConfig) && - get_string_property(isolate, src, "wxmlCompileConfigSplit", result->wxmlCompileConfigSplit) && - get_string_property(isolate, src, "lazyloadConfig", result->lazyloadConfig) && - get_vector_string_property(isolate, src, "files", result->files) && - get_vector_string_property(isolate, src, "contents", result->contents) && - get_map_string_property(isolate, src, "replaceContent", result->replaceContent); - - return ret; - } } \ No newline at end of file diff --git a/src/module/include/wcc.hh b/src/module/config/wcc.hh similarity index 83% rename from src/module/include/wcc.hh rename to src/module/config/wcc.hh index dfc5f7a..5c52fca 100644 --- a/src/module/include/wcc.hh +++ b/src/module/config/wcc.hh @@ -3,7 +3,7 @@ #include #include #include -#include +#include struct WCCOptions { @@ -18,7 +18,7 @@ struct WCCOptions bool addTestAttre = false; bool independent = false; std::string genfuncname; - bool isCut; + bool isCut = false; std::string cwd; bool lazyload = false; std::string wxmlCompileConfig; @@ -28,6 +28,6 @@ struct WCCOptions namespace wcc_options { - bool parse_wcc_options(v8::Isolate *isolate, v8::Local &src, WCCOptions *result); + bool parse_wcc_options(Napi::Env &env, Napi::Object &src, WCCOptions *result); } #endif \ No newline at end of file diff --git a/src/module/config/wcsc.cc b/src/module/config/wcsc.cc index 011fa5e..06137f3 100644 --- a/src/module/config/wcsc.cc +++ b/src/module/config/wcsc.cc @@ -1,179 +1,108 @@ -#include "../include/wcsc.hh" -#include "v8.h" +#include "./wcsc.hh" +#include "napi.h" namespace wcsc_options { - using v8::Local; - using v8::String; - using v8::Value; - - bool get_boolean_property(v8::Isolate *isolate, v8::Local &src, const char *property_name, bool &out_value) + bool parse_wcsc_options(Napi::Env &env, Napi::Object &src, WCSCOptions *result) { - v8::Local key = v8::String::NewFromUtf8(isolate, property_name, v8::NewStringType::kNormal).ToLocalChecked(); - v8::Local value; - v8::Local context = isolate->GetCurrentContext(); + if (src.Get("debug").IsBoolean()) + { + result->debug = src.Get("debug").As().Value(); + } + else { + throw Napi::Error::New(env, "debug must be a boolean"); + } - if (!src->Get(context, key).ToLocal(&value)) + if (src.Get("lazyload").IsBoolean()) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + result->lazyload = src.Get("lazyload").As().Value(); } - if (!value->IsBoolean()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + "' property must be a boolean").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + else { + throw Napi::Error::New(env, "lazyload must be a boolean"); } - out_value = value->BooleanValue(isolate); - return true; - } - bool get_string_property(v8::Isolate *isolate, v8::Local &src, const char *property_name, std::string &out_value) - { - v8::Local key = v8::String::NewFromUtf8(isolate, property_name, v8::NewStringType::kNormal).ToLocalChecked(); - v8::Local value; - v8::Local context = isolate->GetCurrentContext(); + if (src.Get("cwd").IsString()) + { + result->cwd = src.Get("cwd").As().Utf8Value(); + } + else { + throw Napi::Error::New(env, "cwd must be a string"); + } - if (!src->Get(context, key).ToLocal(&value)) + if (src.Get("classPrefix").IsString()) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + result->classPrefix = src.Get("classPrefix").As().Utf8Value(); } - if (!value->IsString()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + "' property must be a string").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + else { + throw Napi::Error::New(env, "classPrefix must be a string"); } - v8::String::Utf8Value utf8Value(isolate, value); - std::string str(*utf8Value, utf8Value.length()); - out_value = str; - return true; - } - - bool get_integer_property(v8::Isolate *isolate, v8::Local &src, const char *property_name, int &out_value) - { - v8::Local key = v8::String::NewFromUtf8(isolate, property_name, v8::NewStringType::kNormal).ToLocalChecked(); - v8::Local value; - v8::Local context = isolate->GetCurrentContext(); - if (!src->Get(context, key).ToLocal(&value)) + if (src.Get("pageCount").IsNumber()) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + result->pageCount = src.Get("pageCount").As().Int32Value(); } - if (!value->IsInt32()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + "' property must be a int32").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + else { + throw Napi::Error::New(env, "pageCount must be a number"); } - out_value = value->Int32Value(isolate->GetCurrentContext()).ToChecked(); - return true; - } - bool get_vector_string_property(v8::Isolate *isolate, v8::Local &src, const char *property_name, std::vector &out_value) - { - v8::Local key = v8::String::NewFromUtf8(isolate, property_name, v8::NewStringType::kNormal).ToLocalChecked(); - v8::Local value; - v8::Local context = isolate->GetCurrentContext(); - - if (!src->Get(context, key).ToLocal(&value)) + if (src.Get("files").IsArray()) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - if (!value->IsArray()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + "' property must be a array").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - auto arr = value.As(); - for (int i=0; i < arr->Length(); i++) - { - v8::Local v; - if (!arr->Get(context, i).ToLocal(&v)) + Napi::Array arr = src.Get("files").As(); + for (size_t i = 0; i < arr.Length(); i++) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + Napi::Value value = arr[i]; + if (value.IsString()) + { + result->files.push_back(value.As().Utf8Value()); + } + else { + throw Napi::Error::New(env, "files must be an array of strings"); + } } - if (!v->IsString()) + } + else { + throw Napi::Error::New(env, "files must be an array"); + } + + if (src.Get("contents").IsArray()) + { + Napi::Array arr = src.Get("contents").As(); + for (size_t i = 0; i < arr.Length(); i++) { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + std::string("[") + std::to_string(i) +"]' property must be a string").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; + Napi::Value value = arr[i]; + if (value.IsString()) + { + result->contents.push_back(value.As().Utf8Value()); + } + else { + throw Napi::Error::New(env, "contents must be an array of strings"); + } } - v8::String::Utf8Value utf8Value(isolate, v); - std::string str(*utf8Value, utf8Value.length()); - out_value.emplace_back(str); + } + else { + throw Napi::Error::New(env, "contents must be an array"); + } + + if (src.Get("replaceContent").IsObject()) + { + Napi::Object obj = src.Get("replaceContent").As(); + Napi::Array keys = obj.GetPropertyNames(); + for (size_t i = 0; i < keys.Length(); i++) + { + Napi::Value k = keys[i]; + std::string key = k.As().Utf8Value(); + if (obj.Get(key).IsString()) + { + result->replaceContent[key] = obj.Get(key).As().Utf8Value(); + } + else { + throw Napi::Error::New(env, "replaceContent must be an object of strings"); + } + } + } + else { + throw Napi::Error::New(env, "replaceContent must be an object"); } return true; } - - bool get_map_string_property(v8::Isolate *isolate, v8::Local &src, const char *property_name, std::map &out_value) - { - v8::Local key = v8::String::NewFromUtf8(isolate, property_name, v8::NewStringType::kNormal).ToLocalChecked(); - v8::Local value; - v8::Local context = isolate->GetCurrentContext(); - - if (!src->Get(context, key).ToLocal(&value)) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - if (!value->IsObject()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + "' property must be a object").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - auto obj = value.As(); - auto keys = obj->GetPropertyNames(context).ToLocalChecked(); - - for (int i = 0; i < keys->Length(); i++) - { - // key - v8::Local k; - if (!keys->Get(context, i).ToLocal(&k)) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - if (!k->IsString()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + std::string("[") + std::to_string(i) +"]' property must be a string").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - - // value - v8::Local v; - if (!obj->Get(context, k).ToLocal(&v)) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("Failed to get '" + std::string(property_name) + "' property").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - if (!v->IsString()) - { - isolate->ThrowException(v8::String::NewFromUtf8(isolate, ("The '" + std::string(property_name) + std::string("[") + std::to_string(i) +"]' property must be a string").c_str(), v8::NewStringType::kNormal).ToLocalChecked()); - return false; - } - v8::String::Utf8Value utf8Value(isolate, k); - std::string kr(*utf8Value, utf8Value.length()); - v8::String::Utf8Value utf8Value2(isolate, v); - std::string vr(*utf8Value2, utf8Value2.length()); - out_value.emplace(kr, vr); - } - - return true; - } - - bool parse_wcsc_options(v8::Isolate *isolate, v8::Local &src, WCSCOptions *result) - { - Local context = isolate->GetCurrentContext(); - bool ret = get_boolean_property(isolate, src, "debug", result->debug) && - get_boolean_property(isolate, src, "lazyload", result->lazyload) && - get_string_property(isolate, src, "cwd", result->cwd) && - get_string_property(isolate, src, "classPrefix", result->classPrefix) && - get_integer_property(isolate, src, "pageCount", result->pageCount) && - get_vector_string_property(isolate, src, "files", result->files) && - get_vector_string_property(isolate, src, "contents", result->contents) && - get_map_string_property(isolate, src, "replaceContent", result->replaceContent); - - return ret; - } } \ No newline at end of file diff --git a/src/module/include/wcsc.hh b/src/module/config/wcsc.hh similarity index 73% rename from src/module/include/wcsc.hh rename to src/module/config/wcsc.hh index e57452f..91aab94 100644 --- a/src/module/include/wcsc.hh +++ b/src/module/config/wcsc.hh @@ -3,7 +3,7 @@ #include #include #include -#include +#include struct WCSCOptions { @@ -14,11 +14,11 @@ struct WCSCOptions std::string cwd; bool debug = false; std::string classPrefix; - bool lazyload; + bool lazyload = false; }; namespace wcsc_options { - bool parse_wcsc_options(v8::Isolate *isolate, v8::Local &src, WCSCOptions *result); + bool parse_wcsc_options(Napi::Env &env, Napi::Object &src, WCSCOptions *result); } #endif \ No newline at end of file diff --git a/src/module/wcc.cpp b/src/module/wcc.cpp index 25bdf67..3d05a10 100644 --- a/src/module/wcc.cpp +++ b/src/module/wcc.cpp @@ -1,35 +1,22 @@ // hello.cc -#include "./include/wcc.hh" +#include "./config/wcc.hh" #include "../include/file.h" #include "../include/night.h" #include "../include/string_utils.h" #include "../include/wxml.h" -#include "v8.h" +#include "napi.h" #include #include #include -#include #include namespace wx_compiler { -using v8::Function; -using v8::FunctionCallbackInfo; -using v8::FunctionTemplate; -using v8::Isolate; -using v8::Local; -using v8::NewStringType; -using v8::Object; -using v8::String; -using v8::Value; - using std::map; using std::string; using std::vector; -int compile(Isolate *isolate, WCCOptions &options, Local &result, - std::string &errMsg) { - try { +Napi::Value compile(Napi::Env &env, WCCOptions &options) { int mark = 0; if (options.debug) { mark |= 2u; @@ -41,7 +28,7 @@ int compile(Isolate *isolate, WCCOptions &options, Local &result, std::map wxsMap; for (int i = 0; i < options.files.size(); i++) { auto file = options.files[i]; - fileContentMap[file] = options.contents[i]; + fileContentMap[file] = options.contents[i]; if (file.find(".wxs") != std::string::npos) { wxsMap[file] = options.contents[i]; } @@ -90,8 +77,7 @@ int compile(Isolate *isolate, WCCOptions &options, Local &result, std::string v146; if ( night::compile_ns_no_wrapper(v152, v156, 1, v146, 0) ) { - errMsg = "Error: " + v146 + "\n"; - return -2; + throw Napi::Error::New(env, "Error: " + v146 + "\n"); } auto v31 = snprintf(0, 0, WXML::GlassEaselWxs::sWrapper.c_str(), v146.c_str()) + 1; char *v32 = (char *)operator new[](v31); @@ -121,7 +107,7 @@ int compile(Isolate *isolate, WCCOptions &options, Local &result, map> dependencyListMap; map mapData1; const char off_5403C3[] = {'s', '\0', 'e', '\0'}; - + std::string errMsg; compilerResult = WXML::Compiler::CompileLazy( fileContentMap, errMsg, outputContentMap, outputFuncMap, // map @@ -202,61 +188,38 @@ int compile(Isolate *isolate, WCCOptions &options, Local &result, } std::string v140 = dep.str(); outputContentMap["__COMMON__"].append(v140); - if (!compilerResult) { - - v8::Local funcContent = v8::Object::New(isolate); - for (auto content : outputContentMap) { - funcContent - ->Set(isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, content.first.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked(), - String::NewFromUtf8(isolate, content.second.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked()) - .Check(); - } - v8::Local funcName = v8::Object::New(isolate); - for (auto func : outputFuncMap) { - funcName - ->Set(isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, func.first.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked(), - String::NewFromUtf8(isolate, func.second.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked()) - .Check(); - } - - // 你可以在这里设置对象的属性和方法 - - // 创建一个实例 - v8::Local object_instance = v8::Object::New(isolate); - auto _ = object_instance->Set( - isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, "generateFunctionName", - v8::NewStringType::kNormal) - .ToLocalChecked(), - funcName); - _ = object_instance->Set(isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, - "generateFunctionContent", - v8::NewStringType::kNormal) - .ToLocalChecked(), - funcContent); - - result = object_instance; + if (compilerResult) { + throw Napi::Error::New(env, "Error: " + errMsg + "\n"); } - return compilerResult; + + // Create return objects using proper N-API object creation + auto result = Napi::Object::New(env); + + auto funcContent = Napi::Object::New(env); + for (auto content : outputContentMap) { + funcContent.Set(Napi::String::New(env, content.first), + Napi::String::New(env, content.second)); + } + + auto funcName = Napi::Object::New(env); + for (auto func : outputFuncMap) { + funcName.Set(Napi::String::New(env, func.first), + Napi::String::New(env, func.second)); + } + + // Set properties on the result object + result.Set("generateFunctionName", funcName); + result.Set("generateFunctionContent", funcContent); + + return result; } else { // 普通 - int compilerResult = 0; std::map v105; map> componentListMap; std::string r; - compilerResult = + std::string errMsg; + int compilerResult = WXML::Compiler::Compile(fileContentMap, // a2 errMsg, // a3 r, // a4 @@ -276,98 +239,56 @@ int compile(Isolate *isolate, WCCOptions &options, Local &result, "boxofchocolate", // "boxofchocolate" "$gdwx", // "$gdwx" "f_"); // "f_" - result = String::NewFromUtf8(isolate, r.c_str(), NewStringType::kNormal) - .ToLocalChecked(); - return compilerResult; + if (compilerResult) { + // error + throw Napi::Error::New(env, "Error: " + errMsg + "\n"); + } + return Napi::String::New(env, r); } - } catch (std::string& err) { - fprintf(stderr, "Error: %s", err.c_str()); - errMsg = err; - return 1; - } catch (WXML::DOMLib::ParseException& err) { - fprintf(stderr, "Error: %s", err.what()); - errMsg = err.what(); - return 1; - } catch (std::exception& err) { - fprintf(stderr, "Error: %s", err.what()); - errMsg = err.what(); - return 1; - } - return 0; } -void wcc(const FunctionCallbackInfo &args) { - Isolate *isolate = args.GetIsolate(); - v8::HandleScope scope(isolate); // Ensure we have a proper handle scope. +Napi::Value wcc(const Napi::CallbackInfo &info) { + auto env = info.Env(); // Check if the first argument is an object. - if (args.Length() < 1 || !args[0]->IsObject()) { - isolate->ThrowException(String::NewFromUtf8(isolate, - "Argument must be an object", - NewStringType::kNormal) - .ToLocalChecked()); - return; + if (info.Length() < 1 || !info[0].IsObject()) { + throw Napi::Error::New(env, "Argument must be an object"); } - - // Cast the first argument to an Object. - Local context = isolate->GetCurrentContext(); - Local obj = args[0]->ToObject(context).ToLocalChecked(); - + Napi::Object obj = info[0].As(); WCCOptions options; - if (!wcc_options::parse_wcc_options(isolate, obj, &options)) { - // 选项解析失败 - return; + wcc_options::parse_wcc_options(env, obj, &options); + + try { + auto result = Napi::Object::New(env); + return compile(env, options); + } catch (std::string& err) { + fprintf(stderr, "Error: %s", err.c_str()); + throw Napi::Error::New(env, err); + } catch (WXML::DOMLib::ParseException& err) { + fprintf(stderr, "Error: %s", err.what()); + throw Napi::Error::New(env, err.what()); + } catch (std::exception& err) { + fprintf(stderr, "Error: %s", err.what()); + throw Napi::Error::New(env, err.what()); } - - Local result; - std::string errMsg; - int code = compile(isolate, options, result, errMsg); - - // Convert the "msg" property to a C++ string and return it. - if (code) { - // error - // args.GetReturnValue().Set( - // String::NewFromUtf8(isolate, errMsg.c_str(), NewStringType::kNormal) - // .ToLocalChecked()); - isolate->ThrowException(String::NewFromUtf8(isolate, - errMsg.c_str(), - NewStringType::kNormal) - .ToLocalChecked()); - } else { - // ok - args.GetReturnValue().Set(result); + catch (...) { + fprintf(stderr, "Error: Unknown error"); + throw Napi::Error::New(env, "Unknown error"); } } -void Initialize(Local exports, Local module) { - - Isolate *isolate = exports->GetIsolate(); - auto context = isolate->GetCurrentContext(); +static Napi::Object Initialize(Napi::Env env, Napi::Object exports) { std::string versionInfo; WXML::Compiler::GetVersionInfo(versionInfo, "global"); - // Set the module.exports to be a function - Local tpl = FunctionTemplate::New(isolate, wcc); - Local fn = tpl->GetFunction(context).ToLocalChecked(); - + auto func = Napi::Function::New(env, wcc); // Set the 'version' property on the function - fn->Set(context, - String::NewFromUtf8(isolate, "version", NewStringType::kNormal) - .ToLocalChecked(), - String::NewFromUtf8(isolate, versionInfo.c_str(), - NewStringType::kNormal) - .ToLocalChecked()) - .Check(); + exports.Set("version", Napi::String::New(env, versionInfo)); - module - ->Set(context, - String::NewFromUtf8(isolate, "exports", NewStringType::kNormal) - .ToLocalChecked(), - fn) - .Check(); + return func; } -NODE_MODULE(NODE_GYP_MODULE_NAME, Initialize) +NODE_API_MODULE(WCC_MODULE, Initialize) } // namespace wx_compiler \ No newline at end of file diff --git a/src/module/wcsc.cpp b/src/module/wcsc.cpp index 46a9052..adc291d 100644 --- a/src/module/wcsc.cpp +++ b/src/module/wcsc.cpp @@ -1,36 +1,25 @@ // hello.cc -#include "./include/wcsc.hh" +#include "./config/wcsc.hh" #include "../include/file.h" #include "../include/string_utils.h" #include "../include/wxss.h" #include "../include/wxml.h" -#include "v8.h" +#include "napi.h" #include -#include +#include +#include #include #include namespace wx_compiler { - -using v8::Function; -using v8::FunctionCallbackInfo; -using v8::FunctionTemplate; -using v8::Isolate; -using v8::Local; -using v8::NewStringType; -using v8::Object; -using v8::String; -using v8::Value; - using std::map; using std::string; using std::vector; -int compile(Isolate *isolate, WCSCOptions &options, Local &result, - std::string &errMsg) { +Napi::Value compile(const Napi::Env &env, WCSCOptions &options) { /** - * 文件内容map filename -> fileContent - */ + * 文件内容map filename -> fileContent + */ std::map v77; for (int i=0; i &result, for (int i=0; i &result, int ret = lt.GetCommHead(v72, v94, true, v76); if (ret) { fprintf(stderr, "ERR: GetCommHead ret %d", ret); + throw Napi::Error::New(env, "ERR: GetCommHead ret " + std::to_string(ret)); } for (int i = 0; i < v72.size(); i++) { std::string v98; @@ -69,131 +59,88 @@ int compile(Isolate *isolate, WCSCOptions &options, Local &result, } v92.emplace(cur, v98); } - v8::Local pageWxss = v8::Object::New(isolate); - for (auto func : v92) { - pageWxss - ->Set(isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, func.first.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked(), - String::NewFromUtf8(isolate, func.second.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked()) - .Check(); + + // Create stable N-API objects for return + auto result = Napi::Object::New(env); + auto pageWxss = Napi::Object::New(env); + + // Add properties to the pageWxss object + for (auto const& pair : v92) { + pageWxss.Set( + Napi::String::New(env, pair.first), + Napi::String::New(env, pair.second) + ); } - - v8::Local object_instance = v8::Object::New(isolate); - auto _ = object_instance->Set(isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, "common", - v8::NewStringType::kNormal) - .ToLocalChecked(), - String::NewFromUtf8(isolate, v94.c_str(), - v8::NewStringType::kNormal).ToLocalChecked()); - _ = object_instance->Set(isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, - "pageWxss", - v8::NewStringType::kNormal) - .ToLocalChecked(), - pageWxss); - result = object_instance; + + // Set the common and pageWxss properties on the result object + result.Set("common", Napi::String::New(env, v94)); + result.Set("pageWxss", pageWxss); if (ret) { fprintf(stderr, "ERR: %s\nerror file count: %d\n", "", 0); - return 1; + throw Napi::Error::New(env, "ERR: \nerror file count: " + std::to_string(0)); } - // main - 25 - 9 - return 0; + + return result; } std::string ret = "ERR: wxss GetCompiledResult: " + v96 + ", error file count: " + std::to_string(lt.offset_4) + ", ret " + std::to_string(lt.offset_0); - auto r = String::NewFromUtf8(isolate, ret.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked(); fprintf(stderr, "ERR: wxss GetCompiledResult: %s, error file count: %d, ret %d", v96.data(), lt.offset_4, lt.offset_0); - return 1; + throw Napi::Error::New(env, ret); } else { // 普通 std::string v88; int ret = WXSS::NewLintAndParseCSSList(v77, v72, v88, errMsg, 0, options.debug, v75, v76); - if (ret) - { - return 1; + if (ret) { + throw Napi::Error::New(env, "ERR: wxss GetCompiledResult: " + errMsg + ", error file count: " + std::to_string(ret)); } - result = String::NewFromUtf8(isolate, v88.c_str(), NewStringType::kNormal).ToLocalChecked(); + + // Create a String object with proper lifetime + return Napi::String::New(env, v88); } - return 0; } -void wcc(const FunctionCallbackInfo &args) { - Isolate *isolate = args.GetIsolate(); - v8::HandleScope scope(isolate); // Ensure we have a proper handle scope. +Napi::Value wcsc(const Napi::CallbackInfo &info) { + auto env = info.Env(); // Check if the first argument is an object. - if (args.Length() < 1 || !args[0]->IsObject()) { - isolate->ThrowException(String::NewFromUtf8(isolate, - "Argument must be an object", - NewStringType::kNormal) - .ToLocalChecked()); - return; + if (info.Length() < 1 || !info[0].IsObject()) { + throw Napi::Error::New(env, Napi::String::New(env, "Argument must be an object")); } // Cast the first argument to an Object. - Local context = isolate->GetCurrentContext(); - Local obj = args[0]->ToObject(context).ToLocalChecked(); + auto obj = info[0].As(); WCSCOptions options; - if (!wcsc_options::parse_wcsc_options(isolate, obj, &options)) { - // 选项解析失败 - return; + try { + wcsc_options::parse_wcsc_options(env, obj, &options); + Napi::Object result; + std::string errMsg; + return compile(env, options); + } + catch (std::string& err) { + fprintf(stderr, "Error: %s", err.c_str()); + throw Napi::Error::New(env, err); + }catch (std::runtime_error &err) { + fprintf(stderr, "Runtime error: %s",err.what()); + throw Napi::Error::New(env, err.what()); + } catch (std::exception& err) { + fprintf(stderr, "Exception: %s", err.what()); + throw Napi::Error::New(env, err.what()); + } + catch (...) { + fprintf(stderr, "Error: Unknown error"); + throw Napi::Error::New(env, "Unknown error"); } - Local result; - std::string errMsg; - int code = compile(isolate, options, result, errMsg); - - // Convert the "msg" property to a C++ string and return it. - if (code) { - // error - args.GetReturnValue().Set( - String::NewFromUtf8(isolate, errMsg.c_str(), NewStringType::kNormal) - .ToLocalChecked()); - } else { - // ok - args.GetReturnValue().Set(result); - } } -void Initialize(Local exports, Local module) { +static Napi::Object Initialize(Napi::Env env, Napi::Object exports) { - Isolate *isolate = exports->GetIsolate(); - auto context = isolate->GetCurrentContext(); - - std::string versionInfo; - // TODO - // WXML::Compiler::GetVersionInfo(versionInfo, "global"); - - // Set the module.exports to be a function - Local tpl = FunctionTemplate::New(isolate, wcc); - Local fn = tpl->GetFunction(context).ToLocalChecked(); - - // Set the 'version' property on the function - fn->Set(context, - String::NewFromUtf8(isolate, "version", NewStringType::kNormal) - .ToLocalChecked(), - String::NewFromUtf8(isolate, versionInfo.c_str(), - NewStringType::kNormal) - .ToLocalChecked()) - .Check(); - - module - ->Set(context, - String::NewFromUtf8(isolate, "exports", NewStringType::kNormal) - .ToLocalChecked(), - fn) - .Check(); + return Napi::Function::New(env, wcsc); } -NODE_MODULE(NODE_GYP_MODULE_NAME, Initialize) +NODE_API_MODULE(WCSC_MODULE, Initialize) } // namespace wx_compiler \ No newline at end of file diff --git a/test/runner/module-linux.ts b/test/runner/module-linux.ts index 30c8ca3..769b6e3 100644 --- a/test/runner/module-linux.ts +++ b/test/runner/module-linux.ts @@ -48,8 +48,6 @@ const wcscNative = (optionsPath: string, projectPath: string, outputPath: string } resolve(r); } else { - // process.stderr.write(Buffer.concat(errData).toString()); - // process.stderr.write(Buffer.concat(spwanData).toString()); const err = Buffer.concat(errData).toString() process.stderr.write(err); const r: CompilerResult = { diff --git a/test/runner/nwjs/compiler.js b/test/runner/nwjs/compiler.js index 8bef36f..e61fcea 100644 --- a/test/runner/nwjs/compiler.js +++ b/test/runner/nwjs/compiler.js @@ -8,13 +8,17 @@ const optionsData = fs.readFileSync(p).toString(); const options = JSON.parse(optionsData); (async () => { - const result = await compiler[type](options); - console.log('---------------result------------------') - if (typeof result === "string") { - process.stdout.write(result); - process.exitCode = 1 - process.exit(1) - } else { - process.stdout.write(JSON.stringify(result)); + try { + const result = await compiler[type](options); + console.log('---------------result------------------') + if (typeof result === "string") { + process.stdout.write(result); + process.exitCode = 1 + process.exit(1) + } else { + process.stdout.write(JSON.stringify(result)); + } + }catch (err) { + // console.error('conpile.js error ->' + err) } })(); diff --git a/test/spec/issue/137/data/example.json b/test/spec/issue/137/data/example.json new file mode 100644 index 0000000..c1be225 --- /dev/null +++ b/test/spec/issue/137/data/example.json @@ -0,0 +1,29 @@ +{ + "files": [ + "./pages/index/index.wxss", + "./pages/logs/logs.wxss", + "./components/navigation-bar/navigation-bar.wxss", + "./app.wxss" + ], + "contents": [ + "/**index.wxss**/\n:root\npage {\n height: 100vh;\n display: flex;\n flex-direction: column;\n}\n\n.scrollarea {\n flex: 1;\n overflow-y: hidden;\n}\n\n.userinfo {\n display: flex;\n flex-direction: column;\n align-items: center;\n color: #aaa;\n width: 80%;\n}\n\n.userinfo-avatar {\n overflow: hidden;\n width: 128rpx;\n height: 128rpx;\n margin: 20rpx;\n border-radius: 50%;\n}\n\n.usermotto {\n margin-top: 200px;\n}\n\n.avatar-wrapper {\n padding: 0;\n width: 56px !important;\n border-radius: 8px;\n margin-top: 40px;\n margin-bottom: 40px;\n}\n\n.avatar {\n display: block;\n width: 56px;\n height: 56px;\n}\n\n.nickname-wrapper {\n display: flex;\n width: 100%;\n padding: 16px;\n box-sizing: border-box;\n border-top: .5px solid rgba(0, 0, 0, 0.1);\n border-bottom: .5px solid rgba(0, 0, 0, 0.1);\n color: black;\n}\n\n.nickname-label {\n width: 105px;\n}\n\n.nickname-input {\n flex: 1;\n}\n", + "page {\n height: 100vh;\n display: flex;\n flex-direction: column;\n}\n.scrollarea {\n flex: 1;\n overflow-y: hidden;\n}\n.log-item {\n margin-top: 20rpx;\n text-align: center;\n}\n.log-item:last-child {\n padding-bottom: env(safe-area-inset-bottom);\n}\n", + ".weui-navigation-bar {\n --weui-FG-0:rgba(0,0,0,.9);\n --height: 44px;\n --left: 16px;\n}\n.weui-navigation-bar .android {\n --height: 48px;\n}\n\n.weui-navigation-bar {\n overflow: hidden;\n color: var(--weui-FG-0);\n flex: none;\n}\n\n.weui-navigation-bar__inner {\n position: relative;\n top: 0;\n left: 0;\n height: calc(var(--height) + env(safe-area-inset-top));\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n padding-top: env(safe-area-inset-top);\n width: 100%;\n box-sizing: border-box;\n}\n\n.weui-navigation-bar__left {\n position: relative;\n padding-left: var(--left);\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n height: 100%;\n box-sizing: border-box;\n}\n\n.weui-navigation-bar__btn_goback_wrapper {\n padding: 11px 18px 11px 16px;\n margin: -11px -18px -11px -16px;\n}\n\n.weui-navigation-bar__btn_goback_wrapper.weui-active {\n opacity: 0.5;\n}\n\n.weui-navigation-bar__btn_goback {\n font-size: 12px;\n width: 12px;\n height: 24px;\n -webkit-mask: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E\") no-repeat 50% 50%;\n mask: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E\") no-repeat 50% 50%;\n -webkit-mask-size: cover;\n mask-size: cover;\n background-color: var(--weui-FG-0);\n}\n\n.weui-navigation-bar__center {\n font-size: 17px;\n text-align: center;\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n flex: 1;\n height: 100%;\n}\n\n.weui-navigation-bar__loading {\n margin-right: 4px;\n align-items: center;\n}\n\n.weui-loading {\n font-size: 16px;\n width: 16px;\n height: 16px;\n display: block;\n background: transparent url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='80px' height='80px' viewBox='0 0 80 80' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3Eloading%3C/title%3E%3Cdefs%3E%3ClinearGradient x1='94.0869141%25' y1='0%25' x2='94.0869141%25' y2='90.559082%25' id='linearGradient-1'%3E%3Cstop stop-color='%23606060' stop-opacity='0' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3ClinearGradient x1='100%25' y1='8.67370605%25' x2='100%25' y2='90.6286621%25' id='linearGradient-2'%3E%3Cstop stop-color='%23606060' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3C/defs%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' opacity='0.9'%3E%3Cg%3E%3Cpath d='M40,0 C62.09139,0 80,17.90861 80,40 C80,62.09139 62.09139,80 40,80 L40,73 C58.2253967,73 73,58.2253967 73,40 C73,21.7746033 58.2253967,7 40,7 L40,0 Z' fill='url(%23linearGradient-1)'%3E%3C/path%3E%3Cpath d='M40,0 L40,7 C21.7746033,7 7,21.7746033 7,40 C7,58.2253967 21.7746033,73 40,73 L40,80 C17.90861,80 0,62.09139 0,40 C0,17.90861 17.90861,0 40,0 Z' fill='url(%23linearGradient-2)'%3E%3C/path%3E%3Ccircle id='Oval' fill='%23606060' cx='40.5' cy='3.5' r='3.5'%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A\") no-repeat;\n background-size: 100%;\n margin-left: 0;\n animation: loading linear infinite 1s;\n}\n\n@keyframes loading {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n", + ":root\n.container {\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n padding: 200rpx 0;\n box-sizing: border-box;\n} \n" + ], + "pageCount": 3, + "cwd": "/home/msojocs/WeChatProjects/miniprogram-2", + "replaceContent": { + "app.wxss": ":root\n.container {\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n padding: 200rpx 0;\n box-sizing: border-box;\n} \n", + "./app.wxss": ":root\n.container {\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n padding: 200rpx 0;\n box-sizing: border-box;\n} \n", + "components/navigation-bar/navigation-bar.wxss": ".weui-navigation-bar {\n --weui-FG-0:rgba(0,0,0,.9);\n --height: 44px;\n --left: 16px;\n}\n.weui-navigation-bar .android {\n --height: 48px;\n}\n\n.weui-navigation-bar {\n overflow: hidden;\n color: var(--weui-FG-0);\n flex: none;\n}\n\n.weui-navigation-bar__inner {\n position: relative;\n top: 0;\n left: 0;\n height: calc(var(--height) + env(safe-area-inset-top));\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n padding-top: env(safe-area-inset-top);\n width: 100%;\n box-sizing: border-box;\n}\n\n.weui-navigation-bar__left {\n position: relative;\n padding-left: var(--left);\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n height: 100%;\n box-sizing: border-box;\n}\n\n.weui-navigation-bar__btn_goback_wrapper {\n padding: 11px 18px 11px 16px;\n margin: -11px -18px -11px -16px;\n}\n\n.weui-navigation-bar__btn_goback_wrapper.weui-active {\n opacity: 0.5;\n}\n\n.weui-navigation-bar__btn_goback {\n font-size: 12px;\n width: 12px;\n height: 24px;\n -webkit-mask: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E\") no-repeat 50% 50%;\n mask: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E\") no-repeat 50% 50%;\n -webkit-mask-size: cover;\n mask-size: cover;\n background-color: var(--weui-FG-0);\n}\n\n.weui-navigation-bar__center {\n font-size: 17px;\n text-align: center;\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n flex: 1;\n height: 100%;\n}\n\n.weui-navigation-bar__loading {\n margin-right: 4px;\n align-items: center;\n}\n\n.weui-loading {\n font-size: 16px;\n width: 16px;\n height: 16px;\n display: block;\n background: transparent url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='80px' height='80px' viewBox='0 0 80 80' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3Eloading%3C/title%3E%3Cdefs%3E%3ClinearGradient x1='94.0869141%25' y1='0%25' x2='94.0869141%25' y2='90.559082%25' id='linearGradient-1'%3E%3Cstop stop-color='%23606060' stop-opacity='0' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3ClinearGradient x1='100%25' y1='8.67370605%25' x2='100%25' y2='90.6286621%25' id='linearGradient-2'%3E%3Cstop stop-color='%23606060' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3C/defs%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' opacity='0.9'%3E%3Cg%3E%3Cpath d='M40,0 C62.09139,0 80,17.90861 80,40 C80,62.09139 62.09139,80 40,80 L40,73 C58.2253967,73 73,58.2253967 73,40 C73,21.7746033 58.2253967,7 40,7 L40,0 Z' fill='url(%23linearGradient-1)'%3E%3C/path%3E%3Cpath d='M40,0 L40,7 C21.7746033,7 7,21.7746033 7,40 C7,58.2253967 21.7746033,73 40,73 L40,80 C17.90861,80 0,62.09139 0,40 C0,17.90861 17.90861,0 40,0 Z' fill='url(%23linearGradient-2)'%3E%3C/path%3E%3Ccircle id='Oval' fill='%23606060' cx='40.5' cy='3.5' r='3.5'%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A\") no-repeat;\n background-size: 100%;\n margin-left: 0;\n animation: loading linear infinite 1s;\n}\n\n@keyframes loading {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n", + "./components/navigation-bar/navigation-bar.wxss": ".weui-navigation-bar {\n --weui-FG-0:rgba(0,0,0,.9);\n --height: 44px;\n --left: 16px;\n}\n.weui-navigation-bar .android {\n --height: 48px;\n}\n\n.weui-navigation-bar {\n overflow: hidden;\n color: var(--weui-FG-0);\n flex: none;\n}\n\n.weui-navigation-bar__inner {\n position: relative;\n top: 0;\n left: 0;\n height: calc(var(--height) + env(safe-area-inset-top));\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n padding-top: env(safe-area-inset-top);\n width: 100%;\n box-sizing: border-box;\n}\n\n.weui-navigation-bar__left {\n position: relative;\n padding-left: var(--left);\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n height: 100%;\n box-sizing: border-box;\n}\n\n.weui-navigation-bar__btn_goback_wrapper {\n padding: 11px 18px 11px 16px;\n margin: -11px -18px -11px -16px;\n}\n\n.weui-navigation-bar__btn_goback_wrapper.weui-active {\n opacity: 0.5;\n}\n\n.weui-navigation-bar__btn_goback {\n font-size: 12px;\n width: 12px;\n height: 24px;\n -webkit-mask: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E\") no-repeat 50% 50%;\n mask: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E\") no-repeat 50% 50%;\n -webkit-mask-size: cover;\n mask-size: cover;\n background-color: var(--weui-FG-0);\n}\n\n.weui-navigation-bar__center {\n font-size: 17px;\n text-align: center;\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n flex: 1;\n height: 100%;\n}\n\n.weui-navigation-bar__loading {\n margin-right: 4px;\n align-items: center;\n}\n\n.weui-loading {\n font-size: 16px;\n width: 16px;\n height: 16px;\n display: block;\n background: transparent url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='80px' height='80px' viewBox='0 0 80 80' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3Eloading%3C/title%3E%3Cdefs%3E%3ClinearGradient x1='94.0869141%25' y1='0%25' x2='94.0869141%25' y2='90.559082%25' id='linearGradient-1'%3E%3Cstop stop-color='%23606060' stop-opacity='0' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3ClinearGradient x1='100%25' y1='8.67370605%25' x2='100%25' y2='90.6286621%25' id='linearGradient-2'%3E%3Cstop stop-color='%23606060' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3C/defs%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' opacity='0.9'%3E%3Cg%3E%3Cpath d='M40,0 C62.09139,0 80,17.90861 80,40 C80,62.09139 62.09139,80 40,80 L40,73 C58.2253967,73 73,58.2253967 73,40 C73,21.7746033 58.2253967,7 40,7 L40,0 Z' fill='url(%23linearGradient-1)'%3E%3C/path%3E%3Cpath d='M40,0 L40,7 C21.7746033,7 7,21.7746033 7,40 C7,58.2253967 21.7746033,73 40,73 L40,80 C17.90861,80 0,62.09139 0,40 C0,17.90861 17.90861,0 40,0 Z' fill='url(%23linearGradient-2)'%3E%3C/path%3E%3Ccircle id='Oval' fill='%23606060' cx='40.5' cy='3.5' r='3.5'%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A\") no-repeat;\n background-size: 100%;\n margin-left: 0;\n animation: loading linear infinite 1s;\n}\n\n@keyframes loading {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n", + "pages/index/index.wxss": "/**index.wxss**/\n:root\npage {\n height: 100vh;\n display: flex;\n flex-direction: column;\n}\n\n.scrollarea {\n flex: 1;\n overflow-y: hidden;\n}\n\n.userinfo {\n display: flex;\n flex-direction: column;\n align-items: center;\n color: #aaa;\n width: 80%;\n}\n\n.userinfo-avatar {\n overflow: hidden;\n width: 128rpx;\n height: 128rpx;\n margin: 20rpx;\n border-radius: 50%;\n}\n\n.usermotto {\n margin-top: 200px;\n}\n\n.avatar-wrapper {\n padding: 0;\n width: 56px !important;\n border-radius: 8px;\n margin-top: 40px;\n margin-bottom: 40px;\n}\n\n.avatar {\n display: block;\n width: 56px;\n height: 56px;\n}\n\n.nickname-wrapper {\n display: flex;\n width: 100%;\n padding: 16px;\n box-sizing: border-box;\n border-top: .5px solid rgba(0, 0, 0, 0.1);\n border-bottom: .5px solid rgba(0, 0, 0, 0.1);\n color: black;\n}\n\n.nickname-label {\n width: 105px;\n}\n\n.nickname-input {\n flex: 1;\n}\n", + "./pages/index/index.wxss": "/**index.wxss**/\n:root\npage {\n height: 100vh;\n display: flex;\n flex-direction: column;\n}\n\n.scrollarea {\n flex: 1;\n overflow-y: hidden;\n}\n\n.userinfo {\n display: flex;\n flex-direction: column;\n align-items: center;\n color: #aaa;\n width: 80%;\n}\n\n.userinfo-avatar {\n overflow: hidden;\n width: 128rpx;\n height: 128rpx;\n margin: 20rpx;\n border-radius: 50%;\n}\n\n.usermotto {\n margin-top: 200px;\n}\n\n.avatar-wrapper {\n padding: 0;\n width: 56px !important;\n border-radius: 8px;\n margin-top: 40px;\n margin-bottom: 40px;\n}\n\n.avatar {\n display: block;\n width: 56px;\n height: 56px;\n}\n\n.nickname-wrapper {\n display: flex;\n width: 100%;\n padding: 16px;\n box-sizing: border-box;\n border-top: .5px solid rgba(0, 0, 0, 0.1);\n border-bottom: .5px solid rgba(0, 0, 0, 0.1);\n color: black;\n}\n\n.nickname-label {\n width: 105px;\n}\n\n.nickname-input {\n flex: 1;\n}\n", + "pages/logs/logs.wxss": "page {\n height: 100vh;\n display: flex;\n flex-direction: column;\n}\n.scrollarea {\n flex: 1;\n overflow-y: hidden;\n}\n.log-item {\n margin-top: 20rpx;\n text-align: center;\n}\n.log-item:last-child {\n padding-bottom: env(safe-area-inset-bottom);\n}\n", + "./pages/logs/logs.wxss": "page {\n height: 100vh;\n display: flex;\n flex-direction: column;\n}\n.scrollarea {\n flex: 1;\n overflow-y: hidden;\n}\n.log-item {\n margin-top: 20rpx;\n text-align: center;\n}\n.log-item:last-child {\n padding-bottom: env(safe-area-inset-bottom);\n}\n" + }, + "debug": true, + "classPrefix": "", + "lazyload": true +} \ No newline at end of file diff --git a/test/spec/issue/137/issue137.spec.ts b/test/spec/issue/137/issue137.spec.ts new file mode 100644 index 0000000..4956de0 --- /dev/null +++ b/test/spec/issue/137/issue137.spec.ts @@ -0,0 +1,38 @@ +import assert from "assert" +import path from "path" +import { describe } from "mocha"; +import linux from '../../../runner/module-linux' +import windows from '../../../runner/module-windows' +import * as fs from 'fs' + +describe("issue - 137", function () { + describe("issue: linux output should equal with wine", function () { + it("Arch linux crash", async function () { + const p = path.resolve(__dirname, './data/example.json') + const storagePath = path.resolve( + __dirname, + `output/${this.test?.title}` + ); + try { + fs.mkdirSync(storagePath, { recursive: true }); + } catch (error) {} + + const w = await windows.wcsc(p); + const n = await linux.wcsc(p, '', storagePath); + // console.log('windows:', typeof w) + // console.log('linux:', typeof n) + + fs.writeFileSync( + `${storagePath}/wine-output.json`, + JSON.stringify(w, null, 4) + ); + fs.writeFileSync( + `${storagePath}/node-output.json`, + JSON.stringify(n, null, 4) + ); + assert.equal(typeof n, typeof w); + assert.equal(w.success, true) + assert.deepEqual(n, w); + }); + }); +}); diff --git a/test/spec/wcc/module/data/options-202505012307.json b/test/spec/wcc/module/data/options-202505012307.json new file mode 100644 index 0000000..ce1510e --- /dev/null +++ b/test/spec/wcc/module/data/options-202505012307.json @@ -0,0 +1,28 @@ +{ + "files": [ + "./pages/index/index.wxml", + "./pages/logs/logs.wxml" + ], + "contents": [ + "\n\n \n \n \n \n \n 昵称\n \n \n \n \n \n 请使用2.10.4及以上版本基础库 \n \n \n \n {{userInfo.nickName}}\n \n \n \n {{motto}}\n \n \n\n", + "\n\n \n {{index + 1}}. {{log.date}}\n \n\n" + ], + "replaceContent": { + "pages/index/index.wxml": "\n\n \n \n \n \n \n 昵称\n \n \n \n \n \n 请使用2.10.4及以上版本基础库 \n \n \n \n {{userInfo.nickName}}\n \n \n \n {{motto}}\n \n \n\n", + "./pages/index/index.wxml": "\n\n \n \n \n \n \n 昵称\n \n \n \n \n \n 请使用2.10.4及以上版本基础库 \n \n \n \n {{userInfo.nickName}}\n \n \n \n {{motto}}\n \n \n\n", + "pages/logs/logs.wxml": "\n\n \n {{index + 1}}. {{log.date}}\n \n\n", + "./pages/logs/logs.wxml": "\n\n \n {{index + 1}}. {{log.date}}\n \n\n" + }, + "verbose": false, + "debug": true, + "debugWXS": false, + "showNewTree": false, + "addTestAttre": false, + "independent": false, + "genfuncname": "$gwx", + "cwd": "/home/msojocs/WeChatProjects/miniprogram-2", + "lazyload": true, + "lazyloadConfig": "./pages/index/index>_<2413./pages/logs/logs", + "wxmlCompileConfig": "2>_<2413./pages/index/index.wxml>_<24130>_<2413./pages/logs/logs.wxml>_<24130", + "wxmlCompileConfigSplit": ">_<2413" +} \ No newline at end of file diff --git a/test/spec/wcc/module/module.spec.ts b/test/spec/wcc/module/module.spec.ts index 3e17ecc..8119aac 100644 --- a/test/spec/wcc/module/module.spec.ts +++ b/test/spec/wcc/module/module.spec.ts @@ -54,6 +54,32 @@ describe("wcc - module", function () { // console.log('windows:', typeof w) // console.log('linux:', typeof n) + assert.equal(typeof n, typeof w); + fs.writeFileSync( + `${storagePath}/wine-output.json`, + JSON.stringify(w, null, 4) + ); + fs.writeFileSync( + `${storagePath}/node-output.json`, + JSON.stringify(n, null, 4) + ); + assert.deepEqual(n, w); + }); + it("初次加载3 - 1", async function () { + const p = path.resolve(__dirname, './data/options-202505012307.json') + const storagePath = path.resolve( + __dirname, + `miniprogram-demo/${this.test?.title}` + ); + try { + fs.mkdirSync(storagePath, { recursive: true }); + } catch (error) {} + + const w = await windows.wcc(p); + const n = await linux.wcc(p, ''); + // console.log('windows:', typeof w) + // console.log('linux:', typeof n) + assert.equal(typeof n, typeof w); fs.writeFileSync( `${storagePath}/wine-output.json`, diff --git a/test/wcsc_module.sh b/test/wcsc_module.sh new file mode 100755 index 0000000..75ea800 --- /dev/null +++ b/test/wcsc_module.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +root_dir=$(cd `dirname $0`/.. && pwd -P) + +echo "linux:" +$root_dir/cache/nwjs-sdk-v0.55.0-linux-x64/nw $root_dir/test/runner/nwjs/compiler.js wcsc $root_dir/test/spec/issue/137/data/example.json