├── .dockerignore ├── .github └── FUNDING.yml ├── .gitignore ├── LICENSE ├── README.md ├── config.yaml.example ├── dockerfile ├── package.json ├── pnpm-lock.yaml ├── src ├── api.ts ├── config.ts ├── coze.ts ├── interface.ts └── main.ts ├── static └── chat.png ├── tsconfig.build.json └── tsconfig.json /.dockerignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.toptal.com/developers/gitignore/api/node 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=node 3 | 4 | ### Node ### 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | .pnpm-debug.log* 13 | 14 | # Diagnostic reports (https://nodejs.org/api/report.html) 15 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 16 | 17 | # Runtime data 18 | pids 19 | *.pid 20 | *.seed 21 | *.pid.lock 22 | 23 | # Directory for instrumented libs generated by jscoverage/JSCover 24 | lib-cov 25 | 26 | # Coverage directory used by tools like istanbul 27 | coverage 28 | *.lcov 29 | 30 | # nyc test coverage 31 | .nyc_output 32 | 33 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 34 | .grunt 35 | 36 | # Bower dependency directory (https://bower.io/) 37 | bower_components 38 | 39 | # node-waf configuration 40 | .lock-wscript 41 | 42 | # Compiled binary addons (https://nodejs.org/api/addons.html) 43 | build/Release 44 | 45 | # Dependency directories 46 | node_modules/ 47 | jspm_packages/ 48 | 49 | # Snowpack dependency directory (https://snowpack.dev/) 50 | web_modules/ 51 | 52 | # TypeScript cache 53 | *.tsbuildinfo 54 | 55 | # Optional npm cache directory 56 | .npm 57 | 58 | # Optional eslint cache 59 | .eslintcache 60 | 61 | # Optional stylelint cache 62 | .stylelintcache 63 | 64 | # Microbundle cache 65 | .rpt2_cache/ 66 | .rts2_cache_cjs/ 67 | .rts2_cache_es/ 68 | .rts2_cache_umd/ 69 | 70 | # Optional REPL history 71 | .node_repl_history 72 | 73 | # Output of 'npm pack' 74 | *.tgz 75 | 76 | # Yarn Integrity file 77 | .yarn-integrity 78 | 79 | # dotenv environment variable files 80 | .env 81 | .env.development.local 82 | .env.test.local 83 | .env.production.local 84 | .env.local 85 | 86 | # parcel-bundler cache (https://parceljs.org/) 87 | .cache 88 | .parcel-cache 89 | 90 | # Next.js build output 91 | .next 92 | out 93 | 94 | # Nuxt.js build / generate output 95 | .nuxt 96 | dist 97 | 98 | # Gatsby files 99 | .cache/ 100 | # Comment in the public line in if your project uses Gatsby and not Next.js 101 | # https://nextjs.org/blog/next-9-1#public-directory-support 102 | # public 103 | 104 | # vuepress build output 105 | .vuepress/dist 106 | 107 | # vuepress v2.x temp and cache directory 108 | .temp 109 | 110 | # Docusaurus cache and generated files 111 | .docusaurus 112 | 113 | # Serverless directories 114 | .serverless/ 115 | 116 | # FuseBox cache 117 | .fusebox/ 118 | 119 | # DynamoDB Local files 120 | .dynamodb/ 121 | 122 | # TernJS port file 123 | .tern-port 124 | 125 | # Stores VSCode versions used for testing VSCode extensions 126 | .vscode-test 127 | 128 | # yarn v2 129 | .yarn/cache 130 | .yarn/unplugged 131 | .yarn/build-state.yml 132 | .yarn/install-state.gz 133 | .pnp.* 134 | 135 | ### Node Patch ### 136 | # Serverless Webpack directories 137 | .webpack/ 138 | 139 | # Optional stylelint cache 140 | 141 | # SvelteKit build / generate output 142 | .svelte-kit 143 | 144 | # End of https://www.toptal.com/developers/gitignore/api/node 145 | n 146 | *memory-card.json 147 | # Created by https://www.toptal.com/developers/gitignore/api/python 148 | # Edit at https://www.toptal.com/developers/gitignore?templates=python 149 | 150 | ### Python ### 151 | # Byte-compiled / optimized / DLL files 152 | __pycache__/ 153 | *.py[cod] 154 | *$py.class 155 | 156 | # C extensions 157 | *.so 158 | 159 | # Distribution / packaging 160 | .Python 161 | build/ 162 | develop-eggs/ 163 | dist/ 164 | downloads/ 165 | eggs/ 166 | .eggs/ 167 | lib/ 168 | lib64/ 169 | parts/ 170 | sdist/ 171 | var/ 172 | wheels/ 173 | share/python-wheels/ 174 | *.egg-info/ 175 | .installed.cfg 176 | *.egg 177 | MANIFEST 178 | 179 | # PyInstaller 180 | # Usually these files are written by a python script from a template 181 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 182 | *.manifest 183 | *.spec 184 | 185 | # Installer logs 186 | pip-log.txt 187 | pip-delete-this-directory.txt 188 | 189 | # Unit test / coverage reports 190 | htmlcov/ 191 | .tox/ 192 | .nox/ 193 | .coverage 194 | .coverage.* 195 | .cache 196 | nosetests.xml 197 | coverage.xml 198 | *.cover 199 | *.py,cover 200 | .hypothesis/ 201 | .pytest_cache/ 202 | cover/ 203 | 204 | # Translations 205 | *.mo 206 | *.pot 207 | 208 | # Django stuff: 209 | *.log 210 | local_settings.py 211 | db.sqlite3 212 | db.sqlite3-journal 213 | 214 | # Flask stuff: 215 | instance/ 216 | .webassets-cache 217 | 218 | # Scrapy stuff: 219 | .scrapy 220 | 221 | # Sphinx documentation 222 | docs/_build/ 223 | 224 | # PyBuilder 225 | .pybuilder/ 226 | target/ 227 | 228 | # Jupyter Notebook 229 | .ipynb_checkpoints 230 | 231 | # IPython 232 | profile_default/ 233 | ipython_config.py 234 | 235 | # pyenv 236 | # For a library or package, you might want to ignore these files since the code is 237 | # intended to run in multiple environments; otherwise, check them in: 238 | # .python-version 239 | 240 | # pipenv 241 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 242 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 243 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 244 | # install all needed dependencies. 245 | #Pipfile.lock 246 | 247 | # poetry 248 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 249 | # This is especially recommended for binary packages to ensure reproducibility, and is more 250 | # commonly ignored for libraries. 251 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 252 | #poetry.lock 253 | 254 | # pdm 255 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 256 | #pdm.lock 257 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 258 | # in version control. 259 | # https://pdm.fming.dev/#use-with-ide 260 | .pdm.toml 261 | 262 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 263 | __pypackages__/ 264 | 265 | # Celery stuff 266 | celerybeat-schedule 267 | celerybeat.pid 268 | 269 | # SageMath parsed files 270 | *.sage.py 271 | 272 | # Environments 273 | .env 274 | .venv 275 | env/ 276 | venv/ 277 | ENV/ 278 | env.bak/ 279 | venv.bak/ 280 | 281 | # Spyder project settings 282 | .spyderproject 283 | .spyproject 284 | 285 | # Rope project settings 286 | .ropeproject 287 | 288 | # mkdocs documentation 289 | /site 290 | 291 | # mypy 292 | .mypy_cache/ 293 | .dmypy.json 294 | dmypy.json 295 | 296 | # Pyre type checker 297 | .pyre/ 298 | 299 | # pytype static type analyzer 300 | .pytype/ 301 | 302 | # Cython debug symbols 303 | cython_debug/ 304 | 305 | # PyCharm 306 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 307 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 308 | # and can be added to the global gitignore or merged into this file. For a more nuclear 309 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 310 | #.idea/ 311 | 312 | ### Python Patch ### 313 | # Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration 314 | poetry.toml 315 | 316 | # End of https://www.toptal.com/developers/gitignore/api/python 317 | n 318 | config.json 319 | cache.json 320 | config.yaml 321 | .vscode 322 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: OSInsight -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.toptal.com/developers/gitignore/api/node 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=node 3 | 4 | ### Node ### 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | .pnpm-debug.log* 13 | 14 | # Diagnostic reports (https://nodejs.org/api/report.html) 15 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 16 | 17 | # Runtime data 18 | pids 19 | *.pid 20 | *.seed 21 | *.pid.lock 22 | 23 | # Directory for instrumented libs generated by jscoverage/JSCover 24 | lib-cov 25 | 26 | # Coverage directory used by tools like istanbul 27 | coverage 28 | *.lcov 29 | 30 | # nyc test coverage 31 | .nyc_output 32 | 33 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 34 | .grunt 35 | 36 | # Bower dependency directory (https://bower.io/) 37 | bower_components 38 | 39 | # node-waf configuration 40 | .lock-wscript 41 | 42 | # Compiled binary addons (https://nodejs.org/api/addons.html) 43 | build/Release 44 | 45 | # Dependency directories 46 | node_modules/ 47 | jspm_packages/ 48 | 49 | # Snowpack dependency directory (https://snowpack.dev/) 50 | web_modules/ 51 | 52 | # TypeScript cache 53 | *.tsbuildinfo 54 | 55 | # Optional npm cache directory 56 | .npm 57 | 58 | # Optional eslint cache 59 | .eslintcache 60 | 61 | # Optional stylelint cache 62 | .stylelintcache 63 | 64 | # Microbundle cache 65 | .rpt2_cache/ 66 | .rts2_cache_cjs/ 67 | .rts2_cache_es/ 68 | .rts2_cache_umd/ 69 | 70 | # Optional REPL history 71 | .node_repl_history 72 | 73 | # Output of 'npm pack' 74 | *.tgz 75 | 76 | # Yarn Integrity file 77 | .yarn-integrity 78 | 79 | # dotenv environment variable files 80 | .env 81 | .env.development.local 82 | .env.test.local 83 | .env.production.local 84 | .env.local 85 | 86 | # parcel-bundler cache (https://parceljs.org/) 87 | .cache 88 | .parcel-cache 89 | 90 | # Next.js build output 91 | .next 92 | out 93 | 94 | # Nuxt.js build / generate output 95 | .nuxt 96 | dist 97 | 98 | # Gatsby files 99 | .cache/ 100 | # Comment in the public line in if your project uses Gatsby and not Next.js 101 | # https://nextjs.org/blog/next-9-1#public-directory-support 102 | # public 103 | 104 | # vuepress build output 105 | .vuepress/dist 106 | 107 | # vuepress v2.x temp and cache directory 108 | .temp 109 | 110 | # Docusaurus cache and generated files 111 | .docusaurus 112 | 113 | # Serverless directories 114 | .serverless/ 115 | 116 | # FuseBox cache 117 | .fusebox/ 118 | 119 | # DynamoDB Local files 120 | .dynamodb/ 121 | 122 | # TernJS port file 123 | .tern-port 124 | 125 | # Stores VSCode versions used for testing VSCode extensions 126 | .vscode-test 127 | 128 | # yarn v2 129 | .yarn/cache 130 | .yarn/unplugged 131 | .yarn/build-state.yml 132 | .yarn/install-state.gz 133 | .pnp.* 134 | 135 | ### Node Patch ### 136 | # Serverless Webpack directories 137 | .webpack/ 138 | 139 | # Optional stylelint cache 140 | 141 | # SvelteKit build / generate output 142 | .svelte-kit 143 | 144 | # End of https://www.toptal.com/developers/gitignore/api/node 145 | n 146 | *memory-card.json 147 | # Created by https://www.toptal.com/developers/gitignore/api/python 148 | # Edit at https://www.toptal.com/developers/gitignore?templates=python 149 | 150 | ### Python ### 151 | # Byte-compiled / optimized / DLL files 152 | __pycache__/ 153 | *.py[cod] 154 | *$py.class 155 | 156 | # C extensions 157 | *.so 158 | 159 | # Distribution / packaging 160 | .Python 161 | build/ 162 | develop-eggs/ 163 | dist/ 164 | downloads/ 165 | eggs/ 166 | .eggs/ 167 | lib/ 168 | lib64/ 169 | parts/ 170 | sdist/ 171 | var/ 172 | wheels/ 173 | share/python-wheels/ 174 | *.egg-info/ 175 | .installed.cfg 176 | *.egg 177 | MANIFEST 178 | 179 | # PyInstaller 180 | # Usually these files are written by a python script from a template 181 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 182 | *.manifest 183 | *.spec 184 | 185 | # Installer logs 186 | pip-log.txt 187 | pip-delete-this-directory.txt 188 | 189 | # Unit test / coverage reports 190 | htmlcov/ 191 | .tox/ 192 | .nox/ 193 | .coverage 194 | .coverage.* 195 | .cache 196 | nosetests.xml 197 | coverage.xml 198 | *.cover 199 | *.py,cover 200 | .hypothesis/ 201 | .pytest_cache/ 202 | cover/ 203 | 204 | # Translations 205 | *.mo 206 | *.pot 207 | 208 | # Django stuff: 209 | *.log 210 | local_settings.py 211 | db.sqlite3 212 | db.sqlite3-journal 213 | 214 | # Flask stuff: 215 | instance/ 216 | .webassets-cache 217 | 218 | # Scrapy stuff: 219 | .scrapy 220 | 221 | # Sphinx documentation 222 | docs/_build/ 223 | 224 | # PyBuilder 225 | .pybuilder/ 226 | target/ 227 | 228 | # Jupyter Notebook 229 | .ipynb_checkpoints 230 | 231 | # IPython 232 | profile_default/ 233 | ipython_config.py 234 | 235 | # pyenv 236 | # For a library or package, you might want to ignore these files since the code is 237 | # intended to run in multiple environments; otherwise, check them in: 238 | # .python-version 239 | 240 | # pipenv 241 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 242 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 243 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 244 | # install all needed dependencies. 245 | #Pipfile.lock 246 | 247 | # poetry 248 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 249 | # This is especially recommended for binary packages to ensure reproducibility, and is more 250 | # commonly ignored for libraries. 251 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 252 | #poetry.lock 253 | 254 | # pdm 255 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 256 | #pdm.lock 257 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 258 | # in version control. 259 | # https://pdm.fming.dev/#use-with-ide 260 | .pdm.toml 261 | 262 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 263 | __pypackages__/ 264 | 265 | # Celery stuff 266 | celerybeat-schedule 267 | celerybeat.pid 268 | 269 | # SageMath parsed files 270 | *.sage.py 271 | 272 | # Environments 273 | .env 274 | .venv 275 | env/ 276 | venv/ 277 | ENV/ 278 | env.bak/ 279 | venv.bak/ 280 | 281 | # Spyder project settings 282 | .spyderproject 283 | .spyproject 284 | 285 | # Rope project settings 286 | .ropeproject 287 | 288 | # mkdocs documentation 289 | /site 290 | 291 | # mypy 292 | .mypy_cache/ 293 | .dmypy.json 294 | dmypy.json 295 | 296 | # Pyre type checker 297 | .pyre/ 298 | 299 | # pytype static type analyzer 300 | .pytype/ 301 | 302 | # Cython debug symbols 303 | cython_debug/ 304 | 305 | # PyCharm 306 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 307 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 308 | # and can be added to the global gitignore or merged into this file. For a more nuclear 309 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 310 | .idea/ 311 | 312 | ### Python Patch ### 313 | # Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration 314 | poetry.toml 315 | 316 | 317 | # End of https://www.toptal.com/developers/gitignore/api/python 318 | n 319 | config.json 320 | cache.json 321 | config.yaml 322 | .vscode -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 OSInsight 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # coze-on-wechat 2 | 3 | ## 项目简介 4 | 5 | `coze-on-wechat` 是一个用于将微信与 Coze 智能体对接的项目。通过这个项目,你可以在微信中与 Coze 智能体进行交互,实现自动化对话和消息处理。 6 | 7 | ## 本地开发 8 | 9 | 1. 克隆仓库到本地: 10 | 11 | ```sh 12 | git clone https://github.com/yourusername/coze-on-wechat.git 13 | ``` 14 | 15 | 2. 进入项目目录: 16 | 17 | ```sh 18 | cd coze-on-wechat 19 | ``` 20 | 21 | 3. 安装依赖: 22 | 23 | ```sh 24 | npm install 25 | ``` 26 | 27 | 4. 创建 `config.yaml` 文件,并填写必要的配置项 `accessToken` 和 `botId`,具体参考:[Coze 开发指南](https://www.coze.cn/docs/developer_guides/authentication) 28 | 29 | 5. 启动项目: 30 | 31 | ```sh 32 | npm run dev 33 | ``` 34 | 35 | ## 一键部署 36 | 37 | ### 部署到 Railway 38 | 39 | 1. 点击下面的按钮部署到 Railway: 40 | 41 | [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/ZdPCcV?referralCode=oChFK_) 42 | 43 | ### 部署到阿里云 44 | 45 | docker 部署:(待补充) 46 | 47 | 源码部署:注意使用 pm2 来守护进程,防止被杀死 48 | 49 | ## 效果示例 50 | 51 | ![chat](https://osinsight.tos-cn-beijing.volces.com/coze-on-wechat/cow-chat.jpg?x-tos-process=style/image_compress) 52 | -------------------------------------------------------------------------------- /config.yaml.example: -------------------------------------------------------------------------------- 1 | accessToken: "pat_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 2 | botId: "7************" 3 | cozeTriggerKeyword: "coze" 4 | blacklist: 5 | - "公众号名称" 6 | - "微信名称" 7 | -------------------------------------------------------------------------------- /dockerfile: -------------------------------------------------------------------------------- 1 | # 使用官方的 Node.js 作为基础镜像 2 | FROM node:16 3 | 4 | # 设置工作目录 5 | WORKDIR /app 6 | 7 | # 复制 package.json 和 package-lock.json 8 | COPY package*.json ./ 9 | 10 | # 安装项目依赖 11 | RUN npm install 12 | 13 | # 复制项目文件 14 | COPY . . 15 | 16 | # 编译 TypeScript 代码 17 | RUN npm run build 18 | 19 | # 启动应用 20 | CMD ["node", "dist/main.js"] -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coze-on-wechat", 3 | "version": "0.0.1", 4 | "description": "微信对接 Coze 智能体", 5 | "author": "OSInsight", 6 | "main": "dist/main.js", 7 | "scripts": { 8 | "dev": "nodemon --exec ts-node src/main.ts", 9 | "build": "tsc -p tsconfig.build.json", 10 | "start": "node dist/main.js", 11 | "pm2:start": "npm run build && pm2 start dist/main.js --name cow --time", 12 | "pm2:stop": "pm2 stop cow", 13 | "pm2:restart": "npm run build && pm2 restart cow", 14 | "pm2:delete": "pm2 delete cow" 15 | }, 16 | "engines": { 17 | "node": ">=20" 18 | }, 19 | "keywords": [ 20 | "扣子", 21 | "Coze", 22 | "Wechat", 23 | "微信", 24 | "微信机器人", 25 | "微信助手", 26 | "智能机器人", 27 | "对话机器人", 28 | "wechaty", 29 | "node", 30 | "js" 31 | ], 32 | "dependencies": { 33 | "axios": "^1.7.7", 34 | "qrcode": "^1.5.1", 35 | "wechaty": "^1.20.2", 36 | "wechaty-puppet-wechat": "^1.18.4", 37 | "yaml": "^2.1.3" 38 | }, 39 | "devDependencies": { 40 | "@types/qrcode": "^1.5.0", 41 | "nodemon": "^2.0.20", 42 | "pm2": "^5.4.2", 43 | "ts-node": "^10.9.1", 44 | "typescript": "^5.6.3" 45 | }, 46 | "nodemonConfig": { 47 | "watch": "src", 48 | "ext": "ts", 49 | "exec": "ts-node src/main.ts", 50 | "delay": 500 51 | }, 52 | "license": "MIT" 53 | } 54 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | axios: 9 | specifier: ^1.7.7 10 | version: 1.7.8(debug@2.6.9) 11 | qrcode: 12 | specifier: ^1.5.1 13 | version: 1.5.4 14 | wechaty: 15 | specifier: ^1.20.2 16 | version: 1.20.2(@swc/core@1.9.3)(brolog@1.14.2)(redux@4.2.1)(rxjs@7.8.1) 17 | wechaty-puppet-wechat: 18 | specifier: ^1.18.4 19 | version: 1.18.4(brolog@1.14.2)(gerror@1.0.16)(wechaty-puppet@1.20.2) 20 | yaml: 21 | specifier: ^2.1.3 22 | version: 2.6.1 23 | 24 | devDependencies: 25 | '@types/qrcode': 26 | specifier: ^1.5.0 27 | version: 1.5.5 28 | nodemon: 29 | specifier: ^2.0.20 30 | version: 2.0.22 31 | pm2: 32 | specifier: ^5.4.2 33 | version: 5.4.3 34 | ts-node: 35 | specifier: ^10.9.1 36 | version: 10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.7.2) 37 | typescript: 38 | specifier: ^5.6.3 39 | version: 5.7.2 40 | 41 | packages: 42 | 43 | /@alloc/quick-lru@5.2.0: 44 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 45 | engines: {node: '>=10'} 46 | dev: false 47 | 48 | /@babel/runtime@7.26.0: 49 | resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} 50 | engines: {node: '>=6.9.0'} 51 | dependencies: 52 | regenerator-runtime: 0.14.1 53 | dev: false 54 | 55 | /@cspotcode/source-map-support@0.8.1: 56 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 57 | engines: {node: '>=12'} 58 | dependencies: 59 | '@jridgewell/trace-mapping': 0.3.9 60 | dev: true 61 | 62 | /@grpc/grpc-js@1.12.2: 63 | resolution: {integrity: sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==} 64 | engines: {node: '>=12.10.0'} 65 | dependencies: 66 | '@grpc/proto-loader': 0.7.13 67 | '@js-sdsl/ordered-map': 4.4.2 68 | dev: false 69 | 70 | /@grpc/proto-loader@0.7.13: 71 | resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} 72 | engines: {node: '>=6'} 73 | hasBin: true 74 | dependencies: 75 | lodash.camelcase: 4.3.0 76 | long: 5.2.3 77 | protobufjs: 7.4.0 78 | yargs: 17.7.2 79 | dev: false 80 | 81 | /@jimp/bmp@0.16.13(@jimp/custom@0.16.13): 82 | resolution: {integrity: sha512-9edAxu7N2FX7vzkdl5Jo1BbACfycUtBQX+XBMcHA2bk62P8R0otgkHg798frgAk/WxQIzwxqOH6wMiCwrlAzdQ==} 83 | peerDependencies: 84 | '@jimp/custom': '>=0.3.5' 85 | dependencies: 86 | '@babel/runtime': 7.26.0 87 | '@jimp/custom': 0.16.13 88 | '@jimp/utils': 0.16.13 89 | bmp-js: 0.1.0 90 | dev: false 91 | 92 | /@jimp/core@0.16.13: 93 | resolution: {integrity: sha512-qXpA1tzTnlkTku9yqtuRtS/wVntvE6f3m3GNxdTdtmc+O+Wcg9Xo2ABPMh7Nc0AHbMKzwvwgB2JnjZmlmJEObg==} 94 | dependencies: 95 | '@babel/runtime': 7.26.0 96 | '@jimp/utils': 0.16.13 97 | any-base: 1.1.0 98 | buffer: 5.7.1 99 | exif-parser: 0.1.12 100 | file-type: 16.5.4 101 | load-bmfont: 1.4.2 102 | mkdirp: 0.5.6 103 | phin: 2.9.3 104 | pixelmatch: 4.0.2 105 | tinycolor2: 1.6.0 106 | transitivePeerDependencies: 107 | - debug 108 | dev: false 109 | 110 | /@jimp/custom@0.16.13: 111 | resolution: {integrity: sha512-LTATglVUPGkPf15zX1wTMlZ0+AU7cGEGF6ekVF1crA8eHUWsGjrYTB+Ht4E3HTrCok8weQG+K01rJndCp/l4XA==} 112 | dependencies: 113 | '@babel/runtime': 7.26.0 114 | '@jimp/core': 0.16.13 115 | transitivePeerDependencies: 116 | - debug 117 | dev: false 118 | 119 | /@jimp/gif@0.16.13(@jimp/custom@0.16.13): 120 | resolution: {integrity: sha512-yFAMZGv3o+YcjXilMWWwS/bv1iSqykFahFMSO169uVMtfQVfa90kt4/kDwrXNR6Q9i6VHpFiGZMlF2UnHClBvg==} 121 | peerDependencies: 122 | '@jimp/custom': '>=0.3.5' 123 | dependencies: 124 | '@babel/runtime': 7.26.0 125 | '@jimp/custom': 0.16.13 126 | '@jimp/utils': 0.16.13 127 | gifwrap: 0.9.4 128 | omggif: 1.0.10 129 | dev: false 130 | 131 | /@jimp/jpeg@0.16.13(@jimp/custom@0.16.13): 132 | resolution: {integrity: sha512-BJHlDxzTlCqP2ThqP8J0eDrbBfod7npWCbJAcfkKqdQuFk0zBPaZ6KKaQKyKxmWJ87Z6ohANZoMKEbtvrwz1AA==} 133 | peerDependencies: 134 | '@jimp/custom': '>=0.3.5' 135 | dependencies: 136 | '@babel/runtime': 7.26.0 137 | '@jimp/custom': 0.16.13 138 | '@jimp/utils': 0.16.13 139 | jpeg-js: 0.4.4 140 | dev: false 141 | 142 | /@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13): 143 | resolution: {integrity: sha512-8Z1k96ZFxlhK2bgrY1JNWNwvaBeI/bciLM0yDOni2+aZwfIIiC7Y6PeWHTAvjHNjphz+XCt01WQmOYWCn0ML6g==} 144 | peerDependencies: 145 | '@jimp/custom': '>=0.3.5' 146 | dependencies: 147 | '@babel/runtime': 7.26.0 148 | '@jimp/custom': 0.16.13 149 | '@jimp/utils': 0.16.13 150 | dev: false 151 | 152 | /@jimp/plugin-blur@0.16.13(@jimp/custom@0.16.13): 153 | resolution: {integrity: sha512-PvLrfa8vkej3qinlebyhLpksJgCF5aiysDMSVhOZqwH5nQLLtDE9WYbnsofGw4r0VVpyw3H/ANCIzYTyCtP9Cg==} 154 | peerDependencies: 155 | '@jimp/custom': '>=0.3.5' 156 | dependencies: 157 | '@babel/runtime': 7.26.0 158 | '@jimp/custom': 0.16.13 159 | '@jimp/utils': 0.16.13 160 | dev: false 161 | 162 | /@jimp/plugin-circle@0.16.13(@jimp/custom@0.16.13): 163 | resolution: {integrity: sha512-RNave7EFgZrb5V5EpdvJGAEHMnDAJuwv05hKscNfIYxf0kR3KhViBTDy+MoTnMlIvaKFULfwIgaZWzyhuINMzA==} 164 | peerDependencies: 165 | '@jimp/custom': '>=0.3.5' 166 | dependencies: 167 | '@babel/runtime': 7.26.0 168 | '@jimp/custom': 0.16.13 169 | '@jimp/utils': 0.16.13 170 | dev: false 171 | 172 | /@jimp/plugin-color@0.16.13(@jimp/custom@0.16.13): 173 | resolution: {integrity: sha512-xW+9BtEvoIkkH/Wde9ql4nAFbYLkVINhpgAE7VcBUsuuB34WUbcBl/taOuUYQrPEFQJ4jfXiAJZ2H/rvKjCVnQ==} 174 | peerDependencies: 175 | '@jimp/custom': '>=0.3.5' 176 | dependencies: 177 | '@babel/runtime': 7.26.0 178 | '@jimp/custom': 0.16.13 179 | '@jimp/utils': 0.16.13 180 | tinycolor2: 1.6.0 181 | dev: false 182 | 183 | /@jimp/plugin-contain@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13): 184 | resolution: {integrity: sha512-QayTXw4tXMwU6q6acNTQrTTFTXpNRBe+MgTGMDU0lk+23PjlFCO/9sacflelG8lsp7vNHhAxFeHptDMAksEYzg==} 185 | peerDependencies: 186 | '@jimp/custom': '>=0.3.5' 187 | '@jimp/plugin-blit': '>=0.3.5' 188 | '@jimp/plugin-resize': '>=0.3.5' 189 | '@jimp/plugin-scale': '>=0.3.5' 190 | dependencies: 191 | '@babel/runtime': 7.26.0 192 | '@jimp/custom': 0.16.13 193 | '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) 194 | '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) 195 | '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13) 196 | '@jimp/utils': 0.16.13 197 | dev: false 198 | 199 | /@jimp/plugin-cover@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13): 200 | resolution: {integrity: sha512-BSsP71GTNaqWRcvkbWuIVH+zK7b3TSNebbhDkFK0fVaUTzHuKMS/mgY4hDZIEVt7Rf5FjadAYtsujHN9w0iSYA==} 201 | peerDependencies: 202 | '@jimp/custom': '>=0.3.5' 203 | '@jimp/plugin-crop': '>=0.3.5' 204 | '@jimp/plugin-resize': '>=0.3.5' 205 | '@jimp/plugin-scale': '>=0.3.5' 206 | dependencies: 207 | '@babel/runtime': 7.26.0 208 | '@jimp/custom': 0.16.13 209 | '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) 210 | '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) 211 | '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13) 212 | '@jimp/utils': 0.16.13 213 | dev: false 214 | 215 | /@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13): 216 | resolution: {integrity: sha512-WEl2tPVYwzYL8OKme6Go2xqiWgKsgxlMwyHabdAU4tXaRwOCnOI7v4021gCcBb9zn/oWwguHuKHmK30Fw2Z/PA==} 217 | peerDependencies: 218 | '@jimp/custom': '>=0.3.5' 219 | dependencies: 220 | '@babel/runtime': 7.26.0 221 | '@jimp/custom': 0.16.13 222 | '@jimp/utils': 0.16.13 223 | dev: false 224 | 225 | /@jimp/plugin-displace@0.16.13(@jimp/custom@0.16.13): 226 | resolution: {integrity: sha512-qt9WKq8vWrcjySa9DyQ0x/RBMHQeiVjdVSY1SJsMjssPUf0pS74qorcuAkGi89biN3YoGUgPkpqECnAWnYwgGA==} 227 | peerDependencies: 228 | '@jimp/custom': '>=0.3.5' 229 | dependencies: 230 | '@babel/runtime': 7.26.0 231 | '@jimp/custom': 0.16.13 232 | '@jimp/utils': 0.16.13 233 | dev: false 234 | 235 | /@jimp/plugin-dither@0.16.13(@jimp/custom@0.16.13): 236 | resolution: {integrity: sha512-5/N3yJggbWQTlGZHQYJPmQXEwR52qaXjEzkp1yRBbtdaekXE3BG/suo0fqeoV/csf8ooI78sJzYmIrxNoWVtgQ==} 237 | peerDependencies: 238 | '@jimp/custom': '>=0.3.5' 239 | dependencies: 240 | '@babel/runtime': 7.26.0 241 | '@jimp/custom': 0.16.13 242 | '@jimp/utils': 0.16.13 243 | dev: false 244 | 245 | /@jimp/plugin-fisheye@0.16.13(@jimp/custom@0.16.13): 246 | resolution: {integrity: sha512-2rZmTdFbT/cF9lEZIkXCYO0TsT114Q27AX5IAo0Sju6jVQbvIk1dFUTnwLDadTo8wkJlFzGqMQ24Cs8cHWOliA==} 247 | peerDependencies: 248 | '@jimp/custom': '>=0.3.5' 249 | dependencies: 250 | '@babel/runtime': 7.26.0 251 | '@jimp/custom': 0.16.13 252 | '@jimp/utils': 0.16.13 253 | dev: false 254 | 255 | /@jimp/plugin-flip@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-rotate@0.16.13): 256 | resolution: {integrity: sha512-EmcgAA74FTc5u7Z+hUO/sRjWwfPPLuOQP5O64x5g4j0T12Bd29IgsYZxoutZo/rb3579+JNa/3wsSEmyVv1EpA==} 257 | peerDependencies: 258 | '@jimp/custom': '>=0.3.5' 259 | '@jimp/plugin-rotate': '>=0.3.5' 260 | dependencies: 261 | '@babel/runtime': 7.26.0 262 | '@jimp/custom': 0.16.13 263 | '@jimp/plugin-rotate': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13) 264 | '@jimp/utils': 0.16.13 265 | dev: false 266 | 267 | /@jimp/plugin-gaussian@0.16.13(@jimp/custom@0.16.13): 268 | resolution: {integrity: sha512-A1XKfGQD0iDdIiKqFYi8nZMv4dDVYdxbrmgR7y/CzUHhSYdcmoljLIIsZZM3Iks/Wa353W3vtvkWLuDbQbch1w==} 269 | peerDependencies: 270 | '@jimp/custom': '>=0.3.5' 271 | dependencies: 272 | '@babel/runtime': 7.26.0 273 | '@jimp/custom': 0.16.13 274 | '@jimp/utils': 0.16.13 275 | dev: false 276 | 277 | /@jimp/plugin-invert@0.16.13(@jimp/custom@0.16.13): 278 | resolution: {integrity: sha512-xFMrIn7czEZbdbMzZWuaZFnlLGJDVJ82y5vlsKsXRTG2kcxRsMPXvZRWHV57nSs1YFsNqXSbrC8B98n0E32njQ==} 279 | peerDependencies: 280 | '@jimp/custom': '>=0.3.5' 281 | dependencies: 282 | '@babel/runtime': 7.26.0 283 | '@jimp/custom': 0.16.13 284 | '@jimp/utils': 0.16.13 285 | dev: false 286 | 287 | /@jimp/plugin-mask@0.16.13(@jimp/custom@0.16.13): 288 | resolution: {integrity: sha512-wLRYKVBXql2GAYgt6FkTnCfE+q5NomM7Dlh0oIPGAoMBWDyTx0eYutRK6PlUrRK2yMHuroAJCglICTbxqGzowQ==} 289 | peerDependencies: 290 | '@jimp/custom': '>=0.3.5' 291 | dependencies: 292 | '@babel/runtime': 7.26.0 293 | '@jimp/custom': 0.16.13 294 | '@jimp/utils': 0.16.13 295 | dev: false 296 | 297 | /@jimp/plugin-normalize@0.16.13(@jimp/custom@0.16.13): 298 | resolution: {integrity: sha512-3tfad0n9soRna4IfW9NzQdQ2Z3ijkmo21DREHbE6CGcMIxOSvfRdSvf1qQPApxjTSo8LTU4MCi/fidx/NZ0GqQ==} 299 | peerDependencies: 300 | '@jimp/custom': '>=0.3.5' 301 | dependencies: 302 | '@babel/runtime': 7.26.0 303 | '@jimp/custom': 0.16.13 304 | '@jimp/utils': 0.16.13 305 | dev: false 306 | 307 | /@jimp/plugin-print@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13): 308 | resolution: {integrity: sha512-0m6i3p01PGRkGAK9r53hDYrkyMq+tlhLOIbsSTmZyh6HLshUKlTB7eXskF5OpVd5ZUHoltlNc6R+ggvKIzxRFw==} 309 | peerDependencies: 310 | '@jimp/custom': '>=0.3.5' 311 | '@jimp/plugin-blit': '>=0.3.5' 312 | dependencies: 313 | '@babel/runtime': 7.26.0 314 | '@jimp/custom': 0.16.13 315 | '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) 316 | '@jimp/utils': 0.16.13 317 | load-bmfont: 1.4.2 318 | transitivePeerDependencies: 319 | - debug 320 | dev: false 321 | 322 | /@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13): 323 | resolution: {integrity: sha512-qoqtN8LDknm3fJm9nuPygJv30O3vGhSBD2TxrsCnhtOsxKAqVPJtFVdGd/qVuZ8nqQANQmTlfqTiK9mVWQ7MiQ==} 324 | peerDependencies: 325 | '@jimp/custom': '>=0.3.5' 326 | dependencies: 327 | '@babel/runtime': 7.26.0 328 | '@jimp/custom': 0.16.13 329 | '@jimp/utils': 0.16.13 330 | dev: false 331 | 332 | /@jimp/plugin-rotate@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13): 333 | resolution: {integrity: sha512-Ev+Jjmj1nHYw897z9C3R9dYsPv7S2/nxdgfFb/h8hOwK0Ovd1k/+yYS46A0uj/JCKK0pQk8wOslYBkPwdnLorw==} 334 | peerDependencies: 335 | '@jimp/custom': '>=0.3.5' 336 | '@jimp/plugin-blit': '>=0.3.5' 337 | '@jimp/plugin-crop': '>=0.3.5' 338 | '@jimp/plugin-resize': '>=0.3.5' 339 | dependencies: 340 | '@babel/runtime': 7.26.0 341 | '@jimp/custom': 0.16.13 342 | '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) 343 | '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) 344 | '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) 345 | '@jimp/utils': 0.16.13 346 | dev: false 347 | 348 | /@jimp/plugin-scale@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13): 349 | resolution: {integrity: sha512-05POQaEJVucjTiSGMoH68ZiELc7QqpIpuQlZ2JBbhCV+WCbPFUBcGSmE7w4Jd0E2GvCho/NoMODLwgcVGQA97A==} 350 | peerDependencies: 351 | '@jimp/custom': '>=0.3.5' 352 | '@jimp/plugin-resize': '>=0.3.5' 353 | dependencies: 354 | '@babel/runtime': 7.26.0 355 | '@jimp/custom': 0.16.13 356 | '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) 357 | '@jimp/utils': 0.16.13 358 | dev: false 359 | 360 | /@jimp/plugin-shadow@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blur@0.16.13)(@jimp/plugin-resize@0.16.13): 361 | resolution: {integrity: sha512-nmu5VSZ9hsB1JchTKhnnCY+paRBnwzSyK5fhkhtQHHoFD5ArBQ/5wU8y6tCr7k/GQhhGq1OrixsECeMjPoc8Zw==} 362 | peerDependencies: 363 | '@jimp/custom': '>=0.3.5' 364 | '@jimp/plugin-blur': '>=0.3.5' 365 | '@jimp/plugin-resize': '>=0.3.5' 366 | dependencies: 367 | '@babel/runtime': 7.26.0 368 | '@jimp/custom': 0.16.13 369 | '@jimp/plugin-blur': 0.16.13(@jimp/custom@0.16.13) 370 | '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) 371 | '@jimp/utils': 0.16.13 372 | dev: false 373 | 374 | /@jimp/plugin-threshold@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-color@0.16.13)(@jimp/plugin-resize@0.16.13): 375 | resolution: {integrity: sha512-+3zArBH0OE3Rhjm4HyAokMsZlIq5gpQec33CncyoSwxtRBM2WAhUVmCUKuBo+Lr/2/4ISoY4BWpHKhMLDix6cA==} 376 | peerDependencies: 377 | '@jimp/custom': '>=0.3.5' 378 | '@jimp/plugin-color': '>=0.8.0' 379 | '@jimp/plugin-resize': '>=0.8.0' 380 | dependencies: 381 | '@babel/runtime': 7.26.0 382 | '@jimp/custom': 0.16.13 383 | '@jimp/plugin-color': 0.16.13(@jimp/custom@0.16.13) 384 | '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) 385 | '@jimp/utils': 0.16.13 386 | dev: false 387 | 388 | /@jimp/plugins@0.16.13(@jimp/custom@0.16.13): 389 | resolution: {integrity: sha512-CJLdqODEhEVs4MgWCxpWL5l95sCBlkuSLz65cxEm56X5akIsn4LOlwnKoSEZioYcZUBvHhCheH67AyPTudfnQQ==} 390 | peerDependencies: 391 | '@jimp/custom': '>=0.3.5' 392 | dependencies: 393 | '@babel/runtime': 7.26.0 394 | '@jimp/custom': 0.16.13 395 | '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) 396 | '@jimp/plugin-blur': 0.16.13(@jimp/custom@0.16.13) 397 | '@jimp/plugin-circle': 0.16.13(@jimp/custom@0.16.13) 398 | '@jimp/plugin-color': 0.16.13(@jimp/custom@0.16.13) 399 | '@jimp/plugin-contain': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13) 400 | '@jimp/plugin-cover': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13) 401 | '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) 402 | '@jimp/plugin-displace': 0.16.13(@jimp/custom@0.16.13) 403 | '@jimp/plugin-dither': 0.16.13(@jimp/custom@0.16.13) 404 | '@jimp/plugin-fisheye': 0.16.13(@jimp/custom@0.16.13) 405 | '@jimp/plugin-flip': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-rotate@0.16.13) 406 | '@jimp/plugin-gaussian': 0.16.13(@jimp/custom@0.16.13) 407 | '@jimp/plugin-invert': 0.16.13(@jimp/custom@0.16.13) 408 | '@jimp/plugin-mask': 0.16.13(@jimp/custom@0.16.13) 409 | '@jimp/plugin-normalize': 0.16.13(@jimp/custom@0.16.13) 410 | '@jimp/plugin-print': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13) 411 | '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) 412 | '@jimp/plugin-rotate': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13) 413 | '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13) 414 | '@jimp/plugin-shadow': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blur@0.16.13)(@jimp/plugin-resize@0.16.13) 415 | '@jimp/plugin-threshold': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-color@0.16.13)(@jimp/plugin-resize@0.16.13) 416 | timm: 1.7.1 417 | transitivePeerDependencies: 418 | - debug 419 | dev: false 420 | 421 | /@jimp/png@0.16.13(@jimp/custom@0.16.13): 422 | resolution: {integrity: sha512-8cGqINvbWJf1G0Her9zbq9I80roEX0A+U45xFby3tDWfzn+Zz8XKDF1Nv9VUwVx0N3zpcG1RPs9hfheG4Cq2kg==} 423 | peerDependencies: 424 | '@jimp/custom': '>=0.3.5' 425 | dependencies: 426 | '@babel/runtime': 7.26.0 427 | '@jimp/custom': 0.16.13 428 | '@jimp/utils': 0.16.13 429 | pngjs: 3.4.0 430 | dev: false 431 | 432 | /@jimp/tiff@0.16.13(@jimp/custom@0.16.13): 433 | resolution: {integrity: sha512-oJY8d9u95SwW00VPHuCNxPap6Q1+E/xM5QThb9Hu+P6EGuu6lIeLaNBMmFZyblwFbwrH+WBOZlvIzDhi4Dm/6Q==} 434 | peerDependencies: 435 | '@jimp/custom': '>=0.3.5' 436 | dependencies: 437 | '@babel/runtime': 7.26.0 438 | '@jimp/custom': 0.16.13 439 | utif: 2.0.1 440 | dev: false 441 | 442 | /@jimp/types@0.16.13(@jimp/custom@0.16.13): 443 | resolution: {integrity: sha512-mC0yVNUobFDjoYLg4hoUwzMKgNlxynzwt3cDXzumGvRJ7Kb8qQGOWJQjQFo5OxmGExqzPphkirdbBF88RVLBCg==} 444 | peerDependencies: 445 | '@jimp/custom': '>=0.3.5' 446 | dependencies: 447 | '@babel/runtime': 7.26.0 448 | '@jimp/bmp': 0.16.13(@jimp/custom@0.16.13) 449 | '@jimp/custom': 0.16.13 450 | '@jimp/gif': 0.16.13(@jimp/custom@0.16.13) 451 | '@jimp/jpeg': 0.16.13(@jimp/custom@0.16.13) 452 | '@jimp/png': 0.16.13(@jimp/custom@0.16.13) 453 | '@jimp/tiff': 0.16.13(@jimp/custom@0.16.13) 454 | timm: 1.7.1 455 | dev: false 456 | 457 | /@jimp/utils@0.16.13: 458 | resolution: {integrity: sha512-VyCpkZzFTHXtKgVO35iKN0sYR10psGpV6SkcSeV4oF7eSYlR8Bl6aQLCzVeFjvESF7mxTmIiI3/XrMobVrtxDA==} 459 | dependencies: 460 | '@babel/runtime': 7.26.0 461 | regenerator-runtime: 0.13.11 462 | dev: false 463 | 464 | /@jridgewell/resolve-uri@3.1.2: 465 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 466 | engines: {node: '>=6.0.0'} 467 | dev: true 468 | 469 | /@jridgewell/sourcemap-codec@1.5.0: 470 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 471 | dev: true 472 | 473 | /@jridgewell/trace-mapping@0.3.9: 474 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 475 | dependencies: 476 | '@jridgewell/resolve-uri': 3.1.2 477 | '@jridgewell/sourcemap-codec': 1.5.0 478 | dev: true 479 | 480 | /@js-sdsl/ordered-map@4.4.2: 481 | resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} 482 | dev: false 483 | 484 | /@pipeletteio/nop@1.0.5: 485 | resolution: {integrity: sha512-ZnSPIltu/KFPTJXRpeoLGgtJZbUjmImx8n1AP6fWQ5RgxWfiF5EcbNGUA6VZglQ/SOQ+vyvhRTYnffwCCTR46w==} 486 | engines: {node: '>= 12.0.0'} 487 | dev: false 488 | 489 | /@pm2/agent@2.0.4: 490 | resolution: {integrity: sha512-n7WYvvTJhHLS2oBb1PjOtgLpMhgImOq8sXkPBw6smeg9LJBWZjiEgPKOpR8mn9UJZsB5P3W4V/MyvNnp31LKeA==} 491 | dependencies: 492 | async: 3.2.6 493 | chalk: 3.0.0 494 | dayjs: 1.8.36 495 | debug: 4.3.7 496 | eventemitter2: 5.0.1 497 | fast-json-patch: 3.1.1 498 | fclone: 1.0.11 499 | nssocket: 0.6.0 500 | pm2-axon: 4.0.1 501 | pm2-axon-rpc: 0.7.1 502 | proxy-agent: 6.3.1 503 | semver: 7.5.4 504 | ws: 7.5.10 505 | transitivePeerDependencies: 506 | - bufferutil 507 | - supports-color 508 | - utf-8-validate 509 | dev: true 510 | 511 | /@pm2/io@6.0.1: 512 | resolution: {integrity: sha512-KiA+shC6sULQAr9mGZ1pg+6KVW9MF8NpG99x26Lf/082/Qy8qsTCtnJy+HQReW1A9Rdf0C/404cz0RZGZro+IA==} 513 | engines: {node: '>=6.0'} 514 | dependencies: 515 | async: 2.6.4 516 | debug: 4.3.7 517 | eventemitter2: 6.4.9 518 | require-in-the-middle: 5.2.0 519 | semver: 7.5.4 520 | shimmer: 1.2.1 521 | signal-exit: 3.0.7 522 | tslib: 1.9.3 523 | transitivePeerDependencies: 524 | - supports-color 525 | dev: true 526 | 527 | /@pm2/js-api@0.8.0: 528 | resolution: {integrity: sha512-nmWzrA/BQZik3VBz+npRcNIu01kdBhWL0mxKmP1ciF/gTcujPTQqt027N9fc1pK9ERM8RipFhymw7RcmCyOEYA==} 529 | engines: {node: '>=4.0'} 530 | dependencies: 531 | async: 2.6.4 532 | debug: 4.3.7 533 | eventemitter2: 6.4.9 534 | extrareqp2: 1.0.0(debug@4.3.7) 535 | ws: 7.5.10 536 | transitivePeerDependencies: 537 | - bufferutil 538 | - supports-color 539 | - utf-8-validate 540 | dev: true 541 | 542 | /@pm2/pm2-version-check@1.0.4: 543 | resolution: {integrity: sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==} 544 | dependencies: 545 | debug: 4.3.7 546 | transitivePeerDependencies: 547 | - supports-color 548 | dev: true 549 | 550 | /@protobufjs/aspromise@1.1.2: 551 | resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} 552 | dev: false 553 | 554 | /@protobufjs/base64@1.1.2: 555 | resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} 556 | dev: false 557 | 558 | /@protobufjs/codegen@2.0.4: 559 | resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} 560 | dev: false 561 | 562 | /@protobufjs/eventemitter@1.1.0: 563 | resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} 564 | dev: false 565 | 566 | /@protobufjs/fetch@1.1.0: 567 | resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} 568 | dependencies: 569 | '@protobufjs/aspromise': 1.1.2 570 | '@protobufjs/inquire': 1.1.0 571 | dev: false 572 | 573 | /@protobufjs/float@1.0.2: 574 | resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} 575 | dev: false 576 | 577 | /@protobufjs/inquire@1.1.0: 578 | resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} 579 | dev: false 580 | 581 | /@protobufjs/path@1.1.2: 582 | resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} 583 | dev: false 584 | 585 | /@protobufjs/pool@1.1.0: 586 | resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} 587 | dev: false 588 | 589 | /@protobufjs/utf8@1.1.0: 590 | resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} 591 | dev: false 592 | 593 | /@swc/core-darwin-arm64@1.9.3: 594 | resolution: {integrity: sha512-hGfl/KTic/QY4tB9DkTbNuxy5cV4IeejpPD4zo+Lzt4iLlDWIeANL4Fkg67FiVceNJboqg48CUX+APhDHO5G1w==} 595 | engines: {node: '>=10'} 596 | cpu: [arm64] 597 | os: [darwin] 598 | requiresBuild: true 599 | optional: true 600 | 601 | /@swc/core-darwin-x64@1.9.3: 602 | resolution: {integrity: sha512-IaRq05ZLdtgF5h9CzlcgaNHyg4VXuiStnOFpfNEMuI5fm5afP2S0FHq8WdakUz5WppsbddTdplL+vpeApt/WCQ==} 603 | engines: {node: '>=10'} 604 | cpu: [x64] 605 | os: [darwin] 606 | requiresBuild: true 607 | optional: true 608 | 609 | /@swc/core-linux-arm-gnueabihf@1.9.3: 610 | resolution: {integrity: sha512-Pbwe7xYprj/nEnZrNBvZfjnTxlBIcfApAGdz2EROhjpPj+FBqBa3wOogqbsuGGBdCphf8S+KPprL1z+oDWkmSQ==} 611 | engines: {node: '>=10'} 612 | cpu: [arm] 613 | os: [linux] 614 | requiresBuild: true 615 | optional: true 616 | 617 | /@swc/core-linux-arm64-gnu@1.9.3: 618 | resolution: {integrity: sha512-AQ5JZiwNGVV/2K2TVulg0mw/3LYfqpjZO6jDPtR2evNbk9Yt57YsVzS+3vHSlUBQDRV9/jqMuZYVU3P13xrk+g==} 619 | engines: {node: '>=10'} 620 | cpu: [arm64] 621 | os: [linux] 622 | libc: [glibc] 623 | requiresBuild: true 624 | optional: true 625 | 626 | /@swc/core-linux-arm64-musl@1.9.3: 627 | resolution: {integrity: sha512-tzVH480RY6RbMl/QRgh5HK3zn1ZTFsThuxDGo6Iuk1MdwIbdFYUY034heWUTI4u3Db97ArKh0hNL0xhO3+PZdg==} 628 | engines: {node: '>=10'} 629 | cpu: [arm64] 630 | os: [linux] 631 | libc: [musl] 632 | requiresBuild: true 633 | optional: true 634 | 635 | /@swc/core-linux-x64-gnu@1.9.3: 636 | resolution: {integrity: sha512-ivXXBRDXDc9k4cdv10R21ccBmGebVOwKXT/UdH1PhxUn9m/h8erAWjz5pcELwjiMf27WokqPgaWVfaclDbgE+w==} 637 | engines: {node: '>=10'} 638 | cpu: [x64] 639 | os: [linux] 640 | libc: [glibc] 641 | requiresBuild: true 642 | optional: true 643 | 644 | /@swc/core-linux-x64-musl@1.9.3: 645 | resolution: {integrity: sha512-ILsGMgfnOz1HwdDz+ZgEuomIwkP1PHT6maigZxaCIuC6OPEhKE8uYna22uU63XvYcLQvZYDzpR3ms47WQPuNEg==} 646 | engines: {node: '>=10'} 647 | cpu: [x64] 648 | os: [linux] 649 | libc: [musl] 650 | requiresBuild: true 651 | optional: true 652 | 653 | /@swc/core-win32-arm64-msvc@1.9.3: 654 | resolution: {integrity: sha512-e+XmltDVIHieUnNJHtspn6B+PCcFOMYXNJB1GqoCcyinkEIQNwC8KtWgMqUucUbEWJkPc35NHy9k8aCXRmw9Kg==} 655 | engines: {node: '>=10'} 656 | cpu: [arm64] 657 | os: [win32] 658 | requiresBuild: true 659 | optional: true 660 | 661 | /@swc/core-win32-ia32-msvc@1.9.3: 662 | resolution: {integrity: sha512-rqpzNfpAooSL4UfQnHhkW8aL+oyjqJniDP0qwZfGnjDoJSbtPysHg2LpcOBEdSnEH+uIZq6J96qf0ZFD8AGfXA==} 663 | engines: {node: '>=10'} 664 | cpu: [ia32] 665 | os: [win32] 666 | requiresBuild: true 667 | optional: true 668 | 669 | /@swc/core-win32-x64-msvc@1.9.3: 670 | resolution: {integrity: sha512-3YJJLQ5suIEHEKc1GHtqVq475guiyqisKSoUnoaRtxkDaW5g1yvPt9IoSLOe2mRs7+FFhGGU693RsBUSwOXSdQ==} 671 | engines: {node: '>=10'} 672 | cpu: [x64] 673 | os: [win32] 674 | requiresBuild: true 675 | optional: true 676 | 677 | /@swc/core@1.9.3: 678 | resolution: {integrity: sha512-oRj0AFePUhtatX+BscVhnzaAmWjpfAeySpM1TCbxA1rtBDeH/JDhi5yYzAKneDYtVtBvA7ApfeuzhMC9ye4xSg==} 679 | engines: {node: '>=10'} 680 | requiresBuild: true 681 | peerDependencies: 682 | '@swc/helpers': '*' 683 | peerDependenciesMeta: 684 | '@swc/helpers': 685 | optional: true 686 | dependencies: 687 | '@swc/counter': 0.1.3 688 | '@swc/types': 0.1.17 689 | optionalDependencies: 690 | '@swc/core-darwin-arm64': 1.9.3 691 | '@swc/core-darwin-x64': 1.9.3 692 | '@swc/core-linux-arm-gnueabihf': 1.9.3 693 | '@swc/core-linux-arm64-gnu': 1.9.3 694 | '@swc/core-linux-arm64-musl': 1.9.3 695 | '@swc/core-linux-x64-gnu': 1.9.3 696 | '@swc/core-linux-x64-musl': 1.9.3 697 | '@swc/core-win32-arm64-msvc': 1.9.3 698 | '@swc/core-win32-ia32-msvc': 1.9.3 699 | '@swc/core-win32-x64-msvc': 1.9.3 700 | 701 | /@swc/counter@0.1.3: 702 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 703 | 704 | /@swc/types@0.1.17: 705 | resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} 706 | dependencies: 707 | '@swc/counter': 0.1.3 708 | 709 | /@tokenizer/token@0.3.0: 710 | resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} 711 | dev: false 712 | 713 | /@tootallnate/quickjs-emscripten@0.23.0: 714 | resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} 715 | dev: true 716 | 717 | /@tsconfig/node10@1.0.11: 718 | resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} 719 | dev: true 720 | 721 | /@tsconfig/node12@1.0.11: 722 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 723 | dev: true 724 | 725 | /@tsconfig/node14@1.0.3: 726 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 727 | dev: true 728 | 729 | /@tsconfig/node16@1.0.4: 730 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} 731 | dev: true 732 | 733 | /@types/debug@4.1.12: 734 | resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} 735 | dependencies: 736 | '@types/ms': 0.7.34 737 | dev: false 738 | 739 | /@types/ms@0.7.34: 740 | resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} 741 | dev: false 742 | 743 | /@types/node@13.13.52: 744 | resolution: {integrity: sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==} 745 | dev: false 746 | 747 | /@types/node@16.9.1: 748 | resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} 749 | dev: false 750 | 751 | /@types/node@22.10.1: 752 | resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} 753 | dependencies: 754 | undici-types: 6.20.0 755 | 756 | /@types/qrcode@1.5.5: 757 | resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==} 758 | dependencies: 759 | '@types/node': 22.10.1 760 | dev: true 761 | 762 | /@types/yauzl@2.10.3: 763 | resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} 764 | requiresBuild: true 765 | dependencies: 766 | '@types/node': 22.10.1 767 | dev: false 768 | optional: true 769 | 770 | /abstract-leveldown@7.2.0: 771 | resolution: {integrity: sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==} 772 | engines: {node: '>=10'} 773 | deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) 774 | dependencies: 775 | buffer: 6.0.3 776 | catering: 2.1.1 777 | is-buffer: 2.0.5 778 | level-concat-iterator: 3.1.0 779 | level-supports: 2.1.0 780 | queue-microtask: 1.2.3 781 | dev: false 782 | 783 | /acorn-walk@8.3.4: 784 | resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} 785 | engines: {node: '>=0.4.0'} 786 | dependencies: 787 | acorn: 8.14.0 788 | dev: true 789 | 790 | /acorn@8.14.0: 791 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 792 | engines: {node: '>=0.4.0'} 793 | hasBin: true 794 | dev: true 795 | 796 | /agent-base@6.0.2: 797 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} 798 | engines: {node: '>= 6.0.0'} 799 | dependencies: 800 | debug: 4.3.7 801 | transitivePeerDependencies: 802 | - supports-color 803 | dev: false 804 | 805 | /agent-base@7.1.1: 806 | resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} 807 | engines: {node: '>= 14'} 808 | dependencies: 809 | debug: 4.3.7 810 | transitivePeerDependencies: 811 | - supports-color 812 | dev: true 813 | 814 | /ajv@6.12.6: 815 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 816 | dependencies: 817 | fast-deep-equal: 3.1.3 818 | fast-json-stable-stringify: 2.1.0 819 | json-schema-traverse: 0.4.1 820 | uri-js: 4.4.1 821 | dev: false 822 | 823 | /amp-message@0.1.2: 824 | resolution: {integrity: sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==} 825 | dependencies: 826 | amp: 0.3.1 827 | dev: true 828 | 829 | /amp@0.3.1: 830 | resolution: {integrity: sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw==} 831 | dev: true 832 | 833 | /ansi-colors@4.1.3: 834 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 835 | engines: {node: '>=6'} 836 | dev: true 837 | 838 | /ansi-regex@5.0.1: 839 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 840 | engines: {node: '>=8'} 841 | dev: false 842 | 843 | /ansi-styles@4.3.0: 844 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 845 | engines: {node: '>=8'} 846 | dependencies: 847 | color-convert: 2.0.1 848 | 849 | /any-base@1.1.0: 850 | resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} 851 | dev: false 852 | 853 | /anymatch@3.1.3: 854 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 855 | engines: {node: '>= 8'} 856 | dependencies: 857 | normalize-path: 3.0.0 858 | picomatch: 2.3.1 859 | dev: true 860 | 861 | /arg@4.1.3: 862 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 863 | dev: true 864 | 865 | /argparse@2.0.1: 866 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 867 | dev: true 868 | 869 | /arr-union@3.1.0: 870 | resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} 871 | engines: {node: '>=0.10.0'} 872 | dev: false 873 | 874 | /asn1@0.2.6: 875 | resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} 876 | dependencies: 877 | safer-buffer: 2.1.2 878 | dev: false 879 | 880 | /assert-plus@1.0.0: 881 | resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} 882 | engines: {node: '>=0.8'} 883 | dev: false 884 | 885 | /ast-types@0.13.4: 886 | resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} 887 | engines: {node: '>=4'} 888 | dependencies: 889 | tslib: 2.8.1 890 | dev: true 891 | 892 | /async-map-like@0.2.5: 893 | resolution: {integrity: sha512-YZ8aOg6pEQ5g5f7RCNFBPIdcS8UcAw2oM1uEfhq6GH/MgqnsyIssb/ihhsZiNmgIUaJihn9HVfoZWkM7XQ5l9w==} 894 | engines: {node: '>= 12'} 895 | dev: false 896 | 897 | /async-map-like@1.0.2: 898 | resolution: {integrity: sha512-TfbF6NQOVZPKGXhQmfh8gOzC7+XSBGmqU6eqRoMdc4soScKkkui5ZwV40A4Scc3fWP+zZ5qJjOXzCuksUWqluA==} 899 | engines: {node: '>=16', npm: '>=7'} 900 | dev: false 901 | 902 | /async@2.6.4: 903 | resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} 904 | dependencies: 905 | lodash: 4.17.21 906 | dev: true 907 | 908 | /async@3.2.6: 909 | resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} 910 | dev: true 911 | 912 | /asynckit@0.4.0: 913 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 914 | dev: false 915 | 916 | /aws-sign2@0.7.0: 917 | resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} 918 | dev: false 919 | 920 | /aws4@1.13.2: 921 | resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} 922 | dev: false 923 | 924 | /axios@1.7.8(debug@2.6.9): 925 | resolution: {integrity: sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==} 926 | dependencies: 927 | follow-redirects: 1.15.9(debug@2.6.9) 928 | form-data: 4.0.1 929 | proxy-from-env: 1.1.0 930 | transitivePeerDependencies: 931 | - debug 932 | dev: false 933 | 934 | /balanced-match@1.0.2: 935 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 936 | 937 | /base64-js@1.5.1: 938 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 939 | dev: false 940 | 941 | /basic-ftp@5.0.5: 942 | resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} 943 | engines: {node: '>=10.0.0'} 944 | dev: true 945 | 946 | /bcrypt-pbkdf@1.0.2: 947 | resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} 948 | dependencies: 949 | tweetnacl: 0.14.5 950 | dev: false 951 | 952 | /binary-extensions@2.3.0: 953 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 954 | engines: {node: '>=8'} 955 | dev: true 956 | 957 | /bl@1.2.3: 958 | resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} 959 | dependencies: 960 | readable-stream: 2.3.8 961 | safe-buffer: 5.2.1 962 | dev: false 963 | 964 | /bl@4.1.0: 965 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 966 | dependencies: 967 | buffer: 5.7.1 968 | inherits: 2.0.4 969 | readable-stream: 3.6.2 970 | dev: false 971 | 972 | /blessed@0.1.81: 973 | resolution: {integrity: sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==} 974 | engines: {node: '>= 0.8.0'} 975 | hasBin: true 976 | dev: true 977 | 978 | /bmp-js@0.1.0: 979 | resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} 980 | dev: false 981 | 982 | /bodec@0.1.0: 983 | resolution: {integrity: sha512-Ylo+MAo5BDUq1KA3f3R/MFhh+g8cnHmo8bz3YPGhI1znrMaf77ol1sfvYJzsw3nTE+Y2GryfDxBaR+AqpAkEHQ==} 984 | dev: true 985 | 986 | /boolbase@1.0.0: 987 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 988 | dev: false 989 | 990 | /brace-expansion@1.1.11: 991 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 992 | dependencies: 993 | balanced-match: 1.0.2 994 | concat-map: 0.0.1 995 | 996 | /braces@3.0.3: 997 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 998 | engines: {node: '>=8'} 999 | dependencies: 1000 | fill-range: 7.1.1 1001 | dev: true 1002 | 1003 | /brolog@1.14.2: 1004 | resolution: {integrity: sha512-zUMVJsef1zPUJ9YRKQia1/O8wKOkOWT8gaSfKmISPqg5adGanQ2iQHoEIAJN1glxPYAq8sV1sazwRrMnbpHpBw==} 1005 | engines: {node: '>=16', npm: '>=7'} 1006 | dependencies: 1007 | '@pipeletteio/nop': 1.0.5 1008 | dev: false 1009 | 1010 | /buffer-crc32@0.2.13: 1011 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 1012 | dev: false 1013 | 1014 | /buffer-equal@0.0.1: 1015 | resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} 1016 | engines: {node: '>=0.4.0'} 1017 | dev: false 1018 | 1019 | /buffer-from@1.1.2: 1020 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1021 | dev: true 1022 | 1023 | /buffer@5.7.1: 1024 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 1025 | dependencies: 1026 | base64-js: 1.5.1 1027 | ieee754: 1.2.1 1028 | dev: false 1029 | 1030 | /buffer@6.0.3: 1031 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 1032 | dependencies: 1033 | base64-js: 1.5.1 1034 | ieee754: 1.2.1 1035 | dev: false 1036 | 1037 | /camelcase@5.3.1: 1038 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 1039 | engines: {node: '>=6'} 1040 | dev: false 1041 | 1042 | /caseless@0.12.0: 1043 | resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} 1044 | dev: false 1045 | 1046 | /catering@2.1.1: 1047 | resolution: {integrity: sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==} 1048 | engines: {node: '>=6'} 1049 | dev: false 1050 | 1051 | /centra@2.7.0: 1052 | resolution: {integrity: sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==} 1053 | dependencies: 1054 | follow-redirects: 1.15.9(debug@2.6.9) 1055 | transitivePeerDependencies: 1056 | - debug 1057 | dev: false 1058 | 1059 | /chalk@3.0.0: 1060 | resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} 1061 | engines: {node: '>=8'} 1062 | dependencies: 1063 | ansi-styles: 4.3.0 1064 | supports-color: 7.2.0 1065 | dev: true 1066 | 1067 | /chalk@4.1.2: 1068 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1069 | engines: {node: '>=10'} 1070 | dependencies: 1071 | ansi-styles: 4.3.0 1072 | supports-color: 7.2.0 1073 | dev: false 1074 | 1075 | /charenc@0.0.2: 1076 | resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} 1077 | dev: false 1078 | 1079 | /charm@0.1.2: 1080 | resolution: {integrity: sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==} 1081 | dev: true 1082 | 1083 | /cheerio@0.22.0: 1084 | resolution: {integrity: sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==} 1085 | engines: {node: '>= 0.6'} 1086 | dependencies: 1087 | css-select: 1.2.0 1088 | dom-serializer: 0.1.1 1089 | entities: 1.1.2 1090 | htmlparser2: 3.10.1 1091 | lodash.assignin: 4.2.0 1092 | lodash.bind: 4.2.1 1093 | lodash.defaults: 4.2.0 1094 | lodash.filter: 4.6.0 1095 | lodash.flatten: 4.4.0 1096 | lodash.foreach: 4.5.0 1097 | lodash.map: 4.6.0 1098 | lodash.merge: 4.6.2 1099 | lodash.pick: 4.4.0 1100 | lodash.reduce: 4.6.0 1101 | lodash.reject: 4.6.0 1102 | lodash.some: 4.6.0 1103 | dev: false 1104 | 1105 | /chokidar@3.6.0: 1106 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1107 | engines: {node: '>= 8.10.0'} 1108 | dependencies: 1109 | anymatch: 3.1.3 1110 | braces: 3.0.3 1111 | glob-parent: 5.1.2 1112 | is-binary-path: 2.1.0 1113 | is-glob: 4.0.3 1114 | normalize-path: 3.0.0 1115 | readdirp: 3.6.0 1116 | optionalDependencies: 1117 | fsevents: 2.3.3 1118 | dev: true 1119 | 1120 | /chownr@1.1.4: 1121 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 1122 | dev: false 1123 | 1124 | /cli-tableau@2.0.1: 1125 | resolution: {integrity: sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==} 1126 | engines: {node: '>=8.10.0'} 1127 | dependencies: 1128 | chalk: 3.0.0 1129 | dev: true 1130 | 1131 | /cliui@6.0.0: 1132 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} 1133 | dependencies: 1134 | string-width: 4.2.3 1135 | strip-ansi: 6.0.1 1136 | wrap-ansi: 6.2.0 1137 | dev: false 1138 | 1139 | /cliui@8.0.1: 1140 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 1141 | engines: {node: '>=12'} 1142 | dependencies: 1143 | string-width: 4.2.3 1144 | strip-ansi: 6.0.1 1145 | wrap-ansi: 7.0.0 1146 | dev: false 1147 | 1148 | /clone-class@1.1.3: 1149 | resolution: {integrity: sha512-Ysivmcmx+6+YcWsVK7GS5n+zf4vbF8QtrC5oZYXOB1EbqlraGebsks51WqP2HjPZe40rnZpVI/l9EVXEUmN3Vg==} 1150 | engines: {node: '>=16', npm: '>=7'} 1151 | dev: false 1152 | 1153 | /clone-deep@0.2.4: 1154 | resolution: {integrity: sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==} 1155 | engines: {node: '>=0.10.0'} 1156 | dependencies: 1157 | for-own: 0.1.5 1158 | is-plain-object: 2.0.4 1159 | kind-of: 3.2.2 1160 | lazy-cache: 1.0.4 1161 | shallow-clone: 0.1.2 1162 | dev: false 1163 | 1164 | /cmd-ts@0.10.2: 1165 | resolution: {integrity: sha512-r+2vLOLcGq1sNJ6NnLWdb8bXjpHK6LGDGyX13Mytj+4VGD1ODEPS4BGubJUIQb/0z5tgJ+M1M31w8UrluHXRdA==} 1166 | dependencies: 1167 | chalk: 4.1.2 1168 | debug: 4.3.7 1169 | didyoumean: 1.2.2 1170 | strip-ansi: 6.0.1 1171 | transitivePeerDependencies: 1172 | - supports-color 1173 | dev: false 1174 | 1175 | /cmd-ts@0.7.0: 1176 | resolution: {integrity: sha512-4pmMPaBrVtK2+dC1FxublDtPsukrz3efLA9kc1k1DfX1i7YxZ37UBYZ/b6fTHY91l6hyqntwrTTbwV4MyzqXoQ==} 1177 | dependencies: 1178 | chalk: 4.1.2 1179 | debug: 4.3.7 1180 | didyoumean: 1.2.2 1181 | strip-ansi: 6.0.1 1182 | transitivePeerDependencies: 1183 | - supports-color 1184 | dev: false 1185 | 1186 | /cockatiel@2.0.2: 1187 | resolution: {integrity: sha512-ehw7t3twohGiMTxARX0AcFiUxndXLhnIBWbnRnHtfde2jRywlPpPB/o3s9YSptXPj6tkOG0fzET4CUUx4GIpEg==} 1188 | engines: {node: '>=10 <11 || >=12'} 1189 | dev: false 1190 | 1191 | /color-convert@2.0.1: 1192 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1193 | engines: {node: '>=7.0.0'} 1194 | dependencies: 1195 | color-name: 1.1.4 1196 | 1197 | /color-name@1.1.4: 1198 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1199 | 1200 | /combined-stream@1.0.8: 1201 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 1202 | engines: {node: '>= 0.8'} 1203 | dependencies: 1204 | delayed-stream: 1.0.0 1205 | dev: false 1206 | 1207 | /commander@2.15.1: 1208 | resolution: {integrity: sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==} 1209 | dev: true 1210 | 1211 | /concat-map@0.0.1: 1212 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1213 | 1214 | /core-util-is@1.0.2: 1215 | resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} 1216 | dev: false 1217 | 1218 | /core-util-is@1.0.3: 1219 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 1220 | dev: false 1221 | 1222 | /create-require@1.1.1: 1223 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 1224 | dev: true 1225 | 1226 | /croner@4.1.97: 1227 | resolution: {integrity: sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ==} 1228 | dev: true 1229 | 1230 | /cross-fetch@3.1.5: 1231 | resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} 1232 | dependencies: 1233 | node-fetch: 2.6.7 1234 | transitivePeerDependencies: 1235 | - encoding 1236 | dev: false 1237 | 1238 | /cross-spawn@7.0.6: 1239 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 1240 | engines: {node: '>= 8'} 1241 | dependencies: 1242 | path-key: 3.1.1 1243 | shebang-command: 2.0.0 1244 | which: 2.0.2 1245 | dev: false 1246 | 1247 | /crypt@0.0.2: 1248 | resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} 1249 | dev: false 1250 | 1251 | /css-select@1.2.0: 1252 | resolution: {integrity: sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==} 1253 | dependencies: 1254 | boolbase: 1.0.0 1255 | css-what: 2.1.3 1256 | domutils: 1.5.1 1257 | nth-check: 1.0.2 1258 | dev: false 1259 | 1260 | /css-what@2.1.3: 1261 | resolution: {integrity: sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==} 1262 | dev: false 1263 | 1264 | /cuid@2.1.8: 1265 | resolution: {integrity: sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==} 1266 | deprecated: Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead. 1267 | dev: false 1268 | 1269 | /culvert@0.1.2: 1270 | resolution: {integrity: sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==} 1271 | dev: true 1272 | 1273 | /dashdash@1.14.1: 1274 | resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} 1275 | engines: {node: '>=0.10'} 1276 | dependencies: 1277 | assert-plus: 1.0.0 1278 | dev: false 1279 | 1280 | /data-uri-to-buffer@6.0.2: 1281 | resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} 1282 | engines: {node: '>= 14'} 1283 | dev: true 1284 | 1285 | /dayjs@1.11.13: 1286 | resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} 1287 | dev: true 1288 | 1289 | /dayjs@1.8.36: 1290 | resolution: {integrity: sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==} 1291 | dev: true 1292 | 1293 | /debug@2.6.9: 1294 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 1295 | peerDependencies: 1296 | supports-color: '*' 1297 | peerDependenciesMeta: 1298 | supports-color: 1299 | optional: true 1300 | dependencies: 1301 | ms: 2.0.0 1302 | dev: false 1303 | 1304 | /debug@3.2.7(supports-color@5.5.0): 1305 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1306 | peerDependencies: 1307 | supports-color: '*' 1308 | peerDependenciesMeta: 1309 | supports-color: 1310 | optional: true 1311 | dependencies: 1312 | ms: 2.1.3 1313 | supports-color: 5.5.0 1314 | dev: true 1315 | 1316 | /debug@4.3.4: 1317 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1318 | engines: {node: '>=6.0'} 1319 | peerDependencies: 1320 | supports-color: '*' 1321 | peerDependenciesMeta: 1322 | supports-color: 1323 | optional: true 1324 | dependencies: 1325 | ms: 2.1.2 1326 | dev: false 1327 | 1328 | /debug@4.3.7: 1329 | resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} 1330 | engines: {node: '>=6.0'} 1331 | peerDependencies: 1332 | supports-color: '*' 1333 | peerDependenciesMeta: 1334 | supports-color: 1335 | optional: true 1336 | dependencies: 1337 | ms: 2.1.3 1338 | 1339 | /decamelize@1.2.0: 1340 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 1341 | engines: {node: '>=0.10.0'} 1342 | dev: false 1343 | 1344 | /deepmerge@4.3.1: 1345 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 1346 | engines: {node: '>=0.10.0'} 1347 | dev: false 1348 | 1349 | /deferred-leveldown@7.0.0: 1350 | resolution: {integrity: sha512-QKN8NtuS3BC6m0B8vAnBls44tX1WXAFATUsJlruyAYbZpysWV3siH6o/i3g9DCHauzodksO60bdj5NazNbjCmg==} 1351 | engines: {node: '>=10'} 1352 | dependencies: 1353 | abstract-leveldown: 7.2.0 1354 | inherits: 2.0.4 1355 | dev: false 1356 | 1357 | /degenerator@5.0.1: 1358 | resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} 1359 | engines: {node: '>= 14'} 1360 | dependencies: 1361 | ast-types: 0.13.4 1362 | escodegen: 2.1.0 1363 | esprima: 4.0.1 1364 | dev: true 1365 | 1366 | /delayed-stream@1.0.0: 1367 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1368 | engines: {node: '>=0.4.0'} 1369 | dev: false 1370 | 1371 | /devtools-protocol@0.0.981744: 1372 | resolution: {integrity: sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==} 1373 | dev: false 1374 | 1375 | /didyoumean@1.2.2: 1376 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1377 | dev: false 1378 | 1379 | /diff@4.0.2: 1380 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 1381 | engines: {node: '>=0.3.1'} 1382 | dev: true 1383 | 1384 | /dijkstrajs@1.0.3: 1385 | resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} 1386 | dev: false 1387 | 1388 | /dom-serializer@0.1.1: 1389 | resolution: {integrity: sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==} 1390 | dependencies: 1391 | domelementtype: 1.3.1 1392 | entities: 1.1.2 1393 | dev: false 1394 | 1395 | /dom-walk@0.1.2: 1396 | resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} 1397 | dev: false 1398 | 1399 | /domelementtype@1.3.1: 1400 | resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} 1401 | dev: false 1402 | 1403 | /domhandler@2.4.2: 1404 | resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} 1405 | dependencies: 1406 | domelementtype: 1.3.1 1407 | dev: false 1408 | 1409 | /domutils@1.5.1: 1410 | resolution: {integrity: sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==} 1411 | dependencies: 1412 | dom-serializer: 0.1.1 1413 | domelementtype: 1.3.1 1414 | dev: false 1415 | 1416 | /domutils@1.7.0: 1417 | resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} 1418 | dependencies: 1419 | dom-serializer: 0.1.1 1420 | domelementtype: 1.3.1 1421 | dev: false 1422 | 1423 | /dotenv@16.4.5: 1424 | resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} 1425 | engines: {node: '>=12'} 1426 | dev: false 1427 | 1428 | /ducks@1.0.2(redux-observable@2.0.0)(redux@4.2.1): 1429 | resolution: {integrity: sha512-CDLrkP4g5E3IG0kAPrlVgavrgtNwn528DsXFZq3dSOx+DaS5nnoH9eEOXJ1emXtPVwiVF50pOYvWGF42miaJgg==} 1430 | engines: {node: '>=16', npm: '>=7'} 1431 | peerDependencies: 1432 | redux: ^4.0.5 1433 | redux-observable: ^2.0.0 1434 | dependencies: 1435 | redux: 4.2.1 1436 | redux-observable: 2.0.0(redux@4.2.1) 1437 | dev: false 1438 | 1439 | /ecc-jsbn@0.1.2: 1440 | resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} 1441 | dependencies: 1442 | jsbn: 0.1.1 1443 | safer-buffer: 2.1.2 1444 | dev: false 1445 | 1446 | /emoji-regex@8.0.0: 1447 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1448 | dev: false 1449 | 1450 | /encoding-down@7.1.0: 1451 | resolution: {integrity: sha512-ky47X5jP84ryk5EQmvedQzELwVJPjCgXDQZGeb9F6r4PdChByCGHTBrVcF3h8ynKVJ1wVbkxTsDC8zBROPypgQ==} 1452 | engines: {node: '>=10'} 1453 | dependencies: 1454 | abstract-leveldown: 7.2.0 1455 | inherits: 2.0.4 1456 | level-codec: 10.0.0 1457 | level-errors: 3.0.1 1458 | dev: false 1459 | 1460 | /end-of-stream@1.4.4: 1461 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1462 | dependencies: 1463 | once: 1.4.0 1464 | dev: false 1465 | 1466 | /enquirer@2.3.6: 1467 | resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} 1468 | engines: {node: '>=8.6'} 1469 | dependencies: 1470 | ansi-colors: 4.1.3 1471 | dev: true 1472 | 1473 | /entities@1.1.2: 1474 | resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} 1475 | dev: false 1476 | 1477 | /err-code@2.0.3: 1478 | resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} 1479 | dev: false 1480 | 1481 | /escalade@3.2.0: 1482 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 1483 | engines: {node: '>=6'} 1484 | dev: false 1485 | 1486 | /escape-string-regexp@4.0.0: 1487 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1488 | engines: {node: '>=10'} 1489 | dev: true 1490 | 1491 | /escodegen@2.1.0: 1492 | resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} 1493 | engines: {node: '>=6.0'} 1494 | hasBin: true 1495 | dependencies: 1496 | esprima: 4.0.1 1497 | estraverse: 5.3.0 1498 | esutils: 2.0.3 1499 | optionalDependencies: 1500 | source-map: 0.6.1 1501 | dev: true 1502 | 1503 | /esprima@4.0.1: 1504 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1505 | engines: {node: '>=4'} 1506 | hasBin: true 1507 | dev: true 1508 | 1509 | /estraverse@5.3.0: 1510 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1511 | engines: {node: '>=4.0'} 1512 | dev: true 1513 | 1514 | /esutils@2.0.3: 1515 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1516 | engines: {node: '>=0.10.0'} 1517 | dev: true 1518 | 1519 | /eventemitter2@0.4.14: 1520 | resolution: {integrity: sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==} 1521 | dev: true 1522 | 1523 | /eventemitter2@5.0.1: 1524 | resolution: {integrity: sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==} 1525 | dev: true 1526 | 1527 | /eventemitter2@6.4.9: 1528 | resolution: {integrity: sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==} 1529 | dev: true 1530 | 1531 | /exif-parser@0.1.12: 1532 | resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} 1533 | dev: false 1534 | 1535 | /extend@3.0.2: 1536 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 1537 | dev: false 1538 | 1539 | /extract-zip@2.0.1: 1540 | resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} 1541 | engines: {node: '>= 10.17.0'} 1542 | hasBin: true 1543 | dependencies: 1544 | debug: 4.3.7 1545 | get-stream: 5.2.0 1546 | yauzl: 2.10.0 1547 | optionalDependencies: 1548 | '@types/yauzl': 2.10.3 1549 | transitivePeerDependencies: 1550 | - supports-color 1551 | dev: false 1552 | 1553 | /extrareqp2@1.0.0(debug@4.3.7): 1554 | resolution: {integrity: sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==} 1555 | dependencies: 1556 | follow-redirects: 1.15.9(debug@4.3.7) 1557 | transitivePeerDependencies: 1558 | - debug 1559 | dev: true 1560 | 1561 | /extsprintf@1.3.0: 1562 | resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} 1563 | engines: {'0': node >=0.6.0} 1564 | dev: false 1565 | 1566 | /fast-deep-equal@3.1.3: 1567 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1568 | dev: false 1569 | 1570 | /fast-json-patch@3.1.1: 1571 | resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} 1572 | dev: true 1573 | 1574 | /fast-json-stable-stringify@2.1.0: 1575 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1576 | dev: false 1577 | 1578 | /fast-xml-parser@3.21.1: 1579 | resolution: {integrity: sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==} 1580 | hasBin: true 1581 | dependencies: 1582 | strnum: 1.0.5 1583 | dev: false 1584 | 1585 | /fclone@1.0.11: 1586 | resolution: {integrity: sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==} 1587 | dev: true 1588 | 1589 | /fd-slicer@1.1.0: 1590 | resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} 1591 | dependencies: 1592 | pend: 1.2.0 1593 | dev: false 1594 | 1595 | /file-box@1.4.15: 1596 | resolution: {integrity: sha512-13x06z1c33UJm7Urp1AZM/16s5WXr9nJBVqyicyrI+gl5qUYGwz0cimPV0chMQs1MOVpImlY3JHM+JR2MzyC6g==} 1597 | engines: {node: '>=16', npm: '>=7'} 1598 | dependencies: 1599 | brolog: 1.14.2 1600 | clone-class: 1.1.3 1601 | jimp: 0.16.13 1602 | jsqr: 1.4.0 1603 | mime: 3.0.0 1604 | qrcode: 1.5.4 1605 | uuid: 8.3.2 1606 | transitivePeerDependencies: 1607 | - debug 1608 | dev: false 1609 | 1610 | /file-box@1.5.5: 1611 | resolution: {integrity: sha512-NnR7X2KwTL0l/FFDnConXfVdR+qw9riLYwLW4xqihfTna1XBgB1Ac2wmu9T/gNVmsLZbmyZbSOOl+b5ahvAHQg==} 1612 | engines: {node: '>=16', npm: '>=7'} 1613 | dependencies: 1614 | brolog: 1.14.2 1615 | clone-class: 1.1.3 1616 | jimp: 0.16.13 1617 | jsqr: 1.4.0 1618 | mime: 3.0.0 1619 | qrcode: 1.5.4 1620 | uuid: 8.3.2 1621 | transitivePeerDependencies: 1622 | - debug 1623 | dev: false 1624 | 1625 | /file-type@16.5.4: 1626 | resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} 1627 | engines: {node: '>=10'} 1628 | dependencies: 1629 | readable-web-to-node-stream: 3.0.2 1630 | strtok3: 6.3.0 1631 | token-types: 4.2.1 1632 | dev: false 1633 | 1634 | /fill-range@7.1.1: 1635 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1636 | engines: {node: '>=8'} 1637 | dependencies: 1638 | to-regex-range: 5.0.1 1639 | dev: true 1640 | 1641 | /find-up@4.1.0: 1642 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1643 | engines: {node: '>=8'} 1644 | dependencies: 1645 | locate-path: 5.0.0 1646 | path-exists: 4.0.0 1647 | dev: false 1648 | 1649 | /flash-store@1.3.5: 1650 | resolution: {integrity: sha512-4PAwmGw701dfizqd9vzH1D/U7G4jgorz3ZT1KRK1jU5daKQu8KRXfL18Upd3jfwgIkEtbmMDbtb2Gql9am6S9g==} 1651 | engines: {node: '>=14'} 1652 | dependencies: 1653 | async-map-like: 0.2.5 1654 | brolog: 1.14.2 1655 | cuid: 2.1.8 1656 | level: 7.0.1 1657 | rimraf: 3.0.2 1658 | state-switch: 0.14.1 1659 | dev: false 1660 | 1661 | /follow-redirects@1.15.9(debug@2.6.9): 1662 | resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} 1663 | engines: {node: '>=4.0'} 1664 | peerDependencies: 1665 | debug: '*' 1666 | peerDependenciesMeta: 1667 | debug: 1668 | optional: true 1669 | dependencies: 1670 | debug: 2.6.9 1671 | dev: false 1672 | 1673 | /follow-redirects@1.15.9(debug@4.3.7): 1674 | resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} 1675 | engines: {node: '>=4.0'} 1676 | peerDependencies: 1677 | debug: '*' 1678 | peerDependenciesMeta: 1679 | debug: 1680 | optional: true 1681 | dependencies: 1682 | debug: 4.3.7 1683 | dev: true 1684 | 1685 | /for-in@0.1.8: 1686 | resolution: {integrity: sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==} 1687 | engines: {node: '>=0.10.0'} 1688 | dev: false 1689 | 1690 | /for-in@1.0.2: 1691 | resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} 1692 | engines: {node: '>=0.10.0'} 1693 | dev: false 1694 | 1695 | /for-own@0.1.5: 1696 | resolution: {integrity: sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==} 1697 | engines: {node: '>=0.10.0'} 1698 | dependencies: 1699 | for-in: 1.0.2 1700 | dev: false 1701 | 1702 | /forever-agent@0.6.1: 1703 | resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} 1704 | dev: false 1705 | 1706 | /form-data@2.3.3: 1707 | resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} 1708 | engines: {node: '>= 0.12'} 1709 | dependencies: 1710 | asynckit: 0.4.0 1711 | combined-stream: 1.0.8 1712 | mime-types: 2.1.35 1713 | dev: false 1714 | 1715 | /form-data@2.5.2: 1716 | resolution: {integrity: sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==} 1717 | engines: {node: '>= 0.12'} 1718 | dependencies: 1719 | asynckit: 0.4.0 1720 | combined-stream: 1.0.8 1721 | mime-types: 2.1.35 1722 | safe-buffer: 5.2.1 1723 | dev: false 1724 | 1725 | /form-data@4.0.1: 1726 | resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} 1727 | engines: {node: '>= 6'} 1728 | dependencies: 1729 | asynckit: 0.4.0 1730 | combined-stream: 1.0.8 1731 | mime-types: 2.1.35 1732 | dev: false 1733 | 1734 | /fp-ts@2.16.9: 1735 | resolution: {integrity: sha512-+I2+FnVB+tVaxcYyQkHUq7ZdKScaBlX53A41mxQtpIccsfyv8PzdzP7fzp2AY832T4aoK6UZ5WRX/ebGd8uZuQ==} 1736 | dev: false 1737 | 1738 | /fs-constants@1.0.0: 1739 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} 1740 | dev: false 1741 | 1742 | /fs-extra@10.1.0: 1743 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 1744 | engines: {node: '>=12'} 1745 | dependencies: 1746 | graceful-fs: 4.2.11 1747 | jsonfile: 6.1.0 1748 | universalify: 2.0.1 1749 | dev: false 1750 | 1751 | /fs-extra@11.2.0: 1752 | resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} 1753 | engines: {node: '>=14.14'} 1754 | dependencies: 1755 | graceful-fs: 4.2.11 1756 | jsonfile: 6.1.0 1757 | universalify: 2.0.1 1758 | dev: true 1759 | 1760 | /fs.realpath@1.0.0: 1761 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1762 | dev: false 1763 | 1764 | /fsevents@2.3.3: 1765 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1766 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1767 | os: [darwin] 1768 | requiresBuild: true 1769 | dev: true 1770 | optional: true 1771 | 1772 | /function-bind@1.1.2: 1773 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1774 | dev: true 1775 | 1776 | /gerror@1.0.16: 1777 | resolution: {integrity: sha512-Gspk5RySiEip/Q41Yjh72wr/rkI7c0Ow6WcXA5J0Sdqnj9JK3sR9y1KGxgavbWlraxuF7M+S+K6jbtP3WiPwSQ==} 1778 | engines: {node: '>=16', npm: '>=7'} 1779 | dev: false 1780 | 1781 | /get-caller-file@2.0.5: 1782 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1783 | engines: {node: 6.* || 8.* || >= 10.*} 1784 | dev: false 1785 | 1786 | /get-port@6.1.2: 1787 | resolution: {integrity: sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==} 1788 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1789 | dev: false 1790 | 1791 | /get-stream@5.2.0: 1792 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} 1793 | engines: {node: '>=8'} 1794 | dependencies: 1795 | pump: 3.0.2 1796 | dev: false 1797 | 1798 | /get-uri@6.0.3: 1799 | resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} 1800 | engines: {node: '>= 14'} 1801 | dependencies: 1802 | basic-ftp: 5.0.5 1803 | data-uri-to-buffer: 6.0.2 1804 | debug: 4.3.7 1805 | fs-extra: 11.2.0 1806 | transitivePeerDependencies: 1807 | - supports-color 1808 | dev: true 1809 | 1810 | /getpass@0.1.7: 1811 | resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} 1812 | dependencies: 1813 | assert-plus: 1.0.0 1814 | dev: false 1815 | 1816 | /gifwrap@0.9.4: 1817 | resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==} 1818 | dependencies: 1819 | image-q: 4.0.0 1820 | omggif: 1.0.10 1821 | dev: false 1822 | 1823 | /git-node-fs@1.0.0(js-git@0.7.8): 1824 | resolution: {integrity: sha512-bLQypt14llVXBg0S0u8q8HmU7g9p3ysH+NvVlae5vILuUvs759665HvmR5+wb04KjHyjFcDRxdYb4kyNnluMUQ==} 1825 | peerDependencies: 1826 | js-git: ^0.7.8 1827 | peerDependenciesMeta: 1828 | js-git: 1829 | optional: true 1830 | dependencies: 1831 | js-git: 0.7.8 1832 | dev: true 1833 | 1834 | /git-sha1@0.1.2: 1835 | resolution: {integrity: sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg==} 1836 | dev: true 1837 | 1838 | /glob-parent@5.1.2: 1839 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1840 | engines: {node: '>= 6'} 1841 | dependencies: 1842 | is-glob: 4.0.3 1843 | dev: true 1844 | 1845 | /glob@7.2.3: 1846 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1847 | deprecated: Glob versions prior to v9 are no longer supported 1848 | dependencies: 1849 | fs.realpath: 1.0.0 1850 | inflight: 1.0.6 1851 | inherits: 2.0.4 1852 | minimatch: 3.1.2 1853 | once: 1.4.0 1854 | path-is-absolute: 1.0.1 1855 | dev: false 1856 | 1857 | /global@4.4.0: 1858 | resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} 1859 | dependencies: 1860 | min-document: 2.19.0 1861 | process: 0.11.10 1862 | dev: false 1863 | 1864 | /google-protobuf@3.21.4: 1865 | resolution: {integrity: sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==} 1866 | dev: false 1867 | 1868 | /graceful-fs@4.2.11: 1869 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1870 | 1871 | /har-schema@2.0.0: 1872 | resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} 1873 | engines: {node: '>=4'} 1874 | dev: false 1875 | 1876 | /har-validator@5.1.5: 1877 | resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} 1878 | engines: {node: '>=6'} 1879 | deprecated: this library is no longer supported 1880 | dependencies: 1881 | ajv: 6.12.6 1882 | har-schema: 2.0.0 1883 | dev: false 1884 | 1885 | /has-flag@3.0.0: 1886 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1887 | engines: {node: '>=4'} 1888 | dev: true 1889 | 1890 | /has-flag@4.0.0: 1891 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1892 | engines: {node: '>=8'} 1893 | 1894 | /hasown@2.0.2: 1895 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1896 | engines: {node: '>= 0.4'} 1897 | dependencies: 1898 | function-bind: 1.1.2 1899 | dev: true 1900 | 1901 | /htmlparser2@3.10.1: 1902 | resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} 1903 | dependencies: 1904 | domelementtype: 1.3.1 1905 | domhandler: 2.4.2 1906 | domutils: 1.7.0 1907 | entities: 1.1.2 1908 | inherits: 2.0.4 1909 | readable-stream: 3.6.2 1910 | dev: false 1911 | 1912 | /http-proxy-agent@7.0.2: 1913 | resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 1914 | engines: {node: '>= 14'} 1915 | dependencies: 1916 | agent-base: 7.1.1 1917 | debug: 4.3.7 1918 | transitivePeerDependencies: 1919 | - supports-color 1920 | dev: true 1921 | 1922 | /http-signature@1.2.0: 1923 | resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} 1924 | engines: {node: '>=0.8', npm: '>=1.3.7'} 1925 | dependencies: 1926 | assert-plus: 1.0.0 1927 | jsprim: 1.4.2 1928 | sshpk: 1.18.0 1929 | dev: false 1930 | 1931 | /https-proxy-agent@5.0.1: 1932 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} 1933 | engines: {node: '>= 6'} 1934 | dependencies: 1935 | agent-base: 6.0.2 1936 | debug: 4.3.7 1937 | transitivePeerDependencies: 1938 | - supports-color 1939 | dev: false 1940 | 1941 | /https-proxy-agent@7.0.5: 1942 | resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} 1943 | engines: {node: '>= 14'} 1944 | dependencies: 1945 | agent-base: 7.1.1 1946 | debug: 4.3.7 1947 | transitivePeerDependencies: 1948 | - supports-color 1949 | dev: true 1950 | 1951 | /iconv-lite@0.4.24: 1952 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1953 | engines: {node: '>=0.10.0'} 1954 | dependencies: 1955 | safer-buffer: 2.1.2 1956 | dev: true 1957 | 1958 | /ieee754@1.2.1: 1959 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 1960 | dev: false 1961 | 1962 | /ignore-by-default@1.0.1: 1963 | resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} 1964 | dev: true 1965 | 1966 | /image-q@4.0.0: 1967 | resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} 1968 | dependencies: 1969 | '@types/node': 16.9.1 1970 | dev: false 1971 | 1972 | /inflight@1.0.6: 1973 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1974 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1975 | dependencies: 1976 | once: 1.4.0 1977 | wrappy: 1.0.2 1978 | dev: false 1979 | 1980 | /inherits@2.0.4: 1981 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1982 | dev: false 1983 | 1984 | /ini@1.3.8: 1985 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 1986 | dev: true 1987 | 1988 | /ip-address@9.0.5: 1989 | resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} 1990 | engines: {node: '>= 12'} 1991 | dependencies: 1992 | jsbn: 1.1.0 1993 | sprintf-js: 1.1.3 1994 | dev: true 1995 | 1996 | /is-binary-path@2.1.0: 1997 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1998 | engines: {node: '>=8'} 1999 | dependencies: 2000 | binary-extensions: 2.3.0 2001 | dev: true 2002 | 2003 | /is-buffer@1.1.6: 2004 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} 2005 | dev: false 2006 | 2007 | /is-buffer@2.0.5: 2008 | resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} 2009 | engines: {node: '>=4'} 2010 | dev: false 2011 | 2012 | /is-core-module@2.15.1: 2013 | resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} 2014 | engines: {node: '>= 0.4'} 2015 | dependencies: 2016 | hasown: 2.0.2 2017 | dev: true 2018 | 2019 | /is-extendable@0.1.1: 2020 | resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} 2021 | engines: {node: '>=0.10.0'} 2022 | dev: false 2023 | 2024 | /is-extglob@2.1.1: 2025 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2026 | engines: {node: '>=0.10.0'} 2027 | dev: true 2028 | 2029 | /is-fullwidth-code-point@3.0.0: 2030 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2031 | engines: {node: '>=8'} 2032 | dev: false 2033 | 2034 | /is-function@1.0.2: 2035 | resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} 2036 | dev: false 2037 | 2038 | /is-glob@4.0.3: 2039 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2040 | engines: {node: '>=0.10.0'} 2041 | dependencies: 2042 | is-extglob: 2.1.1 2043 | dev: true 2044 | 2045 | /is-number@7.0.0: 2046 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2047 | engines: {node: '>=0.12.0'} 2048 | dev: true 2049 | 2050 | /is-plain-object@2.0.4: 2051 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} 2052 | engines: {node: '>=0.10.0'} 2053 | dependencies: 2054 | isobject: 3.0.1 2055 | dev: false 2056 | 2057 | /is-typedarray@1.0.0: 2058 | resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} 2059 | dev: false 2060 | 2061 | /isarray@1.0.0: 2062 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 2063 | dev: false 2064 | 2065 | /isexe@2.0.0: 2066 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2067 | dev: false 2068 | 2069 | /isobject@3.0.1: 2070 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} 2071 | engines: {node: '>=0.10.0'} 2072 | dev: false 2073 | 2074 | /isstream@0.1.2: 2075 | resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} 2076 | dev: false 2077 | 2078 | /ix@4.6.1: 2079 | resolution: {integrity: sha512-W4aSy2cJxEgPgtr7aNOPNp/gobmWxoNUrMqH4Wowc80FFX71kqtnGMsJnIPiVN9c5tlVbOUNzjhhKcuYxsL1qQ==} 2080 | dependencies: 2081 | '@types/node': 13.13.52 2082 | tslib: 2.8.1 2083 | dev: false 2084 | 2085 | /jimp@0.16.13: 2086 | resolution: {integrity: sha512-Bxz8q7V4rnCky9A0ktTNGA9SkNFVWRHodddI/DaAWZJzF7sVUlFYKQ60y9JGqrKpi48ECA/TnfMzzc5C70VByA==} 2087 | dependencies: 2088 | '@babel/runtime': 7.26.0 2089 | '@jimp/custom': 0.16.13 2090 | '@jimp/plugins': 0.16.13(@jimp/custom@0.16.13) 2091 | '@jimp/types': 0.16.13(@jimp/custom@0.16.13) 2092 | regenerator-runtime: 0.13.11 2093 | transitivePeerDependencies: 2094 | - debug 2095 | dev: false 2096 | 2097 | /jpeg-js@0.4.4: 2098 | resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} 2099 | dev: false 2100 | 2101 | /js-git@0.7.8: 2102 | resolution: {integrity: sha512-+E5ZH/HeRnoc/LW0AmAyhU+mNcWBzAKE+30+IDMLSLbbK+Tdt02AdkOKq9u15rlJsDEGFqtgckc8ZM59LhhiUA==} 2103 | dependencies: 2104 | bodec: 0.1.0 2105 | culvert: 0.1.2 2106 | git-sha1: 0.1.2 2107 | pako: 0.2.9 2108 | dev: true 2109 | 2110 | /js-yaml@4.1.0: 2111 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2112 | hasBin: true 2113 | dependencies: 2114 | argparse: 2.0.1 2115 | dev: true 2116 | 2117 | /jsbn@0.1.1: 2118 | resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} 2119 | dev: false 2120 | 2121 | /jsbn@1.1.0: 2122 | resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} 2123 | dev: true 2124 | 2125 | /json-rpc-peer@0.17.0: 2126 | resolution: {integrity: sha512-I6+/iVMij53vrEduktiz7ijiGSrA9Bqsl8n1A+pRHoe0Dqsej3dN9EquA9pLv3tbG8aVHyoQI3nNzstztpg6Fw==} 2127 | engines: {node: '>=4'} 2128 | dependencies: 2129 | '@babel/runtime': 7.26.0 2130 | json-rpc-protocol: 0.13.2 2131 | lodash: 4.17.21 2132 | dev: false 2133 | 2134 | /json-rpc-protocol@0.13.2: 2135 | resolution: {integrity: sha512-2InSi+c7wGESmvYcEVS0clctpJCodV7gLqLN1BIIPNK07wokXIwhOL8RQWU4O7oX5adChn6HJGtIU6JaUQ1P/A==} 2136 | engines: {node: '>=4'} 2137 | dependencies: 2138 | make-error: 1.3.6 2139 | dev: false 2140 | 2141 | /json-schema-traverse@0.4.1: 2142 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2143 | dev: false 2144 | 2145 | /json-schema@0.4.0: 2146 | resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} 2147 | dev: false 2148 | 2149 | /json-stringify-safe@5.0.1: 2150 | resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} 2151 | 2152 | /jsonfile@6.1.0: 2153 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 2154 | dependencies: 2155 | universalify: 2.0.1 2156 | optionalDependencies: 2157 | graceful-fs: 4.2.11 2158 | 2159 | /jsprim@1.4.2: 2160 | resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} 2161 | engines: {node: '>=0.6.0'} 2162 | dependencies: 2163 | assert-plus: 1.0.0 2164 | extsprintf: 1.3.0 2165 | json-schema: 0.4.0 2166 | verror: 1.10.0 2167 | dev: false 2168 | 2169 | /jsqr@1.4.0: 2170 | resolution: {integrity: sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A==} 2171 | dev: false 2172 | 2173 | /kind-of@2.0.1: 2174 | resolution: {integrity: sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==} 2175 | engines: {node: '>=0.10.0'} 2176 | dependencies: 2177 | is-buffer: 1.1.6 2178 | dev: false 2179 | 2180 | /kind-of@3.2.2: 2181 | resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} 2182 | engines: {node: '>=0.10.0'} 2183 | dependencies: 2184 | is-buffer: 1.1.6 2185 | dev: false 2186 | 2187 | /lazy-cache@0.2.7: 2188 | resolution: {integrity: sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==} 2189 | engines: {node: '>=0.10.0'} 2190 | dev: false 2191 | 2192 | /lazy-cache@1.0.4: 2193 | resolution: {integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==} 2194 | engines: {node: '>=0.10.0'} 2195 | dev: false 2196 | 2197 | /lazy@1.0.11: 2198 | resolution: {integrity: sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==} 2199 | engines: {node: '>=0.2.0'} 2200 | dev: true 2201 | 2202 | /level-codec@10.0.0: 2203 | resolution: {integrity: sha512-QW3VteVNAp6c/LuV6nDjg7XDXx9XHK4abmQarxZmlRSDyXYk20UdaJTSX6yzVvQ4i0JyWSB7jert0DsyD/kk6g==} 2204 | engines: {node: '>=10'} 2205 | dependencies: 2206 | buffer: 6.0.3 2207 | dev: false 2208 | 2209 | /level-concat-iterator@3.1.0: 2210 | resolution: {integrity: sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==} 2211 | engines: {node: '>=10'} 2212 | dependencies: 2213 | catering: 2.1.1 2214 | dev: false 2215 | 2216 | /level-errors@3.0.1: 2217 | resolution: {integrity: sha512-tqTL2DxzPDzpwl0iV5+rBCv65HWbHp6eutluHNcVIftKZlQN//b6GEnZDM2CvGZvzGYMwyPtYppYnydBQd2SMQ==} 2218 | engines: {node: '>=10'} 2219 | dev: false 2220 | 2221 | /level-iterator-stream@5.0.0: 2222 | resolution: {integrity: sha512-wnb1+o+CVFUDdiSMR/ZymE2prPs3cjVLlXuDeSq9Zb8o032XrabGEXcTCsBxprAtseO3qvFeGzh6406z9sOTRA==} 2223 | engines: {node: '>=10'} 2224 | dependencies: 2225 | inherits: 2.0.4 2226 | readable-stream: 3.6.2 2227 | dev: false 2228 | 2229 | /level-js@6.1.0: 2230 | resolution: {integrity: sha512-i7mPtkZm68aewfv0FnIUWvFUFfoyzIvVKnUmuQGrelEkP72vSPTaA1SGneWWoCV5KZJG4wlzbJLp1WxVNGuc6A==} 2231 | dependencies: 2232 | abstract-leveldown: 7.2.0 2233 | buffer: 6.0.3 2234 | inherits: 2.0.4 2235 | ltgt: 2.2.1 2236 | run-parallel-limit: 1.1.0 2237 | dev: false 2238 | 2239 | /level-packager@6.0.1: 2240 | resolution: {integrity: sha512-8Ezr0XM6hmAwqX9uu8IGzGNkWz/9doyPA8Oo9/D7qcMI6meJC+XhIbNYHukJhIn8OGdlzQs/JPcL9B8lA2F6EQ==} 2241 | engines: {node: '>=10'} 2242 | dependencies: 2243 | encoding-down: 7.1.0 2244 | levelup: 5.1.1 2245 | dev: false 2246 | 2247 | /level-supports@2.1.0: 2248 | resolution: {integrity: sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==} 2249 | engines: {node: '>=10'} 2250 | dev: false 2251 | 2252 | /level@7.0.1: 2253 | resolution: {integrity: sha512-w3E64+ALx2eZf8RV5JL4kIcE0BFAvQscRYd1yU4YVqZN9RGTQxXSvH202xvK15yZwFFxRXe60f13LJjcJ//I4Q==} 2254 | engines: {node: '>=10.12.0'} 2255 | dependencies: 2256 | level-js: 6.1.0 2257 | level-packager: 6.0.1 2258 | leveldown: 6.1.1 2259 | dev: false 2260 | 2261 | /leveldown@6.1.1: 2262 | resolution: {integrity: sha512-88c+E+Eizn4CkQOBHwqlCJaTNEjGpaEIikn1S+cINc5E9HEvJ77bqY4JY/HxT5u0caWqsc3P3DcFIKBI1vHt+A==} 2263 | engines: {node: '>=10.12.0'} 2264 | requiresBuild: true 2265 | dependencies: 2266 | abstract-leveldown: 7.2.0 2267 | napi-macros: 2.0.0 2268 | node-gyp-build: 4.8.4 2269 | dev: false 2270 | 2271 | /levelup@5.1.1: 2272 | resolution: {integrity: sha512-0mFCcHcEebOwsQuk00WJwjLI6oCjbBuEYdh/RaRqhjnyVlzqf41T1NnDtCedumZ56qyIh8euLFDqV1KfzTAVhg==} 2273 | engines: {node: '>=10'} 2274 | dependencies: 2275 | catering: 2.1.1 2276 | deferred-leveldown: 7.0.0 2277 | level-errors: 3.0.1 2278 | level-iterator-stream: 5.0.0 2279 | level-supports: 2.1.0 2280 | queue-microtask: 1.2.3 2281 | dev: false 2282 | 2283 | /load-bmfont@1.4.2: 2284 | resolution: {integrity: sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==} 2285 | dependencies: 2286 | buffer-equal: 0.0.1 2287 | mime: 1.6.0 2288 | parse-bmfont-ascii: 1.0.6 2289 | parse-bmfont-binary: 1.0.6 2290 | parse-bmfont-xml: 1.1.6 2291 | phin: 3.7.1 2292 | xhr: 2.6.0 2293 | xtend: 4.0.2 2294 | transitivePeerDependencies: 2295 | - debug 2296 | dev: false 2297 | 2298 | /locate-path@5.0.0: 2299 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 2300 | engines: {node: '>=8'} 2301 | dependencies: 2302 | p-locate: 4.1.0 2303 | dev: false 2304 | 2305 | /lodash.assignin@4.2.0: 2306 | resolution: {integrity: sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==} 2307 | dev: false 2308 | 2309 | /lodash.bind@4.2.1: 2310 | resolution: {integrity: sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==} 2311 | dev: false 2312 | 2313 | /lodash.camelcase@4.3.0: 2314 | resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} 2315 | dev: false 2316 | 2317 | /lodash.defaults@4.2.0: 2318 | resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} 2319 | dev: false 2320 | 2321 | /lodash.filter@4.6.0: 2322 | resolution: {integrity: sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==} 2323 | dev: false 2324 | 2325 | /lodash.flatten@4.4.0: 2326 | resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} 2327 | dev: false 2328 | 2329 | /lodash.foreach@4.5.0: 2330 | resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} 2331 | dev: false 2332 | 2333 | /lodash.map@4.6.0: 2334 | resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} 2335 | dev: false 2336 | 2337 | /lodash.merge@4.6.2: 2338 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2339 | dev: false 2340 | 2341 | /lodash.pick@4.4.0: 2342 | resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} 2343 | dev: false 2344 | 2345 | /lodash.reduce@4.6.0: 2346 | resolution: {integrity: sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==} 2347 | dev: false 2348 | 2349 | /lodash.reject@4.6.0: 2350 | resolution: {integrity: sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==} 2351 | dev: false 2352 | 2353 | /lodash.some@4.6.0: 2354 | resolution: {integrity: sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==} 2355 | dev: false 2356 | 2357 | /lodash@4.17.21: 2358 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2359 | 2360 | /long@5.2.3: 2361 | resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} 2362 | dev: false 2363 | 2364 | /lru-cache@6.0.0: 2365 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2366 | engines: {node: '>=10'} 2367 | dependencies: 2368 | yallist: 4.0.0 2369 | dev: true 2370 | 2371 | /lru-cache@7.18.3: 2372 | resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} 2373 | engines: {node: '>=12'} 2374 | dev: true 2375 | 2376 | /ltgt@2.2.1: 2377 | resolution: {integrity: sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==} 2378 | dev: false 2379 | 2380 | /make-error@1.3.6: 2381 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 2382 | 2383 | /md5@2.3.0: 2384 | resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} 2385 | dependencies: 2386 | charenc: 0.0.2 2387 | crypt: 0.0.2 2388 | is-buffer: 1.1.6 2389 | dev: false 2390 | 2391 | /memory-card@1.1.2: 2392 | resolution: {integrity: sha512-PJRBVZ71eKBGxa3rFX08TPpom4JmNHB2Tu5FgrB4SS2m5I0oxm0zPOWXJeQwH4m1RBjg1ehvf+IJ12VcwQGU8g==} 2393 | engines: {node: '>=16', npm: '>=7'} 2394 | dependencies: 2395 | async-map-like: 1.0.2 2396 | brolog: 1.14.2 2397 | dev: false 2398 | 2399 | /merge-deep@3.0.3: 2400 | resolution: {integrity: sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==} 2401 | engines: {node: '>=0.10.0'} 2402 | dependencies: 2403 | arr-union: 3.1.0 2404 | clone-deep: 0.2.4 2405 | kind-of: 3.2.2 2406 | dev: false 2407 | 2408 | /mime-db@1.52.0: 2409 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 2410 | engines: {node: '>= 0.6'} 2411 | dev: false 2412 | 2413 | /mime-types@2.1.35: 2414 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 2415 | engines: {node: '>= 0.6'} 2416 | dependencies: 2417 | mime-db: 1.52.0 2418 | dev: false 2419 | 2420 | /mime@1.6.0: 2421 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 2422 | engines: {node: '>=4'} 2423 | hasBin: true 2424 | dev: false 2425 | 2426 | /mime@3.0.0: 2427 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 2428 | engines: {node: '>=10.0.0'} 2429 | hasBin: true 2430 | dev: false 2431 | 2432 | /min-document@2.19.0: 2433 | resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} 2434 | dependencies: 2435 | dom-walk: 0.1.2 2436 | dev: false 2437 | 2438 | /minimatch@3.1.2: 2439 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2440 | dependencies: 2441 | brace-expansion: 1.1.11 2442 | 2443 | /minimist@1.2.8: 2444 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2445 | dev: false 2446 | 2447 | /mixin-object@2.0.1: 2448 | resolution: {integrity: sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==} 2449 | engines: {node: '>=0.10.0'} 2450 | dependencies: 2451 | for-in: 0.1.8 2452 | is-extendable: 0.1.1 2453 | dev: false 2454 | 2455 | /mkdirp-classic@0.5.3: 2456 | resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} 2457 | dev: false 2458 | 2459 | /mkdirp@0.5.6: 2460 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 2461 | hasBin: true 2462 | dependencies: 2463 | minimist: 1.2.8 2464 | dev: false 2465 | 2466 | /mkdirp@1.0.4: 2467 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 2468 | engines: {node: '>=10'} 2469 | hasBin: true 2470 | dev: true 2471 | 2472 | /module-details-from-path@1.0.3: 2473 | resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} 2474 | dev: true 2475 | 2476 | /ms@2.0.0: 2477 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 2478 | dev: false 2479 | 2480 | /ms@2.1.2: 2481 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2482 | dev: false 2483 | 2484 | /ms@2.1.3: 2485 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2486 | 2487 | /mute-stream@0.0.8: 2488 | resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} 2489 | dev: true 2490 | 2491 | /napi-macros@2.0.0: 2492 | resolution: {integrity: sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==} 2493 | dev: false 2494 | 2495 | /needle@2.4.0: 2496 | resolution: {integrity: sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==} 2497 | engines: {node: '>= 4.4.x'} 2498 | hasBin: true 2499 | dependencies: 2500 | debug: 3.2.7(supports-color@5.5.0) 2501 | iconv-lite: 0.4.24 2502 | sax: 1.4.1 2503 | transitivePeerDependencies: 2504 | - supports-color 2505 | dev: true 2506 | 2507 | /netmask@2.0.2: 2508 | resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} 2509 | engines: {node: '>= 0.4.0'} 2510 | dev: true 2511 | 2512 | /node-fetch@2.6.7: 2513 | resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} 2514 | engines: {node: 4.x || >=6.0.0} 2515 | peerDependencies: 2516 | encoding: ^0.1.0 2517 | peerDependenciesMeta: 2518 | encoding: 2519 | optional: true 2520 | dependencies: 2521 | whatwg-url: 5.0.0 2522 | dev: false 2523 | 2524 | /node-gyp-build@4.8.4: 2525 | resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} 2526 | hasBin: true 2527 | dev: false 2528 | 2529 | /nodemon@2.0.22: 2530 | resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} 2531 | engines: {node: '>=8.10.0'} 2532 | hasBin: true 2533 | dependencies: 2534 | chokidar: 3.6.0 2535 | debug: 3.2.7(supports-color@5.5.0) 2536 | ignore-by-default: 1.0.1 2537 | minimatch: 3.1.2 2538 | pstree.remy: 1.1.8 2539 | semver: 5.7.2 2540 | simple-update-notifier: 1.1.0 2541 | supports-color: 5.5.0 2542 | touch: 3.1.1 2543 | undefsafe: 2.0.5 2544 | dev: true 2545 | 2546 | /nop@1.0.0: 2547 | resolution: {integrity: sha512-XdkOuXGx0DTwlqb0DWTcDqelgU/F3YyZ+PTRaecpDVpkYskcnh3OeUYKfvjcRQ2D1diTIGxi/a3eHVjW5yPupQ==} 2548 | dev: false 2549 | 2550 | /normalize-path@3.0.0: 2551 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2552 | engines: {node: '>=0.10.0'} 2553 | dev: true 2554 | 2555 | /nssocket@0.6.0: 2556 | resolution: {integrity: sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==} 2557 | engines: {node: '>= 0.10.x'} 2558 | dependencies: 2559 | eventemitter2: 0.4.14 2560 | lazy: 1.0.11 2561 | dev: true 2562 | 2563 | /nth-check@1.0.2: 2564 | resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} 2565 | dependencies: 2566 | boolbase: 1.0.0 2567 | dev: false 2568 | 2569 | /oauth-sign@0.9.0: 2570 | resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} 2571 | dev: false 2572 | 2573 | /omggif@1.0.10: 2574 | resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} 2575 | dev: false 2576 | 2577 | /once@1.4.0: 2578 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2579 | dependencies: 2580 | wrappy: 1.0.2 2581 | dev: false 2582 | 2583 | /open-graph@0.2.6: 2584 | resolution: {integrity: sha512-L4lTD3fcPkNclAZFukhr8ZAF8+kBqXJqUb/HNSdIoxVMTdaqSwSroYdBiFb56yPdr4GrltECiL5lRHYIJbpY/A==} 2585 | dependencies: 2586 | cheerio: 0.22.0 2587 | request: 2.88.2 2588 | dev: false 2589 | 2590 | /p-limit@2.3.0: 2591 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2592 | engines: {node: '>=6'} 2593 | dependencies: 2594 | p-try: 2.2.0 2595 | dev: false 2596 | 2597 | /p-locate@4.1.0: 2598 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2599 | engines: {node: '>=8'} 2600 | dependencies: 2601 | p-limit: 2.3.0 2602 | dev: false 2603 | 2604 | /p-try@2.2.0: 2605 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2606 | engines: {node: '>=6'} 2607 | dev: false 2608 | 2609 | /pac-proxy-agent@7.0.2: 2610 | resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} 2611 | engines: {node: '>= 14'} 2612 | dependencies: 2613 | '@tootallnate/quickjs-emscripten': 0.23.0 2614 | agent-base: 7.1.1 2615 | debug: 4.3.7 2616 | get-uri: 6.0.3 2617 | http-proxy-agent: 7.0.2 2618 | https-proxy-agent: 7.0.5 2619 | pac-resolver: 7.0.1 2620 | socks-proxy-agent: 8.0.4 2621 | transitivePeerDependencies: 2622 | - supports-color 2623 | dev: true 2624 | 2625 | /pac-resolver@7.0.1: 2626 | resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} 2627 | engines: {node: '>= 14'} 2628 | dependencies: 2629 | degenerator: 5.0.1 2630 | netmask: 2.0.2 2631 | dev: true 2632 | 2633 | /pako@0.2.9: 2634 | resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} 2635 | dev: true 2636 | 2637 | /pako@1.0.11: 2638 | resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} 2639 | dev: false 2640 | 2641 | /parse-bmfont-ascii@1.0.6: 2642 | resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} 2643 | dev: false 2644 | 2645 | /parse-bmfont-binary@1.0.6: 2646 | resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} 2647 | dev: false 2648 | 2649 | /parse-bmfont-xml@1.1.6: 2650 | resolution: {integrity: sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==} 2651 | dependencies: 2652 | xml-parse-from-string: 1.0.1 2653 | xml2js: 0.5.0 2654 | dev: false 2655 | 2656 | /parse-headers@2.0.5: 2657 | resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} 2658 | dev: false 2659 | 2660 | /path-exists@4.0.0: 2661 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2662 | engines: {node: '>=8'} 2663 | dev: false 2664 | 2665 | /path-is-absolute@1.0.1: 2666 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2667 | engines: {node: '>=0.10.0'} 2668 | dev: false 2669 | 2670 | /path-key@3.1.1: 2671 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2672 | engines: {node: '>=8'} 2673 | dev: false 2674 | 2675 | /path-parse@1.0.7: 2676 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2677 | dev: true 2678 | 2679 | /peek-readable@4.1.0: 2680 | resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} 2681 | engines: {node: '>=8'} 2682 | dev: false 2683 | 2684 | /pend@1.2.0: 2685 | resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} 2686 | dev: false 2687 | 2688 | /performance-now@2.1.0: 2689 | resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} 2690 | dev: false 2691 | 2692 | /phin@2.9.3: 2693 | resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} 2694 | deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. 2695 | dev: false 2696 | 2697 | /phin@3.7.1: 2698 | resolution: {integrity: sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==} 2699 | engines: {node: '>= 8'} 2700 | dependencies: 2701 | centra: 2.7.0 2702 | transitivePeerDependencies: 2703 | - debug 2704 | dev: false 2705 | 2706 | /picomatch@2.3.1: 2707 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2708 | engines: {node: '>=8.6'} 2709 | dev: true 2710 | 2711 | /pidusage@2.0.21: 2712 | resolution: {integrity: sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==} 2713 | engines: {node: '>=8'} 2714 | requiresBuild: true 2715 | dependencies: 2716 | safe-buffer: 5.2.1 2717 | dev: true 2718 | optional: true 2719 | 2720 | /pidusage@3.0.2: 2721 | resolution: {integrity: sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==} 2722 | engines: {node: '>=10'} 2723 | dependencies: 2724 | safe-buffer: 5.2.1 2725 | dev: true 2726 | 2727 | /pixelmatch@4.0.2: 2728 | resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} 2729 | hasBin: true 2730 | dependencies: 2731 | pngjs: 3.4.0 2732 | dev: false 2733 | 2734 | /pkg-dir@4.2.0: 2735 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 2736 | engines: {node: '>=8'} 2737 | dependencies: 2738 | find-up: 4.1.0 2739 | dev: false 2740 | 2741 | /pm2-axon-rpc@0.7.1: 2742 | resolution: {integrity: sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==} 2743 | engines: {node: '>=5'} 2744 | dependencies: 2745 | debug: 4.3.7 2746 | transitivePeerDependencies: 2747 | - supports-color 2748 | dev: true 2749 | 2750 | /pm2-axon@4.0.1: 2751 | resolution: {integrity: sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==} 2752 | engines: {node: '>=5'} 2753 | dependencies: 2754 | amp: 0.3.1 2755 | amp-message: 0.1.2 2756 | debug: 4.3.7 2757 | escape-string-regexp: 4.0.0 2758 | transitivePeerDependencies: 2759 | - supports-color 2760 | dev: true 2761 | 2762 | /pm2-deploy@1.0.2: 2763 | resolution: {integrity: sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==} 2764 | engines: {node: '>=4.0.0'} 2765 | dependencies: 2766 | run-series: 1.1.9 2767 | tv4: 1.3.0 2768 | dev: true 2769 | 2770 | /pm2-multimeter@0.1.2: 2771 | resolution: {integrity: sha512-S+wT6XfyKfd7SJIBqRgOctGxaBzUOmVQzTAS+cg04TsEUObJVreha7lvCfX8zzGVr871XwCSnHUU7DQQ5xEsfA==} 2772 | dependencies: 2773 | charm: 0.1.2 2774 | dev: true 2775 | 2776 | /pm2-sysmonit@1.2.8: 2777 | resolution: {integrity: sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==} 2778 | requiresBuild: true 2779 | dependencies: 2780 | async: 3.2.6 2781 | debug: 4.3.7 2782 | pidusage: 2.0.21 2783 | systeminformation: 5.23.5 2784 | tx2: 1.0.5 2785 | transitivePeerDependencies: 2786 | - supports-color 2787 | dev: true 2788 | optional: true 2789 | 2790 | /pm2@5.4.3: 2791 | resolution: {integrity: sha512-4/I1htIHzZk1Y67UgOCo4F1cJtas1kSds31N8zN0PybO230id1nigyjGuGFzUnGmUFPmrJ0On22fO1ChFlp7VQ==} 2792 | engines: {node: '>=12.0.0'} 2793 | hasBin: true 2794 | dependencies: 2795 | '@pm2/agent': 2.0.4 2796 | '@pm2/io': 6.0.1 2797 | '@pm2/js-api': 0.8.0 2798 | '@pm2/pm2-version-check': 1.0.4 2799 | async: 3.2.6 2800 | blessed: 0.1.81 2801 | chalk: 3.0.0 2802 | chokidar: 3.6.0 2803 | cli-tableau: 2.0.1 2804 | commander: 2.15.1 2805 | croner: 4.1.97 2806 | dayjs: 1.11.13 2807 | debug: 4.3.7 2808 | enquirer: 2.3.6 2809 | eventemitter2: 5.0.1 2810 | fclone: 1.0.11 2811 | js-yaml: 4.1.0 2812 | mkdirp: 1.0.4 2813 | needle: 2.4.0 2814 | pidusage: 3.0.2 2815 | pm2-axon: 4.0.1 2816 | pm2-axon-rpc: 0.7.1 2817 | pm2-deploy: 1.0.2 2818 | pm2-multimeter: 0.1.2 2819 | promptly: 2.2.0 2820 | semver: 7.6.3 2821 | source-map-support: 0.5.21 2822 | sprintf-js: 1.1.2 2823 | vizion: 2.2.1 2824 | optionalDependencies: 2825 | pm2-sysmonit: 1.2.8 2826 | transitivePeerDependencies: 2827 | - bufferutil 2828 | - supports-color 2829 | - utf-8-validate 2830 | dev: true 2831 | 2832 | /pngjs@3.4.0: 2833 | resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} 2834 | engines: {node: '>=4.0.0'} 2835 | dev: false 2836 | 2837 | /pngjs@5.0.0: 2838 | resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} 2839 | engines: {node: '>=10.13.0'} 2840 | dev: false 2841 | 2842 | /process-nextick-args@2.0.1: 2843 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 2844 | dev: false 2845 | 2846 | /process@0.11.10: 2847 | resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 2848 | engines: {node: '>= 0.6.0'} 2849 | dev: false 2850 | 2851 | /progress@2.0.3: 2852 | resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} 2853 | engines: {node: '>=0.4.0'} 2854 | dev: false 2855 | 2856 | /promise-retry@2.0.1: 2857 | resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} 2858 | engines: {node: '>=10'} 2859 | dependencies: 2860 | err-code: 2.0.3 2861 | retry: 0.12.0 2862 | dev: false 2863 | 2864 | /promptly@2.2.0: 2865 | resolution: {integrity: sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==} 2866 | dependencies: 2867 | read: 1.0.7 2868 | dev: true 2869 | 2870 | /protobufjs@7.4.0: 2871 | resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} 2872 | engines: {node: '>=12.0.0'} 2873 | requiresBuild: true 2874 | dependencies: 2875 | '@protobufjs/aspromise': 1.1.2 2876 | '@protobufjs/base64': 1.1.2 2877 | '@protobufjs/codegen': 2.0.4 2878 | '@protobufjs/eventemitter': 1.1.0 2879 | '@protobufjs/fetch': 1.1.0 2880 | '@protobufjs/float': 1.0.2 2881 | '@protobufjs/inquire': 1.1.0 2882 | '@protobufjs/path': 1.1.2 2883 | '@protobufjs/pool': 1.1.0 2884 | '@protobufjs/utf8': 1.1.0 2885 | '@types/node': 22.10.1 2886 | long: 5.2.3 2887 | dev: false 2888 | 2889 | /proxy-agent@6.3.1: 2890 | resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} 2891 | engines: {node: '>= 14'} 2892 | dependencies: 2893 | agent-base: 7.1.1 2894 | debug: 4.3.7 2895 | http-proxy-agent: 7.0.2 2896 | https-proxy-agent: 7.0.5 2897 | lru-cache: 7.18.3 2898 | pac-proxy-agent: 7.0.2 2899 | proxy-from-env: 1.1.0 2900 | socks-proxy-agent: 8.0.4 2901 | transitivePeerDependencies: 2902 | - supports-color 2903 | dev: true 2904 | 2905 | /proxy-from-env@1.1.0: 2906 | resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 2907 | 2908 | /psl@1.15.0: 2909 | resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} 2910 | dependencies: 2911 | punycode: 2.3.1 2912 | dev: false 2913 | 2914 | /pstree.remy@1.1.8: 2915 | resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} 2916 | dev: true 2917 | 2918 | /pump@3.0.2: 2919 | resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} 2920 | dependencies: 2921 | end-of-stream: 1.4.4 2922 | once: 1.4.0 2923 | dev: false 2924 | 2925 | /punycode@2.3.1: 2926 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 2927 | engines: {node: '>=6'} 2928 | dev: false 2929 | 2930 | /puppeteer-extra-plugin-stealth@2.11.2(puppeteer-extra@3.3.6): 2931 | resolution: {integrity: sha512-bUemM5XmTj9i2ZerBzsk2AN5is0wHMNE6K0hXBzBXOzP5m5G3Wl0RHhiqKeHToe/uIH8AoZiGhc1tCkLZQPKTQ==} 2932 | engines: {node: '>=8'} 2933 | peerDependencies: 2934 | playwright-extra: '*' 2935 | puppeteer-extra: '*' 2936 | peerDependenciesMeta: 2937 | playwright-extra: 2938 | optional: true 2939 | puppeteer-extra: 2940 | optional: true 2941 | dependencies: 2942 | debug: 4.3.7 2943 | puppeteer-extra: 3.3.6(puppeteer@13.7.0) 2944 | puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6) 2945 | puppeteer-extra-plugin-user-preferences: 2.4.1(puppeteer-extra@3.3.6) 2946 | transitivePeerDependencies: 2947 | - supports-color 2948 | dev: false 2949 | 2950 | /puppeteer-extra-plugin-user-data-dir@2.4.1(puppeteer-extra@3.3.6): 2951 | resolution: {integrity: sha512-kH1GnCcqEDoBXO7epAse4TBPJh9tEpVEK/vkedKfjOVOhZAvLkHGc9swMs5ChrJbRnf8Hdpug6TJlEuimXNQ+g==} 2952 | engines: {node: '>=8'} 2953 | peerDependencies: 2954 | playwright-extra: '*' 2955 | puppeteer-extra: '*' 2956 | peerDependenciesMeta: 2957 | playwright-extra: 2958 | optional: true 2959 | puppeteer-extra: 2960 | optional: true 2961 | dependencies: 2962 | debug: 4.3.7 2963 | fs-extra: 10.1.0 2964 | puppeteer-extra: 3.3.6(puppeteer@13.7.0) 2965 | puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6) 2966 | rimraf: 3.0.2 2967 | transitivePeerDependencies: 2968 | - supports-color 2969 | dev: false 2970 | 2971 | /puppeteer-extra-plugin-user-preferences@2.4.1(puppeteer-extra@3.3.6): 2972 | resolution: {integrity: sha512-i1oAZxRbc1bk8MZufKCruCEC3CCafO9RKMkkodZltI4OqibLFXF3tj6HZ4LZ9C5vCXZjYcDWazgtY69mnmrQ9A==} 2973 | engines: {node: '>=8'} 2974 | peerDependencies: 2975 | playwright-extra: '*' 2976 | puppeteer-extra: '*' 2977 | peerDependenciesMeta: 2978 | playwright-extra: 2979 | optional: true 2980 | puppeteer-extra: 2981 | optional: true 2982 | dependencies: 2983 | debug: 4.3.7 2984 | deepmerge: 4.3.1 2985 | puppeteer-extra: 3.3.6(puppeteer@13.7.0) 2986 | puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6) 2987 | puppeteer-extra-plugin-user-data-dir: 2.4.1(puppeteer-extra@3.3.6) 2988 | transitivePeerDependencies: 2989 | - supports-color 2990 | dev: false 2991 | 2992 | /puppeteer-extra-plugin@3.2.3(puppeteer-extra@3.3.6): 2993 | resolution: {integrity: sha512-6RNy0e6pH8vaS3akPIKGg28xcryKscczt4wIl0ePciZENGE2yoaQJNd17UiEbdmh5/6WW6dPcfRWT9lxBwCi2Q==} 2994 | engines: {node: '>=9.11.2'} 2995 | peerDependencies: 2996 | playwright-extra: '*' 2997 | puppeteer-extra: '*' 2998 | peerDependenciesMeta: 2999 | playwright-extra: 3000 | optional: true 3001 | puppeteer-extra: 3002 | optional: true 3003 | dependencies: 3004 | '@types/debug': 4.1.12 3005 | debug: 4.3.7 3006 | merge-deep: 3.0.3 3007 | puppeteer-extra: 3.3.6(puppeteer@13.7.0) 3008 | transitivePeerDependencies: 3009 | - supports-color 3010 | dev: false 3011 | 3012 | /puppeteer-extra@3.3.6(puppeteer@13.7.0): 3013 | resolution: {integrity: sha512-rsLBE/6mMxAjlLd06LuGacrukP2bqbzKCLzV1vrhHFavqQE/taQ2UXv3H5P0Ls7nsrASa+6x3bDbXHpqMwq+7A==} 3014 | engines: {node: '>=8'} 3015 | peerDependencies: 3016 | '@types/puppeteer': '*' 3017 | puppeteer: '*' 3018 | puppeteer-core: '*' 3019 | peerDependenciesMeta: 3020 | '@types/puppeteer': 3021 | optional: true 3022 | puppeteer: 3023 | optional: true 3024 | puppeteer-core: 3025 | optional: true 3026 | dependencies: 3027 | '@types/debug': 4.1.12 3028 | debug: 4.3.7 3029 | deepmerge: 4.3.1 3030 | puppeteer: 13.7.0 3031 | transitivePeerDependencies: 3032 | - supports-color 3033 | dev: false 3034 | 3035 | /puppeteer@13.7.0: 3036 | resolution: {integrity: sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==} 3037 | engines: {node: '>=10.18.1'} 3038 | deprecated: < 22.8.2 is no longer supported 3039 | requiresBuild: true 3040 | dependencies: 3041 | cross-fetch: 3.1.5 3042 | debug: 4.3.4 3043 | devtools-protocol: 0.0.981744 3044 | extract-zip: 2.0.1 3045 | https-proxy-agent: 5.0.1 3046 | pkg-dir: 4.2.0 3047 | progress: 2.0.3 3048 | proxy-from-env: 1.1.0 3049 | rimraf: 3.0.2 3050 | tar-fs: 2.1.1 3051 | unbzip2-stream: 1.4.3 3052 | ws: 8.5.0 3053 | transitivePeerDependencies: 3054 | - bufferutil 3055 | - encoding 3056 | - supports-color 3057 | - utf-8-validate 3058 | dev: false 3059 | 3060 | /qr-image@3.2.0: 3061 | resolution: {integrity: sha512-rXKDS5Sx3YipVsqmlMJsJsk6jXylEpiHRC2+nJy66fxA5ExYyGa4PqwteW69SaVmAb2OQ18HbYriT7cGQMbduw==} 3062 | dev: false 3063 | 3064 | /qrcode@1.5.4: 3065 | resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} 3066 | engines: {node: '>=10.13.0'} 3067 | hasBin: true 3068 | dependencies: 3069 | dijkstrajs: 1.0.3 3070 | pngjs: 5.0.0 3071 | yargs: 15.4.1 3072 | dev: false 3073 | 3074 | /qs@6.5.3: 3075 | resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} 3076 | engines: {node: '>=0.6'} 3077 | dev: false 3078 | 3079 | /queue-microtask@1.2.3: 3080 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3081 | dev: false 3082 | 3083 | /read@1.0.7: 3084 | resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} 3085 | engines: {node: '>=0.8'} 3086 | dependencies: 3087 | mute-stream: 0.0.8 3088 | dev: true 3089 | 3090 | /readable-stream@2.3.8: 3091 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 3092 | dependencies: 3093 | core-util-is: 1.0.3 3094 | inherits: 2.0.4 3095 | isarray: 1.0.0 3096 | process-nextick-args: 2.0.1 3097 | safe-buffer: 5.1.2 3098 | string_decoder: 1.1.1 3099 | util-deprecate: 1.0.2 3100 | dev: false 3101 | 3102 | /readable-stream@3.6.2: 3103 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 3104 | engines: {node: '>= 6'} 3105 | dependencies: 3106 | inherits: 2.0.4 3107 | string_decoder: 1.3.0 3108 | util-deprecate: 1.0.2 3109 | dev: false 3110 | 3111 | /readable-web-to-node-stream@3.0.2: 3112 | resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} 3113 | engines: {node: '>=8'} 3114 | dependencies: 3115 | readable-stream: 3.6.2 3116 | dev: false 3117 | 3118 | /readdirp@3.6.0: 3119 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3120 | engines: {node: '>=8.10.0'} 3121 | dependencies: 3122 | picomatch: 2.3.1 3123 | dev: true 3124 | 3125 | /redux-observable@2.0.0(redux@4.2.1): 3126 | resolution: {integrity: sha512-FJz4rLXX+VmDDwZS/LpvQsKnSanDOe8UVjiLryx1g3seZiS69iLpMrcvXD5oFO7rtkPyRdo/FmTqldnT3X3m+w==} 3127 | peerDependencies: 3128 | redux: '>=4 <5' 3129 | dependencies: 3130 | redux: 4.2.1 3131 | rxjs: 7.8.1 3132 | tslib: 2.1.0 3133 | dev: false 3134 | 3135 | /redux@4.2.1: 3136 | resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} 3137 | dependencies: 3138 | '@babel/runtime': 7.26.0 3139 | dev: false 3140 | 3141 | /regenerator-runtime@0.13.11: 3142 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 3143 | dev: false 3144 | 3145 | /regenerator-runtime@0.14.1: 3146 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 3147 | dev: false 3148 | 3149 | /request@2.88.2: 3150 | resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} 3151 | engines: {node: '>= 6'} 3152 | deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 3153 | dependencies: 3154 | aws-sign2: 0.7.0 3155 | aws4: 1.13.2 3156 | caseless: 0.12.0 3157 | combined-stream: 1.0.8 3158 | extend: 3.0.2 3159 | forever-agent: 0.6.1 3160 | form-data: 2.3.3 3161 | har-validator: 5.1.5 3162 | http-signature: 1.2.0 3163 | is-typedarray: 1.0.0 3164 | isstream: 0.1.2 3165 | json-stringify-safe: 5.0.1 3166 | mime-types: 2.1.35 3167 | oauth-sign: 0.9.0 3168 | performance-now: 2.1.0 3169 | qs: 6.5.3 3170 | safe-buffer: 5.2.1 3171 | tough-cookie: 2.5.0 3172 | tunnel-agent: 0.6.0 3173 | uuid: 3.4.0 3174 | dev: false 3175 | 3176 | /require-directory@2.1.1: 3177 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 3178 | engines: {node: '>=0.10.0'} 3179 | dev: false 3180 | 3181 | /require-in-the-middle@5.2.0: 3182 | resolution: {integrity: sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==} 3183 | engines: {node: '>=6'} 3184 | dependencies: 3185 | debug: 4.3.7 3186 | module-details-from-path: 1.0.3 3187 | resolve: 1.22.8 3188 | transitivePeerDependencies: 3189 | - supports-color 3190 | dev: true 3191 | 3192 | /require-main-filename@2.0.0: 3193 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} 3194 | dev: false 3195 | 3196 | /resolve@1.22.8: 3197 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 3198 | hasBin: true 3199 | dependencies: 3200 | is-core-module: 2.15.1 3201 | path-parse: 1.0.7 3202 | supports-preserve-symlinks-flag: 1.0.0 3203 | dev: true 3204 | 3205 | /retry@0.12.0: 3206 | resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} 3207 | engines: {node: '>= 4'} 3208 | dev: false 3209 | 3210 | /rimraf@3.0.2: 3211 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3212 | deprecated: Rimraf versions prior to v4 are no longer supported 3213 | hasBin: true 3214 | dependencies: 3215 | glob: 7.2.3 3216 | dev: false 3217 | 3218 | /run-parallel-limit@1.1.0: 3219 | resolution: {integrity: sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==} 3220 | dependencies: 3221 | queue-microtask: 1.2.3 3222 | dev: false 3223 | 3224 | /run-series@1.1.9: 3225 | resolution: {integrity: sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==} 3226 | dev: true 3227 | 3228 | /rx-queue@1.0.5: 3229 | resolution: {integrity: sha512-upDUgE3pk1+JnyV9MBkVSSlpSIg33ygqXvczsQIMVyjubLWCX/QzoFNfQavEHxYxKw+9JNMqDTPnxZ3dnR+61g==} 3230 | engines: {node: '>=16', npm: '>=7'} 3231 | dependencies: 3232 | ix: 4.6.1 3233 | rxjs: 7.8.1 3234 | dev: false 3235 | 3236 | /rxjs@7.8.1: 3237 | resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} 3238 | dependencies: 3239 | tslib: 2.8.1 3240 | dev: false 3241 | 3242 | /safe-buffer@5.1.2: 3243 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 3244 | dev: false 3245 | 3246 | /safe-buffer@5.2.1: 3247 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 3248 | 3249 | /safer-buffer@2.1.2: 3250 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 3251 | 3252 | /sax@1.4.1: 3253 | resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} 3254 | 3255 | /semver@5.7.2: 3256 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 3257 | hasBin: true 3258 | dev: true 3259 | 3260 | /semver@7.0.0: 3261 | resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} 3262 | hasBin: true 3263 | dev: true 3264 | 3265 | /semver@7.5.4: 3266 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 3267 | engines: {node: '>=10'} 3268 | hasBin: true 3269 | dependencies: 3270 | lru-cache: 6.0.0 3271 | dev: true 3272 | 3273 | /semver@7.6.3: 3274 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 3275 | engines: {node: '>=10'} 3276 | hasBin: true 3277 | 3278 | /set-blocking@2.0.0: 3279 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 3280 | dev: false 3281 | 3282 | /shallow-clone@0.1.2: 3283 | resolution: {integrity: sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==} 3284 | engines: {node: '>=0.10.0'} 3285 | dependencies: 3286 | is-extendable: 0.1.1 3287 | kind-of: 2.0.1 3288 | lazy-cache: 0.2.7 3289 | mixin-object: 2.0.1 3290 | dev: false 3291 | 3292 | /shebang-command@2.0.0: 3293 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3294 | engines: {node: '>=8'} 3295 | dependencies: 3296 | shebang-regex: 3.0.0 3297 | dev: false 3298 | 3299 | /shebang-regex@3.0.0: 3300 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3301 | engines: {node: '>=8'} 3302 | dev: false 3303 | 3304 | /shimmer@1.2.1: 3305 | resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} 3306 | dev: true 3307 | 3308 | /signal-exit@3.0.7: 3309 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3310 | dev: true 3311 | 3312 | /simple-update-notifier@1.1.0: 3313 | resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} 3314 | engines: {node: '>=8.10.0'} 3315 | dependencies: 3316 | semver: 7.0.0 3317 | dev: true 3318 | 3319 | /smart-buffer@4.2.0: 3320 | resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} 3321 | engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} 3322 | dev: true 3323 | 3324 | /socks-proxy-agent@8.0.4: 3325 | resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} 3326 | engines: {node: '>= 14'} 3327 | dependencies: 3328 | agent-base: 7.1.1 3329 | debug: 4.3.7 3330 | socks: 2.8.3 3331 | transitivePeerDependencies: 3332 | - supports-color 3333 | dev: true 3334 | 3335 | /socks@2.8.3: 3336 | resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} 3337 | engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} 3338 | dependencies: 3339 | ip-address: 9.0.5 3340 | smart-buffer: 4.2.0 3341 | dev: true 3342 | 3343 | /source-map-support@0.5.21: 3344 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 3345 | dependencies: 3346 | buffer-from: 1.1.2 3347 | source-map: 0.6.1 3348 | dev: true 3349 | 3350 | /source-map@0.6.1: 3351 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 3352 | engines: {node: '>=0.10.0'} 3353 | dev: true 3354 | 3355 | /sprintf-js@1.1.2: 3356 | resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} 3357 | dev: true 3358 | 3359 | /sprintf-js@1.1.3: 3360 | resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} 3361 | dev: true 3362 | 3363 | /sshpk@1.18.0: 3364 | resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} 3365 | engines: {node: '>=0.10.0'} 3366 | hasBin: true 3367 | dependencies: 3368 | asn1: 0.2.6 3369 | assert-plus: 1.0.0 3370 | bcrypt-pbkdf: 1.0.2 3371 | dashdash: 1.14.1 3372 | ecc-jsbn: 0.1.2 3373 | getpass: 0.1.7 3374 | jsbn: 0.1.1 3375 | safer-buffer: 2.1.2 3376 | tweetnacl: 0.14.5 3377 | dev: false 3378 | 3379 | /state-switch@0.14.1: 3380 | resolution: {integrity: sha512-jjrfbEginodItuMpma06LDWQKPQBIMpEZo8qg04NtD2qU5eIC1rrr6UUDGKPYtLT5VvR3HK12DNx7IQr4A+eXQ==} 3381 | dependencies: 3382 | nop: 1.0.0 3383 | dev: false 3384 | 3385 | /state-switch@1.6.3(brolog@1.14.2)(gerror@1.0.16)(rxjs@7.8.1): 3386 | resolution: {integrity: sha512-D1SwjaDbR5FAivty3SlpU/rD5B9PtnfDkR+BKLkYYxJRUmFqGSD96iwi6t8rIby9vBJJH9CTZyZO/aYzGBzMPw==} 3387 | engines: {node: '>=16', npm: '>=7'} 3388 | peerDependencies: 3389 | brolog: ^1.14.2 3390 | gerror: ^1.0.16 3391 | rxjs: ^7.4.0 3392 | dependencies: 3393 | '@pipeletteio/nop': 1.0.5 3394 | brolog: 1.14.2 3395 | gerror: 1.0.16 3396 | rxjs: 7.8.1 3397 | xstate: 4.38.3 3398 | dev: false 3399 | 3400 | /state-switch@1.7.1(brolog@1.14.2)(gerror@1.0.16)(rxjs@7.8.1): 3401 | resolution: {integrity: sha512-P8G42lE6JW8l9wbYSxRfB81qTGJw+z4fXN9jSRpOy5i09oonoFcOZGGObvYyiMz7pxatTzbWzhHi+ioKzflm2g==} 3402 | engines: {node: '>=16', npm: '>=7'} 3403 | peerDependencies: 3404 | brolog: ^1.14.2 3405 | gerror: ^1.0.16 3406 | rxjs: ^7.4.0 3407 | dependencies: 3408 | '@pipeletteio/nop': 1.0.5 3409 | brolog: 1.14.2 3410 | gerror: 1.0.16 3411 | rxjs: 7.8.1 3412 | xstate: 4.38.3 3413 | dev: false 3414 | 3415 | /string-width@4.2.3: 3416 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3417 | engines: {node: '>=8'} 3418 | dependencies: 3419 | emoji-regex: 8.0.0 3420 | is-fullwidth-code-point: 3.0.0 3421 | strip-ansi: 6.0.1 3422 | dev: false 3423 | 3424 | /string_decoder@1.1.1: 3425 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 3426 | dependencies: 3427 | safe-buffer: 5.1.2 3428 | dev: false 3429 | 3430 | /string_decoder@1.3.0: 3431 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 3432 | dependencies: 3433 | safe-buffer: 5.2.1 3434 | dev: false 3435 | 3436 | /strip-ansi@6.0.1: 3437 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3438 | engines: {node: '>=8'} 3439 | dependencies: 3440 | ansi-regex: 5.0.1 3441 | dev: false 3442 | 3443 | /strnum@1.0.5: 3444 | resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} 3445 | dev: false 3446 | 3447 | /stronger-typed-streams@0.2.0: 3448 | resolution: {integrity: sha512-ffROKnjOTZ1JvaiuN2mugBo4GIyLQWGF1oUaPOFaaW14IR6pdF5DN4Pn8Gv/GkbnbO8e1CdcY1ZvIal61r7diw==} 3449 | dev: false 3450 | 3451 | /strtok3@6.3.0: 3452 | resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} 3453 | engines: {node: '>=10'} 3454 | dependencies: 3455 | '@tokenizer/token': 0.3.0 3456 | peek-readable: 4.1.0 3457 | dev: false 3458 | 3459 | /supports-color@5.5.0: 3460 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3461 | engines: {node: '>=4'} 3462 | dependencies: 3463 | has-flag: 3.0.0 3464 | dev: true 3465 | 3466 | /supports-color@7.2.0: 3467 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3468 | engines: {node: '>=8'} 3469 | dependencies: 3470 | has-flag: 4.0.0 3471 | 3472 | /supports-preserve-symlinks-flag@1.0.0: 3473 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3474 | engines: {node: '>= 0.4'} 3475 | dev: true 3476 | 3477 | /systeminformation@5.23.5: 3478 | resolution: {integrity: sha512-PEpJwhRYxZgBCAlWZhWIgfMTjXLqfcaZ1pJsJn9snWNfBW/Z1YQg1mbIUSWrEV3ErAHF7l/OoVLQeaZDlPzkpA==} 3479 | engines: {node: '>=8.0.0'} 3480 | os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] 3481 | hasBin: true 3482 | requiresBuild: true 3483 | dev: true 3484 | optional: true 3485 | 3486 | /tar-fs@2.1.1: 3487 | resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} 3488 | dependencies: 3489 | chownr: 1.1.4 3490 | mkdirp-classic: 0.5.3 3491 | pump: 3.0.2 3492 | tar-stream: 2.2.0 3493 | dev: false 3494 | 3495 | /tar-stream@2.2.0: 3496 | resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 3497 | engines: {node: '>=6'} 3498 | dependencies: 3499 | bl: 4.1.0 3500 | end-of-stream: 1.4.4 3501 | fs-constants: 1.0.0 3502 | inherits: 2.0.4 3503 | readable-stream: 3.6.2 3504 | dev: false 3505 | 3506 | /through@2.3.8: 3507 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 3508 | dev: false 3509 | 3510 | /timm@1.7.1: 3511 | resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} 3512 | dev: false 3513 | 3514 | /tinycolor2@1.6.0: 3515 | resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} 3516 | dev: false 3517 | 3518 | /to-regex-range@5.0.1: 3519 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3520 | engines: {node: '>=8.0'} 3521 | dependencies: 3522 | is-number: 7.0.0 3523 | dev: true 3524 | 3525 | /token-types@4.2.1: 3526 | resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} 3527 | engines: {node: '>=10'} 3528 | dependencies: 3529 | '@tokenizer/token': 0.3.0 3530 | ieee754: 1.2.1 3531 | dev: false 3532 | 3533 | /touch@3.1.1: 3534 | resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} 3535 | hasBin: true 3536 | dev: true 3537 | 3538 | /tough-cookie@2.5.0: 3539 | resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} 3540 | engines: {node: '>=0.8'} 3541 | dependencies: 3542 | psl: 1.15.0 3543 | punycode: 2.3.1 3544 | dev: false 3545 | 3546 | /tr46@0.0.3: 3547 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 3548 | dev: false 3549 | 3550 | /ts-node@10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.7.2): 3551 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} 3552 | hasBin: true 3553 | peerDependencies: 3554 | '@swc/core': '>=1.2.50' 3555 | '@swc/wasm': '>=1.2.50' 3556 | '@types/node': '*' 3557 | typescript: '>=2.7' 3558 | peerDependenciesMeta: 3559 | '@swc/core': 3560 | optional: true 3561 | '@swc/wasm': 3562 | optional: true 3563 | dependencies: 3564 | '@cspotcode/source-map-support': 0.8.1 3565 | '@swc/core': 1.9.3 3566 | '@tsconfig/node10': 1.0.11 3567 | '@tsconfig/node12': 1.0.11 3568 | '@tsconfig/node14': 1.0.3 3569 | '@tsconfig/node16': 1.0.4 3570 | '@types/node': 22.10.1 3571 | acorn: 8.14.0 3572 | acorn-walk: 8.3.4 3573 | arg: 4.1.3 3574 | create-require: 1.1.1 3575 | diff: 4.0.2 3576 | make-error: 1.3.6 3577 | typescript: 5.7.2 3578 | v8-compile-cache-lib: 3.0.1 3579 | yn: 3.1.1 3580 | dev: true 3581 | 3582 | /tslib@1.9.3: 3583 | resolution: {integrity: sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==} 3584 | dev: true 3585 | 3586 | /tslib@2.1.0: 3587 | resolution: {integrity: sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==} 3588 | dev: false 3589 | 3590 | /tslib@2.8.1: 3591 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 3592 | 3593 | /tunnel-agent@0.6.0: 3594 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} 3595 | dependencies: 3596 | safe-buffer: 5.2.1 3597 | dev: false 3598 | 3599 | /tv4@1.3.0: 3600 | resolution: {integrity: sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==} 3601 | engines: {node: '>= 0.8.0'} 3602 | dev: true 3603 | 3604 | /tweetnacl@0.14.5: 3605 | resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} 3606 | dev: false 3607 | 3608 | /tx2@1.0.5: 3609 | resolution: {integrity: sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==} 3610 | requiresBuild: true 3611 | dependencies: 3612 | json-stringify-safe: 5.0.1 3613 | dev: true 3614 | optional: true 3615 | 3616 | /typed-emitter@1.5.0-from-event: 3617 | resolution: {integrity: sha512-KfCo0Zhj/5HSs5gxBINypaS/vMg/8KwyWeuD3YsBsIT95vRopuYWc5LE7sqpWydzNc6Zd/uQ1EHPZ/dpsmJSzw==} 3618 | optionalDependencies: 3619 | rxjs: 7.8.1 3620 | dev: false 3621 | 3622 | /typesafe-actions@5.1.0: 3623 | resolution: {integrity: sha512-bna6Yi1pRznoo6Bz1cE6btB/Yy8Xywytyfrzu/wc+NFW3ZF0I+2iCGImhBsoYYCOWuICtRO4yHcnDlzgo1AdNg==} 3624 | engines: {node: '>= 4'} 3625 | dev: false 3626 | 3627 | /typescript@5.7.2: 3628 | resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} 3629 | engines: {node: '>=14.17'} 3630 | hasBin: true 3631 | dev: true 3632 | 3633 | /unbzip2-stream@1.4.3: 3634 | resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} 3635 | dependencies: 3636 | buffer: 5.7.1 3637 | through: 2.3.8 3638 | dev: false 3639 | 3640 | /undefsafe@2.0.5: 3641 | resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} 3642 | dev: true 3643 | 3644 | /undici-types@6.20.0: 3645 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 3646 | 3647 | /universalify@2.0.1: 3648 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 3649 | engines: {node: '>= 10.0.0'} 3650 | 3651 | /uri-js@4.4.1: 3652 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3653 | dependencies: 3654 | punycode: 2.3.1 3655 | dev: false 3656 | 3657 | /utif@2.0.1: 3658 | resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} 3659 | dependencies: 3660 | pako: 1.0.11 3661 | dev: false 3662 | 3663 | /util-deprecate@1.0.2: 3664 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3665 | dev: false 3666 | 3667 | /utility-types@3.11.0: 3668 | resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} 3669 | engines: {node: '>= 4'} 3670 | dev: false 3671 | 3672 | /uuid@3.4.0: 3673 | resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} 3674 | deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. 3675 | hasBin: true 3676 | dev: false 3677 | 3678 | /uuid@8.3.2: 3679 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 3680 | hasBin: true 3681 | dev: false 3682 | 3683 | /v8-compile-cache-lib@3.0.1: 3684 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 3685 | dev: true 3686 | 3687 | /verror@1.10.0: 3688 | resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} 3689 | engines: {'0': node >=0.6.0} 3690 | dependencies: 3691 | assert-plus: 1.0.0 3692 | core-util-is: 1.0.2 3693 | extsprintf: 1.3.0 3694 | dev: false 3695 | 3696 | /vizion@2.2.1: 3697 | resolution: {integrity: sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==} 3698 | engines: {node: '>=4.0'} 3699 | dependencies: 3700 | async: 2.6.4 3701 | git-node-fs: 1.0.0(js-git@0.7.8) 3702 | ini: 1.3.8 3703 | js-git: 0.7.8 3704 | dev: true 3705 | 3706 | /watchdog@0.8.17: 3707 | resolution: {integrity: sha512-RHxxLKqtggCGapGIng8OBOzebF9rx2ucl4bT36mj7GkipcIzj4Rhg0nlcP0RpMHtC8Gys4a5F9/DXz/qYIa0WQ==} 3708 | dependencies: 3709 | brolog: 1.14.2 3710 | dev: false 3711 | 3712 | /watchdog@0.9.2: 3713 | resolution: {integrity: sha512-bJ5u3KYaTXFhfT83CemH5l3DCmvXSjYHFOv2cE9SS1oRRlMLTFcOUNMVsAXNvAHWkRCnv/iTGs0JIVmJAN99Bg==} 3714 | engines: {node: '>=16', npm: '>=7'} 3715 | dependencies: 3716 | brolog: 1.14.2 3717 | dev: false 3718 | 3719 | /webidl-conversions@3.0.1: 3720 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 3721 | dev: false 3722 | 3723 | /wechat4u@0.7.14: 3724 | resolution: {integrity: sha512-BDEHSL1drGX8f9QdclOiTQcL6EtaIQWZ0MVsTeFkxGM1xVikqqlK7WcJp2IOpK0RczG4lFvXwDmOgzyZnA1waQ==} 3725 | dependencies: 3726 | axios: 1.7.8(debug@2.6.9) 3727 | bl: 1.2.3 3728 | debug: 2.6.9 3729 | form-data: 2.5.2 3730 | lodash: 4.17.21 3731 | mime: 1.6.0 3732 | transitivePeerDependencies: 3733 | - supports-color 3734 | dev: false 3735 | 3736 | /wechaty-grpc@1.5.2: 3737 | resolution: {integrity: sha512-oOXU62oDf8/LIg8wAqSoZogZ+NFSGIAJvYuTewR6x5Ia4iWjbfrlwy7NHjWGBLkKM2EpnxgOAjyxhAb1iMxTJg==} 3738 | engines: {node: '>=16', npm: '>=7'} 3739 | dependencies: 3740 | '@grpc/grpc-js': 1.12.2 3741 | google-protobuf: 3.21.4 3742 | stronger-typed-streams: 0.2.0 3743 | dev: false 3744 | 3745 | /wechaty-puppet-service@1.19.9(brolog@1.14.2)(redux@4.2.1)(wechaty-puppet@1.20.2)(wechaty@1.20.2): 3746 | resolution: {integrity: sha512-nmJmG67hhM0M2gzr+yXDw8HIGn0BBB1p8b9+Fw7D0ENP7olMRuBPW7ST+Qs0WXJjd4X2+uoAsdCErs3L5d5JzA==} 3747 | engines: {node: '>=16', npm: '>=7'} 3748 | peerDependencies: 3749 | wechaty-puppet: ^1.19.1 3750 | dependencies: 3751 | clone-class: 1.1.3 3752 | ducks: 1.0.2(redux-observable@2.0.0)(redux@4.2.1) 3753 | file-box: 1.5.5 3754 | flash-store: 1.3.5 3755 | gerror: 1.0.16 3756 | redux-observable: 2.0.0(redux@4.2.1) 3757 | rxjs: 7.8.1 3758 | semver: 7.6.3 3759 | stronger-typed-streams: 0.2.0 3760 | uuid: 8.3.2 3761 | wechaty-grpc: 1.5.2 3762 | wechaty-puppet: 1.20.2(rxjs@7.8.1) 3763 | wechaty-redux: 1.20.2(brolog@1.14.2)(wechaty-puppet@1.20.2)(wechaty@1.20.2) 3764 | wechaty-token: 1.1.2 3765 | transitivePeerDependencies: 3766 | - brolog 3767 | - debug 3768 | - redux 3769 | - supports-color 3770 | - wechaty 3771 | dev: false 3772 | 3773 | /wechaty-puppet-wechat4u@1.14.14(@swc/core@1.9.3)(wechaty-puppet@1.20.2): 3774 | resolution: {integrity: sha512-KuJxwu9HrZ/al+ZduBP9As3wHM11urhNZr3tT5AmngVdq04KaGfufrMDdAfnRgGbFz1WMjQ6BfzObyM6qYBZ0w==} 3775 | engines: {node: '>=16', npm: '>=7'} 3776 | peerDependencies: 3777 | '@swc/core': ^1.3.100 3778 | wechaty-puppet: ^1.20.2 3779 | dependencies: 3780 | '@alloc/quick-lru': 5.2.0 3781 | '@swc/core': 1.9.3 3782 | fast-xml-parser: 3.21.1 3783 | promise-retry: 2.0.1 3784 | wechat4u: 0.7.14 3785 | wechaty-puppet: 1.20.2(rxjs@7.8.1) 3786 | xml2js: 0.4.23 3787 | transitivePeerDependencies: 3788 | - supports-color 3789 | dev: false 3790 | 3791 | /wechaty-puppet-wechat@1.18.4(brolog@1.14.2)(gerror@1.0.16)(wechaty-puppet@1.20.2): 3792 | resolution: {integrity: sha512-sgH+FCeQJ+Kd6NhYNWVqgvxkR5Sc0YSjhJhFu7HGIMhFh1S25k7LSHP0tsrOK2CZuWe3gOa5tTCUQo5d7IL/Xw==} 3793 | engines: {node: '>=16', npm: '>=7'} 3794 | peerDependencies: 3795 | wechaty-puppet: ^1.18.3 3796 | dependencies: 3797 | cockatiel: 2.0.2 3798 | md5: 2.3.0 3799 | mime: 3.0.0 3800 | puppeteer: 13.7.0 3801 | puppeteer-extra: 3.3.6(puppeteer@13.7.0) 3802 | puppeteer-extra-plugin-stealth: 2.11.2(puppeteer-extra@3.3.6) 3803 | qr-image: 3.2.0 3804 | request: 2.88.2 3805 | rx-queue: 1.0.5 3806 | rxjs: 7.8.1 3807 | state-switch: 1.6.3(brolog@1.14.2)(gerror@1.0.16)(rxjs@7.8.1) 3808 | watchdog: 0.8.17 3809 | wechaty-puppet: 1.20.2(rxjs@7.8.1) 3810 | xml2js: 0.4.23 3811 | transitivePeerDependencies: 3812 | - '@types/puppeteer' 3813 | - brolog 3814 | - bufferutil 3815 | - encoding 3816 | - gerror 3817 | - playwright-extra 3818 | - puppeteer-core 3819 | - supports-color 3820 | - utf-8-validate 3821 | dev: false 3822 | 3823 | /wechaty-puppet@1.20.2(rxjs@7.8.1): 3824 | resolution: {integrity: sha512-IXcnUc9A3hGIT+9CEF8KLkbdld+AQPfVlWLeUXmmSvm3I9NbSbVfU43FZvKMjvLCexvN5DZq2+JZdASESohI5Q==} 3825 | engines: {node: '>=16', npm: '>=7'} 3826 | dependencies: 3827 | '@alloc/quick-lru': 5.2.0 3828 | brolog: 1.14.2 3829 | clone-class: 1.1.3 3830 | file-box: 1.4.15 3831 | fp-ts: 2.16.9 3832 | gerror: 1.0.16 3833 | memory-card: 1.1.2 3834 | state-switch: 1.7.1(brolog@1.14.2)(gerror@1.0.16)(rxjs@7.8.1) 3835 | typed-emitter: 1.5.0-from-event 3836 | typesafe-actions: 5.1.0 3837 | uuid: 8.3.2 3838 | watchdog: 0.9.2 3839 | transitivePeerDependencies: 3840 | - debug 3841 | - rxjs 3842 | dev: false 3843 | 3844 | /wechaty-redux@1.20.2(brolog@1.14.2)(wechaty-puppet@1.20.2)(wechaty@1.20.2): 3845 | resolution: {integrity: sha512-XAhSmdCDa1yaAMRYPiYqbX3BL0T1Owyf+77HxLY+450AFAyjM4xak5ZLStLWIA3zEktgzn6KwEthtu7mmZ7n3g==} 3846 | engines: {node: '>=16', npm: '>=7'} 3847 | peerDependencies: 3848 | wechaty: ^1.18.1 3849 | wechaty-puppet: ^1.18.3 3850 | dependencies: 3851 | ducks: 1.0.2(redux-observable@2.0.0)(redux@4.2.1) 3852 | gerror: 1.0.16 3853 | redux: 4.2.1 3854 | redux-observable: 2.0.0(redux@4.2.1) 3855 | rxjs: 7.8.1 3856 | state-switch: 1.6.3(brolog@1.14.2)(gerror@1.0.16)(rxjs@7.8.1) 3857 | typed-emitter: 1.5.0-from-event 3858 | typesafe-actions: 5.1.0 3859 | utility-types: 3.11.0 3860 | uuid: 8.3.2 3861 | wechaty: 1.20.2(@swc/core@1.9.3)(brolog@1.14.2)(redux@4.2.1)(rxjs@7.8.1) 3862 | wechaty-puppet: 1.20.2(rxjs@7.8.1) 3863 | transitivePeerDependencies: 3864 | - brolog 3865 | dev: false 3866 | 3867 | /wechaty-token@1.1.2: 3868 | resolution: {integrity: sha512-OBeOPxu1FemhT28gndqZZBeRcT6D1RrMe9fpt5xwBBvxtG8eOJefNid/8SfPwNmCmBp72O7+JxB9DewquxHsYQ==} 3869 | engines: {node: '>=16', npm: '>=7'} 3870 | hasBin: true 3871 | dependencies: 3872 | brolog: 1.14.2 3873 | cmd-ts: 0.7.0 3874 | cockatiel: 2.0.2 3875 | uuid: 8.3.2 3876 | transitivePeerDependencies: 3877 | - supports-color 3878 | dev: false 3879 | 3880 | /wechaty@1.20.2(@swc/core@1.9.3)(brolog@1.14.2)(redux@4.2.1)(rxjs@7.8.1): 3881 | resolution: {integrity: sha512-bIZ8m2lOya4SKnxVunbMGemE8JyZdnXhnLnfXtBAZV997ef6uqP4pJxuwiJnV0qbXGyIE+F3B2b8yjQOZh43lQ==} 3882 | engines: {node: '>=16', npm: '>=7'} 3883 | hasBin: true 3884 | dependencies: 3885 | clone-class: 1.1.3 3886 | cmd-ts: 0.10.2 3887 | cockatiel: 2.0.2 3888 | cross-spawn: 7.0.6 3889 | dotenv: 16.4.5 3890 | file-box: 1.4.15 3891 | fp-ts: 2.16.9 3892 | gerror: 1.0.16 3893 | get-port: 6.1.2 3894 | json-rpc-peer: 0.17.0 3895 | memory-card: 1.1.2 3896 | open-graph: 0.2.6 3897 | rx-queue: 1.0.5 3898 | state-switch: 1.6.3(brolog@1.14.2)(gerror@1.0.16)(rxjs@7.8.1) 3899 | uuid: 8.3.2 3900 | wechaty-puppet: 1.20.2(rxjs@7.8.1) 3901 | wechaty-puppet-service: 1.19.9(brolog@1.14.2)(redux@4.2.1)(wechaty-puppet@1.20.2)(wechaty@1.20.2) 3902 | wechaty-puppet-wechat4u: 1.14.14(@swc/core@1.9.3)(wechaty-puppet@1.20.2) 3903 | wechaty-token: 1.1.2 3904 | ws: 8.18.0 3905 | transitivePeerDependencies: 3906 | - '@swc/core' 3907 | - brolog 3908 | - bufferutil 3909 | - debug 3910 | - redux 3911 | - rxjs 3912 | - supports-color 3913 | - utf-8-validate 3914 | dev: false 3915 | 3916 | /whatwg-url@5.0.0: 3917 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 3918 | dependencies: 3919 | tr46: 0.0.3 3920 | webidl-conversions: 3.0.1 3921 | dev: false 3922 | 3923 | /which-module@2.0.1: 3924 | resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} 3925 | dev: false 3926 | 3927 | /which@2.0.2: 3928 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3929 | engines: {node: '>= 8'} 3930 | hasBin: true 3931 | dependencies: 3932 | isexe: 2.0.0 3933 | dev: false 3934 | 3935 | /wrap-ansi@6.2.0: 3936 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 3937 | engines: {node: '>=8'} 3938 | dependencies: 3939 | ansi-styles: 4.3.0 3940 | string-width: 4.2.3 3941 | strip-ansi: 6.0.1 3942 | dev: false 3943 | 3944 | /wrap-ansi@7.0.0: 3945 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3946 | engines: {node: '>=10'} 3947 | dependencies: 3948 | ansi-styles: 4.3.0 3949 | string-width: 4.2.3 3950 | strip-ansi: 6.0.1 3951 | dev: false 3952 | 3953 | /wrappy@1.0.2: 3954 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3955 | dev: false 3956 | 3957 | /ws@7.5.10: 3958 | resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} 3959 | engines: {node: '>=8.3.0'} 3960 | peerDependencies: 3961 | bufferutil: ^4.0.1 3962 | utf-8-validate: ^5.0.2 3963 | peerDependenciesMeta: 3964 | bufferutil: 3965 | optional: true 3966 | utf-8-validate: 3967 | optional: true 3968 | dev: true 3969 | 3970 | /ws@8.18.0: 3971 | resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} 3972 | engines: {node: '>=10.0.0'} 3973 | peerDependencies: 3974 | bufferutil: ^4.0.1 3975 | utf-8-validate: '>=5.0.2' 3976 | peerDependenciesMeta: 3977 | bufferutil: 3978 | optional: true 3979 | utf-8-validate: 3980 | optional: true 3981 | dev: false 3982 | 3983 | /ws@8.5.0: 3984 | resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} 3985 | engines: {node: '>=10.0.0'} 3986 | peerDependencies: 3987 | bufferutil: ^4.0.1 3988 | utf-8-validate: ^5.0.2 3989 | peerDependenciesMeta: 3990 | bufferutil: 3991 | optional: true 3992 | utf-8-validate: 3993 | optional: true 3994 | dev: false 3995 | 3996 | /xhr@2.6.0: 3997 | resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} 3998 | dependencies: 3999 | global: 4.4.0 4000 | is-function: 1.0.2 4001 | parse-headers: 2.0.5 4002 | xtend: 4.0.2 4003 | dev: false 4004 | 4005 | /xml-parse-from-string@1.0.1: 4006 | resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} 4007 | dev: false 4008 | 4009 | /xml2js@0.4.23: 4010 | resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} 4011 | engines: {node: '>=4.0.0'} 4012 | dependencies: 4013 | sax: 1.4.1 4014 | xmlbuilder: 11.0.1 4015 | dev: false 4016 | 4017 | /xml2js@0.5.0: 4018 | resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} 4019 | engines: {node: '>=4.0.0'} 4020 | dependencies: 4021 | sax: 1.4.1 4022 | xmlbuilder: 11.0.1 4023 | dev: false 4024 | 4025 | /xmlbuilder@11.0.1: 4026 | resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} 4027 | engines: {node: '>=4.0'} 4028 | dev: false 4029 | 4030 | /xstate@4.38.3: 4031 | resolution: {integrity: sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw==} 4032 | dev: false 4033 | 4034 | /xtend@4.0.2: 4035 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 4036 | engines: {node: '>=0.4'} 4037 | dev: false 4038 | 4039 | /y18n@4.0.3: 4040 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} 4041 | dev: false 4042 | 4043 | /y18n@5.0.8: 4044 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 4045 | engines: {node: '>=10'} 4046 | dev: false 4047 | 4048 | /yallist@4.0.0: 4049 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 4050 | dev: true 4051 | 4052 | /yaml@2.6.1: 4053 | resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} 4054 | engines: {node: '>= 14'} 4055 | hasBin: true 4056 | dev: false 4057 | 4058 | /yargs-parser@18.1.3: 4059 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} 4060 | engines: {node: '>=6'} 4061 | dependencies: 4062 | camelcase: 5.3.1 4063 | decamelize: 1.2.0 4064 | dev: false 4065 | 4066 | /yargs-parser@21.1.1: 4067 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 4068 | engines: {node: '>=12'} 4069 | dev: false 4070 | 4071 | /yargs@15.4.1: 4072 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} 4073 | engines: {node: '>=8'} 4074 | dependencies: 4075 | cliui: 6.0.0 4076 | decamelize: 1.2.0 4077 | find-up: 4.1.0 4078 | get-caller-file: 2.0.5 4079 | require-directory: 2.1.1 4080 | require-main-filename: 2.0.0 4081 | set-blocking: 2.0.0 4082 | string-width: 4.2.3 4083 | which-module: 2.0.1 4084 | y18n: 4.0.3 4085 | yargs-parser: 18.1.3 4086 | dev: false 4087 | 4088 | /yargs@17.7.2: 4089 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 4090 | engines: {node: '>=12'} 4091 | dependencies: 4092 | cliui: 8.0.1 4093 | escalade: 3.2.0 4094 | get-caller-file: 2.0.5 4095 | require-directory: 2.1.1 4096 | string-width: 4.2.3 4097 | y18n: 5.0.8 4098 | yargs-parser: 21.1.1 4099 | dev: false 4100 | 4101 | /yauzl@2.10.0: 4102 | resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} 4103 | dependencies: 4104 | buffer-crc32: 0.2.13 4105 | fd-slicer: 1.1.0 4106 | dev: false 4107 | 4108 | /yn@3.1.1: 4109 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 4110 | engines: {node: '>=6'} 4111 | dev: true 4112 | -------------------------------------------------------------------------------- /src/api.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | import { Config } from './config'; 3 | 4 | /** 5 | * https://www.coze.cn/docs/developer_guides/coze_api_overview 6 | * 根据 Coze 开发指南,会话 Conversation 和消息 Message 与对话 Chat 使用了不同的 API 版本,当前使用 Chat 7 | * Conversation vs Message vs Chat: https://www.coze.cn/docs/developer_guides/coze_api_overview#4a288f73 8 | */ 9 | 10 | const API_VERSIONS = { 11 | v1: 'https://api.coze.cn/v1/', 12 | v3: 'https://api.coze.cn/v3/', 13 | }; 14 | 15 | const instanceV1 = axios.create({ 16 | baseURL: API_VERSIONS.v1, 17 | timeout: 10000, 18 | headers: { 19 | Authorization: `Bearer ${Config.accessToken}`, 20 | 'Content-Type': 'application/json', 21 | }, 22 | }); 23 | 24 | const instanceV3 = axios.create({ 25 | baseURL: API_VERSIONS.v3, 26 | timeout: 100000, 27 | headers: { 28 | Authorization: `Bearer ${Config.accessToken}`, 29 | 'Content-Type': 'application/json', 30 | }, 31 | }); 32 | 33 | export async function createConversation() { 34 | return instanceV1.post('/conversation/create', {}); 35 | } 36 | 37 | export async function createMessage() { 38 | return instanceV1.post('/message/create', {}); 39 | } 40 | 41 | export interface IMessage { 42 | role: 'user'; 43 | content: string; 44 | content_type: 'text'; 45 | } 46 | export async function chat(messages: IMessage[], name: string) { 47 | try { 48 | const response = await sendChatRequest(messages, name); 49 | const resolvedData = await collectStreamData(response.data); 50 | return resolvedData; 51 | } catch (error) { 52 | console.error('Chat error:', error); 53 | throw error; 54 | } 55 | } 56 | 57 | async function sendChatRequest(messages: IMessage[], name: string) { 58 | return instanceV3.post( 59 | '/chat', 60 | { 61 | bot_id: Config.botId, 62 | user_id: name, 63 | stream: true, 64 | additional_messages: messages, 65 | }, 66 | { 67 | responseType: 'stream', // 指定响应类型为流 68 | } 69 | ); 70 | } 71 | 72 | async function collectStreamData(stream: NodeJS.ReadStream): Promise { 73 | return new Promise((resolve, reject) => { 74 | let buffer = ''; // 用于缓存未完整的部分 75 | let response = ''; // 用于存储最终的响应内容 76 | 77 | // 提取并处理一行数据 78 | const processLine = () => { 79 | const boundary = buffer.indexOf('\n'); // 查找换行符的位置 80 | if (boundary === -1) return false; // 如果没有找到换行符,返回 false 81 | 82 | const line = buffer.slice(0, boundary).trim(); // 提取一行数据 83 | buffer = buffer.slice(boundary + 1); // 更新 buffer,去掉已处理的部分 84 | 85 | // 检查是否是事件行和数据行 86 | if (line.startsWith('event:') && buffer.startsWith('data:')) { 87 | const eventLine = line; 88 | const dataLine = buffer.slice(0, buffer.indexOf('\n')).trim(); // 提取数据行 89 | buffer = buffer.slice(buffer.indexOf('\n') + 1); // 更新 buffer,去掉已处理的部分 90 | 91 | // 只处理特定事件类型 92 | if (eventLine !== 'event:conversation.message.completed') { 93 | return true; // 继续处理下一行 94 | } 95 | 96 | const jsonStr = dataLine.slice(5); // 提取 JSON 字符串部分 97 | try { 98 | const data = JSON.parse(jsonStr); // 解析 JSON 数据 99 | // 检查数据类型和内容 100 | if (data.type !== 'answer' || data.content === '{}') { 101 | return true; // 继续处理下一行 102 | } 103 | 104 | response = data.content; // 提取 content 字段 105 | } catch (error) { 106 | console.error('Error parsing JSON:', error); // 处理 JSON 解析错误 107 | } 108 | } 109 | 110 | return true; // 继续处理下一行 111 | }; 112 | 113 | stream.on('data', (chunk: Buffer) => { 114 | buffer += chunk.toString(); // 将新的 chunk 拼接到 buffer 中 115 | console.log('buffer: ', buffer); 116 | 117 | while (processLine()); // 处理 buffer 中的所有完整行 118 | }); 119 | 120 | stream.on('end', () => { 121 | console.log('Stream ended', response); // 流结束时输出响应内容 122 | resolve(response); // 解析 Promise,返回响应内容 123 | }); 124 | 125 | stream.on('error', (error: Error) => { 126 | console.error('Stream error:', error); // 处理流错误 127 | reject(error); // 拒绝 Promise,返回错误 128 | }); 129 | }); 130 | } 131 | 132 | const CozeApi = { 133 | createConversation, 134 | createMessage, 135 | chat, 136 | }; 137 | 138 | export default CozeApi; 139 | -------------------------------------------------------------------------------- /src/config.ts: -------------------------------------------------------------------------------- 1 | import fs from 'fs'; 2 | import { parse } from 'yaml'; 3 | import { IConfig } from './interface'; 4 | 5 | let configFile: any = {}; 6 | 7 | // git config 8 | if (fs.existsSync('./config.yaml')) { 9 | // get configurations from 'config.yaml' first 10 | const file = fs.readFileSync('./config.yaml', 'utf8'); 11 | configFile = parse(file); 12 | } 13 | 14 | if (!configFile.accessToken && !configFile.botId) { 15 | throw new Error( 16 | '⚠️ No ACCESS_TOKEN or BOT_ID found in env, please export to env or configure in config.yaml' 17 | ); 18 | } 19 | 20 | console.log('🚀 Configurations:', configFile); 21 | 22 | export const Config: IConfig = { 23 | accessToken: configFile.accessToken, 24 | botId: configFile.botId, 25 | cozeTriggerKeyword: configFile.cozeTriggerKeyword || '', 26 | blacklist: configFile.blacklist || [], 27 | }; 28 | -------------------------------------------------------------------------------- /src/coze.ts: -------------------------------------------------------------------------------- 1 | import { Message } from "wechaty"; 2 | import { ContactInterface, RoomInterface } from "wechaty/impls"; 3 | import CozeApi, { IMessage } from './api'; 4 | import { Config } from "./config"; 5 | 6 | enum MessageType { 7 | Unknown = 0, 8 | Attachment = 1, // Attach(6), 9 | Audio = 2, // Audio(1), Voice(34) 10 | Contact = 3, // ShareCard(42) 11 | ChatHistory = 4, // ChatHistory(19) 12 | Emoticon = 5, // Sticker: Emoticon(15), Emoticon(47) 13 | Image = 6, // Img(2), Image(3) 14 | Text = 7, // Text(1) 15 | Location = 8, // Location(48) 16 | MiniProgram = 9, // MiniProgram(33) 17 | GroupNote = 10, // GroupNote(53) 18 | Transfer = 11, // Transfers(2000) 19 | RedEnvelope = 12, // RedEnvelopes(2001) 20 | Recalled = 13, // Recalled(10002) 21 | Url = 14, // Url(5) 22 | Video = 15, // Video(4), Video(43) 23 | Post = 16, // Moment, Channel, Tweet, etc 24 | } 25 | export default class CozeBot { 26 | // chatbot name (WeChat account name) 27 | botName: string = ''; 28 | 29 | // chatbot start time (prevent duplicate response on restart) 30 | startTime: Date = new Date(); 31 | 32 | // self-chat may cause some issue for some WeChat Account 33 | // please set to true if self-chat cause some errors 34 | disableSelfChat: boolean = false; 35 | 36 | // chatbot trigger keyword 37 | cozeTriggerKeyword: string = Config.cozeTriggerKeyword; 38 | 39 | // Coze error response 40 | cozeErrorMessage: string = '🤖️:Coze智能体摆烂了,请稍后再试~'; 41 | 42 | // Coze system content configuration (guided by OpenAI official document) 43 | currentDate: string = new Date().toISOString().split('T')[0]; 44 | 45 | // message size for a single reply by the bot 46 | SINGLE_MESSAGE_MAX_SIZE: number = 800; 47 | 48 | // set bot name during login stage 49 | setBotName(botName: string) { 50 | this.botName = botName; 51 | } 52 | 53 | // get trigger keyword in group chat: (@Name ) 54 | // in group chat, replace the special character after "@username" to space 55 | // to prevent cross-platfrom mention issue 56 | private get chatGroupTriggerKeyword(): string { 57 | return `@${this.botName} ${this.cozeTriggerKeyword || ''}`; 58 | } 59 | 60 | // configure API with model API keys and run an initial test 61 | async startCozeBot() { 62 | try { 63 | // Hint user the trigger keyword in private chat and group chat 64 | console.log(`🤖️ Coze name is: ${this.botName}`); 65 | console.log(`🎯 Trigger keyword in private chat is: ${this.cozeTriggerKeyword}`); 66 | console.log(`🎯 Trigger keyword in group chat is: ${this.chatGroupTriggerKeyword}`); 67 | // Run an initial test to confirm API works fine 68 | // await this.onChat("Say Hello World"); 69 | console.log(`✅ Coze starts success, ready to handle message!`); 70 | } catch (e) { 71 | console.error(`❌ ${e}`); 72 | } 73 | } 74 | 75 | // get clean message by removing reply separater and group mention characters 76 | private async cleanMessage({ 77 | message, 78 | rawText, 79 | messageType, 80 | isPrivateChat, 81 | }: { 82 | message: Message; 83 | messageType: MessageType; 84 | rawText: string; 85 | isPrivateChat: boolean; 86 | }): Promise { 87 | if (messageType === MessageType.Text) { 88 | let text = rawText; 89 | const item = rawText.split('- - - - - - - - - - - - - - -'); 90 | if (item.length > 1) { 91 | text = item[item.length - 1]; 92 | } 93 | return text.slice(isPrivateChat ? this.cozeTriggerKeyword.length : this.chatGroupTriggerKeyword.length); 94 | } 95 | 96 | if (messageType === MessageType.Url) { 97 | const urlLink = await message.toUrlLink(); 98 | const url = urlLink.payload.url; 99 | console.log('文章链接:', url); 100 | // 微信公众号分享长链接,包含 & 编码 101 | // http://mp.weixin.qq.com/s?__biz=MjM5NjM5MjQ4MQ==&mid=2651752963&idx=1&sn=6d3cdc5fb1b6235e82eeab0080b40455&chksm=bc73941ba5440bf4ae117aea9196763664c2074e45db306a1ca752fbed9da94a8434b142fff6&mpshare=1&scene=1&srcid=1022Z2ezhg8wxfmHeRhtwsza&sharer_shareinfo=b7e207bcaf654d5ba769ab3c6d6919e7&sharer_shareinfo_first=b7e207bcaf654d5ba769ab3c6d6919e7#rd' 102 | // 将 & 替换为 & 103 | const decodedUrl = url.replace(/&/g, '&'); 104 | const parsedUrl = new URL(decodedUrl); 105 | // 创建一个新的URLSearchParams对象,用于保存你想要保留的参数 106 | const searchParams = new URLSearchParams(parsedUrl.searchParams); 107 | const filteredParams = new URLSearchParams(); 108 | // 只保留 4 个关键参数 109 | ['__biz', 'mid', 'idx', 'sn'].forEach((param) => { 110 | const value = searchParams.get(param); 111 | if (value) { 112 | filteredParams.append(param, value); 113 | } 114 | }); 115 | const newUrl = `${parsedUrl.origin}${parsedUrl.pathname}?${filteredParams.toString()}`; 116 | return newUrl; 117 | } 118 | return ''; 119 | } 120 | 121 | // check whether Coze bot can be triggered 122 | private triggerCozeMessage(text: string, isPrivateChat: boolean = false): boolean { 123 | const cozeTriggerKeyword = this.cozeTriggerKeyword; 124 | let triggered = false; 125 | if (isPrivateChat) { 126 | triggered = cozeTriggerKeyword ? text.startsWith(cozeTriggerKeyword) : true; 127 | } else { 128 | // due to un-unified @ lagging character, ignore it and just match: 129 | // 1. the "@username" (mention) 130 | // 2. trigger keyword 131 | // start with @username 132 | const textMention = `@${this.botName}`; 133 | const startsWithMention = text.startsWith(textMention); 134 | const textWithoutMention = text.slice(textMention.length + 1); 135 | const followByTriggerKeyword = textWithoutMention.startsWith(this.cozeTriggerKeyword); 136 | triggered = startsWithMention && !!textWithoutMention && followByTriggerKeyword; 137 | } 138 | if (triggered) { 139 | console.log(`🎯 Coze triggered: ${text}`); 140 | } 141 | return triggered; 142 | } 143 | 144 | // filter out the message that does not need to be processed 145 | private isNonsense(talker: ContactInterface, messageType: MessageType, text: string): boolean { 146 | return ( 147 | (this.disableSelfChat && talker.self()) || 148 | ![MessageType.Text, MessageType.Url].includes(messageType) || 149 | // 虽然可能误伤,但是更全面地过滤 150 | talker.name().includes('微信') || 151 | // video or voice reminder 152 | text.includes('收到一条视频/语音聊天消息,请在手机上查看') || 153 | // red pocket reminder 154 | text.includes('收到红包,请在手机上查看') || 155 | // location information 156 | text.includes('/cgi-bin/mmwebwx-bin/webwxgetpubliclinkimg') 157 | ); 158 | } 159 | 160 | // create messages for Coze API request 161 | // TODO: store history chats for supporting context chat 162 | private createMessages(text: string): IMessage[] { 163 | const messages = [ 164 | { 165 | role: 'user' as const, 166 | content: text, 167 | content_type: 'text' as const, 168 | }, 169 | ]; 170 | return messages; 171 | } 172 | 173 | // send question to Coze with OpenAI API and get answer 174 | async onChat(text: string, name: string): Promise { 175 | const inputMessages = this.createMessages(text); 176 | try { 177 | // config OpenAI API request body 178 | const chatgptReplyMessage = await CozeApi.chat(inputMessages, name); 179 | console.log(`🤖️ Coze says: ${chatgptReplyMessage}`); 180 | return chatgptReplyMessage || this.cozeErrorMessage; 181 | } catch (e: any) { 182 | console.error(`❌ ${e}`); 183 | return this.cozeErrorMessage; 184 | } 185 | } 186 | 187 | // reply with the segmented messages from a single-long message 188 | private async reply(talker: RoomInterface | ContactInterface, message: string): Promise { 189 | const messages: Array = []; 190 | while (message.length > this.SINGLE_MESSAGE_MAX_SIZE) { 191 | messages.push(message.slice(0, this.SINGLE_MESSAGE_MAX_SIZE)); 192 | message = message.slice(this.SINGLE_MESSAGE_MAX_SIZE); 193 | } 194 | messages.push(message); 195 | for (const msg of messages) { 196 | await talker.say(msg); 197 | } 198 | } 199 | 200 | // reply to private message 201 | private async onPrivateMessage(talker: ContactInterface, text: string, name: string) { 202 | // get reply from Coze 203 | try { 204 | const chatgptReplyMessage = await this.onChat(text, name); 205 | if (!chatgptReplyMessage) { 206 | return; 207 | } 208 | 209 | // send the Coze reply to chat 210 | await this.reply(talker, chatgptReplyMessage); 211 | } catch (e) { 212 | console.log('no reply...'); 213 | } 214 | } 215 | 216 | // reply to group message 217 | private async onGroupMessage(room: RoomInterface, text: string, name: string) { 218 | // get reply from Coze 219 | const chatgptReplyMessage = await this.onChat(text, name); 220 | // the whole reply consist of: original text and bot reply 221 | const wholeReplyMessage = `${text}\n----------\n${chatgptReplyMessage}`; 222 | await this.reply(room, wholeReplyMessage); 223 | } 224 | 225 | // Check if the talker is in the blacklist 226 | private isBlacklisted(talkerName: string): boolean { 227 | return !!Config.blacklist && Config.blacklist.includes(talkerName); 228 | } 229 | 230 | // receive a message (main entry) 231 | async onMessage(message: Message) { 232 | const talker = message.talker(); 233 | const rawText = message.text(); 234 | const room = message.room(); 235 | const messageType = message.type(); 236 | const isPrivateChat = !room; 237 | 238 | // Check if the talker is in the blacklist or the message is irrelevant 239 | if (this.isBlacklisted(talker.name()) || this.isNonsense(talker, messageType, rawText) || !this.triggerCozeMessage(rawText, isPrivateChat)) { 240 | console.log(`⚠️ Message from blacklisted or irrelevant account: ${talker.name()}`); 241 | return; 242 | } 243 | 244 | // massage sender's name 245 | const name = talker.name(); 246 | // clean the message for Coze input 247 | const text = await this.cleanMessage({ message, messageType, rawText, isPrivateChat }); 248 | console.log('最终 name,text:', name, text); 249 | 250 | // reply to private or group chat 251 | if (isPrivateChat) { 252 | return await this.onPrivateMessage(talker, text, name); 253 | } else { 254 | return await this.onGroupMessage(room, text, name); 255 | } 256 | } 257 | } 258 | -------------------------------------------------------------------------------- /src/interface.ts: -------------------------------------------------------------------------------- 1 | export interface IConfig { 2 | accessToken: string; 3 | botId: string; 4 | cozeTriggerKeyword: string; 5 | blacklist?: string[]; 6 | } 7 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import QRCode from 'qrcode'; 2 | import { WechatyBuilder, ScanStatus } from 'wechaty'; 3 | import CozeBot from './coze'; 4 | 5 | // Wechaty instance 6 | const wechatBot = WechatyBuilder.build({ 7 | name: 'wechat-coze-bot', 8 | }); 9 | // CozeBot instance 10 | const cozeBot = new CozeBot(); 11 | 12 | async function main() { 13 | wechatBot 14 | // scan QR code for login 15 | .on('scan', async (qrcode, status) => { 16 | const url = `https://wechaty.js.org/qrcode/${encodeURIComponent(qrcode)}`; 17 | console.log(`💡 Scan QR Code in WeChat to login: ${ScanStatus[status]}\n${url}`); 18 | console.log(await QRCode.toString(qrcode, { type: 'terminal', small: true })); 19 | }) 20 | // login to WeChat desktop account 21 | .on('login', async (user: any) => { 22 | console.log(`✅ User ${user} has logged in`); 23 | cozeBot.setBotName(user.name()); 24 | await cozeBot.startCozeBot(); 25 | }) 26 | // message handler 27 | .on('message', async (message: any) => { 28 | try { 29 | // prevent accidentally respond to history chat on restart 30 | // only respond to message later than chatbot start time 31 | const msgDate = message.date(); 32 | if (msgDate.getTime() <= cozeBot.startTime.getTime()) { 33 | return; 34 | } 35 | 36 | console.log(`📨 ${message}`); 37 | // handle message for chatGPT bot 38 | await cozeBot.onMessage(message); 39 | } catch (e) { 40 | console.error(`❌ ${e}`); 41 | } 42 | }); 43 | 44 | try { 45 | await wechatBot.start(); 46 | } catch (e) { 47 | console.error(`❌ Your Bot failed to start: ${e}`); 48 | console.log('🤔 Can you login WeChat in browser? The bot works on the desktop WeChat'); 49 | } 50 | } 51 | main(); 52 | -------------------------------------------------------------------------------- /static/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSInsight/coze-on-wechat/260f7d3e675a186c62827f109a388aff94dfe259/static/chat.png -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "declaration": true 6 | } 7 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "src/**/*" 4 | ], 5 | "exclude": [ 6 | "node_modules", 7 | "**/*.spec.ts" 8 | ], 9 | "compilerOptions": { 10 | "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ 11 | "rootDir": "./src", /* Specify the root folder within your source files. */ 12 | "outDir": "./dist", /* Specify an output folder for all emitted files. */ 13 | "module": "CommonJS", /* Specify what module code is generated. */ 14 | "moduleResolution": "Node", /* Specify how TypeScript looks up a file from a given module specifier. */ 15 | "resolveJsonModule": true, /* Enable importing .json files */ 16 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ 17 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ 18 | "strict": true, /* Enable all strict type-checking options. */ 19 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 20 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 21 | 22 | /* Projects */ 23 | // "incremental": true, /* Enable incremental compilation */ 24 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 25 | // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ 26 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ 27 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 28 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 29 | 30 | /* Language and Environment */ 31 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 32 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 33 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 34 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 35 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ 36 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 37 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ 38 | // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ 39 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 40 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 41 | 42 | /* Modules */ 43 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 44 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 45 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 46 | // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ 47 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 48 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 49 | // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ 50 | 51 | /* JavaScript Support */ 52 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ 53 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 54 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ 55 | 56 | /* Emit */ 57 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 58 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 59 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 60 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 61 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ 62 | // "removeComments": true, /* Disable emitting comments. */ 63 | // "noEmit": true, /* Disable emitting files from a compilation. */ 64 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 65 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ 66 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 67 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 68 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 69 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 70 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 71 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 72 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 73 | // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ 74 | // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ 75 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 76 | // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ 77 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 78 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 79 | 80 | /* Interop Constraints */ 81 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 82 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 83 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 84 | /* Type Checking */ 85 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ 86 | // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ 87 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 88 | // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ 89 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 90 | // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ 91 | // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ 92 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 93 | // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ 94 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ 95 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 96 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 97 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 98 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 99 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 100 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ 101 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 102 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 103 | 104 | /* Completeness */ 105 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 106 | } 107 | } 108 | --------------------------------------------------------------------------------