├── .gitignore ├── mp1.png ├── package.json ├── main.js ├── README.md └── pnpm-lock.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /mp1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengbangbo/mp-code/HEAD/mp1.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "miniprogram-automator": "^0.12.0", 4 | "express": "^4.18.2" 5 | }, 6 | "scripts": { 7 | "start": "node main.js" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | const automator = require('miniprogram-automator') 2 | const express = require('express') 3 | const app = express() 4 | const port = 3000 5 | 6 | app.get('/', (req, res) => { 7 | // 连接开发者工具 8 | // https://developers.weixin.qq.com/miniprogram/dev/devtools/auto/automator.html#automator-connect 9 | automator.connect({ 10 | wsEndpoint: 'ws://localhost:9420', 11 | }).then(async miniProgram => { 12 | const data = await miniProgram.callWxMethod('login') 13 | console.log(data); 14 | res.send(data) 15 | miniProgram.disconnect() 16 | }) 17 | }) 18 | 19 | app.get('/launch', (req, res) => { 20 | // 获取 req 中的参数 21 | const { projectPath } = req.query 22 | // 启动并连接开发者工具 23 | // https://developers.weixin.qq.com/miniprogram/dev/devtools/auto/automator.html#automator-launch 24 | automator.launch({ 25 | // NOTE: 请根据实际情况修改 26 | projectPath, 27 | }).then(async miniProgram => { 28 | const data = await miniProgram.callWxMethod('login') 29 | console.log(data); 30 | res.send(data) 31 | miniProgram.close() 32 | }) 33 | }) 34 | 35 | app.listen(port, () => { 36 | console.log(`Example app listening on port ${port}`) 37 | }) 38 | 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 微信小程序获取 Code 2 | 3 | 该工具在本地开启一个接口(默认:[http://localhost:3000](http://localhost:3000)),连接微信开发者工具,调用 `wx.login` 接口,获取登录凭证(code)。 4 | 5 | * 使用场景:小程序接口自动化测试 6 | * 限制:只能本地使用,无法在服务器上运行。可以通过本地暴露接口的方式解决。 7 | 8 | 9 | 10 | ## 使用 11 | 12 | 13 | 14 | 微信开发者工具开启「服务端口」 15 | ![微信开发者工具开启服务端口](mp1.png) 16 | 17 | [命令行开启「自动化监听端口」](https://developers.weixin.qq.com/miniprogram/dev/devtools/cli.html#%E5%BC%80%E5%90%AF%E8%87%AA%E5%8A%A8%E5%8C%96) 18 | 19 | 20 | ```shell 21 | # macOS: <安装路径>/Contents/MacOS/cli 22 | # Windows: <安装路径>/cli.bat 23 | ./cli auto --project /Users/xxxxxx/WeChatProjects/miniprogram --auto-port 9420 24 | ``` 25 | 26 | 克隆项目、安装依赖并启动 27 | 28 | ```shell 29 | pnpm i 30 | pnpm start 31 | ``` 32 | 33 | ### GET `/` 34 | 35 | * 速度快 36 | * 需要提前本地开启微信开发者工具并打开项目 37 | 38 | ### GET `/launch?projectPath=xxxxx` 39 | 40 | * 速度慢 41 | * 可以根据传入值打开不同的项目 42 | 43 | 🌰:`http://localhost:3000/launch?projectPath=/Users/xxxx/WeChatProjects/miniprogram` 44 | 45 | 46 | ## 更进一步 47 | 48 | - [命令行调用](https://developers.weixin.qq.com/miniprogram/dev/devtools/cli.html) 49 | - [HTTP调用](https://developers.weixin.qq.com/miniprogram/dev/devtools/http.html) 50 | - 51 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | express: ^4.18.2 5 | miniprogram-automator: ^0.12.0 6 | 7 | devDependencies: 8 | express: 4.18.2 9 | miniprogram-automator: 0.12.0 10 | 11 | packages: 12 | 13 | /@jimp/bmp/0.6.8_@jimp+custom@0.6.8: 14 | resolution: {integrity: sha512-uxVgSkI62uAzk5ZazYHEHBehow590WAkLKmDXLzkr/XP/Hv2Fx1T4DKwJ/15IY5ktq5VAhAUWGXTyd8KWFsx7w==} 15 | peerDependencies: 16 | '@jimp/custom': '>=0.3.5' 17 | dependencies: 18 | '@jimp/custom': 0.6.8 19 | '@jimp/utils': 0.6.8 20 | bmp-js: 0.1.0 21 | core-js: 2.6.12 22 | dev: true 23 | 24 | /@jimp/core/0.6.8: 25 | resolution: {integrity: sha512-JOFqBBcSNiDiMZJFr6OJqC6viXj5NVBQISua0eacoYvo4YJtTajOIxC4MqWyUmGrDpRMZBR8QhSsIOwsFrdROA==} 26 | dependencies: 27 | '@jimp/utils': 0.6.8 28 | any-base: 1.1.0 29 | buffer: 5.7.1 30 | core-js: 2.6.12 31 | exif-parser: 0.1.12 32 | file-type: 9.0.0 33 | load-bmfont: 1.4.1 34 | mkdirp: 0.5.1 35 | phin: 2.9.3 36 | pixelmatch: 4.0.2 37 | tinycolor2: 1.6.0 38 | dev: true 39 | 40 | /@jimp/custom/0.6.8: 41 | resolution: {integrity: sha512-FrYlzZRVXP2vuVwd7Nc2dlK+iZk4g6IaT1Ib8Z6vU5Kkwlt83FJIPJ2UUFABf3bF5big0wkk8ZUihWxE4Nzdng==} 42 | dependencies: 43 | '@jimp/core': 0.6.8 44 | core-js: 2.6.12 45 | dev: true 46 | 47 | /@jimp/gif/0.6.8_@jimp+custom@0.6.8: 48 | resolution: {integrity: sha512-yyOlujjQcgz9zkjM5ihZDEppn9d1brJ7jQHP5rAKmqep0G7FU1D0AKcV+Ql18RhuI/CgWs10wAVcrQpmLnu4Yw==} 49 | peerDependencies: 50 | '@jimp/custom': '>=0.3.5' 51 | dependencies: 52 | '@jimp/custom': 0.6.8 53 | '@jimp/utils': 0.6.8 54 | core-js: 2.6.12 55 | omggif: 1.0.10 56 | dev: true 57 | 58 | /@jimp/jpeg/0.6.8_@jimp+custom@0.6.8: 59 | resolution: {integrity: sha512-rGtXbYpFXAn471qLpTGvhbBMNHJo5KiufN+vC5AWyufntmkt5f0Ox2Cx4ijuBMDtirZchxbMLtrfGjznS4L/ew==} 60 | peerDependencies: 61 | '@jimp/custom': '>=0.3.5' 62 | dependencies: 63 | '@jimp/custom': 0.6.8 64 | '@jimp/utils': 0.6.8 65 | core-js: 2.6.12 66 | jpeg-js: 0.3.7 67 | dev: true 68 | 69 | /@jimp/plugin-blit/0.6.8_@jimp+custom@0.6.8: 70 | resolution: {integrity: sha512-7Tl6YpKTSpvwQbnGNhsfX2zyl3jRVVopd276Y2hF2zpDz9Bycow7NdfNU/4Nx1jaf96X6uWOtSVINcQ7rGd47w==} 71 | peerDependencies: 72 | '@jimp/custom': '>=0.3.5' 73 | dependencies: 74 | '@jimp/custom': 0.6.8 75 | '@jimp/utils': 0.6.8 76 | core-js: 2.6.12 77 | dev: true 78 | 79 | /@jimp/plugin-blur/0.6.8_@jimp+custom@0.6.8: 80 | resolution: {integrity: sha512-NpZCMKxXHLDQsX9zPlWtpMA660DQStY6/z8ZetyxCDbqrLe9YCXpeR4MNhdJdABIiwTm1W5FyFF4kp81PHJx3Q==} 81 | peerDependencies: 82 | '@jimp/custom': '>=0.3.5' 83 | dependencies: 84 | '@jimp/custom': 0.6.8 85 | '@jimp/utils': 0.6.8 86 | core-js: 2.6.12 87 | dev: true 88 | 89 | /@jimp/plugin-color/0.6.8_@jimp+custom@0.6.8: 90 | resolution: {integrity: sha512-jjFyU0zNmGOH2rjzHuOMU4kaia0oo82s/7UYfn5h7OUkmUZTd6Do3ZSK1PiXA7KR+s4B76/Omm6Doh/0SGb7BQ==} 91 | peerDependencies: 92 | '@jimp/custom': '>=0.3.5' 93 | dependencies: 94 | '@jimp/custom': 0.6.8 95 | '@jimp/utils': 0.6.8 96 | core-js: 2.6.12 97 | tinycolor2: 1.6.0 98 | dev: true 99 | 100 | /@jimp/plugin-contain/0.6.8_cz6quidkckfw4u2ow6dtp3utxe: 101 | resolution: {integrity: sha512-p/P2wCXhAzbmEgXvGsvmxLmbz45feF6VpR4m9suPSOr8PC/i/XvTklTqYEUidYYAft4vHgsYJdS74HKSMnH8lw==} 102 | peerDependencies: 103 | '@jimp/custom': '>=0.3.5' 104 | '@jimp/plugin-blit': '>=0.3.5' 105 | '@jimp/plugin-resize': '>=0.3.5' 106 | '@jimp/plugin-scale': '>=0.3.5' 107 | dependencies: 108 | '@jimp/custom': 0.6.8 109 | '@jimp/plugin-blit': 0.6.8_@jimp+custom@0.6.8 110 | '@jimp/plugin-resize': 0.6.8_@jimp+custom@0.6.8 111 | '@jimp/plugin-scale': 0.6.8_pv5r3zn2cet5m3dmuyd5eqvjby 112 | '@jimp/utils': 0.6.8 113 | core-js: 2.6.12 114 | dev: true 115 | 116 | /@jimp/plugin-cover/0.6.8_jkflgvmx7uto7oybzjhy3vyysy: 117 | resolution: {integrity: sha512-2PvWgk+PJfRsfWDI1G8Fpjrsu0ZlpNyZxO2+fqWlVo6y/y2gP4v08FqvbkcqSjNlOu2IDWIFXpgyU0sTINWZLg==} 118 | peerDependencies: 119 | '@jimp/custom': '>=0.3.5' 120 | '@jimp/plugin-crop': '>=0.3.5' 121 | '@jimp/plugin-resize': '>=0.3.5' 122 | '@jimp/plugin-scale': '>=0.3.5' 123 | dependencies: 124 | '@jimp/custom': 0.6.8 125 | '@jimp/plugin-crop': 0.6.8_@jimp+custom@0.6.8 126 | '@jimp/plugin-resize': 0.6.8_@jimp+custom@0.6.8 127 | '@jimp/plugin-scale': 0.6.8_pv5r3zn2cet5m3dmuyd5eqvjby 128 | '@jimp/utils': 0.6.8 129 | core-js: 2.6.12 130 | dev: true 131 | 132 | /@jimp/plugin-crop/0.6.8_@jimp+custom@0.6.8: 133 | resolution: {integrity: sha512-CbrcpWE2xxPK1n/JoTXzhRUhP4mO07mTWaSavenCg664oQl/9XCtL+A0FekuNHzIvn4myEqvkiTwN7FsbunS/Q==} 134 | peerDependencies: 135 | '@jimp/custom': '>=0.3.5' 136 | dependencies: 137 | '@jimp/custom': 0.6.8 138 | '@jimp/utils': 0.6.8 139 | core-js: 2.6.12 140 | dev: true 141 | 142 | /@jimp/plugin-displace/0.6.8_@jimp+custom@0.6.8: 143 | resolution: {integrity: sha512-RmV2bPxoPE6mrPxtYSPtHxm2cGwBQr5a2p+9gH6SPy+eUMrbGjbvjwKNfXWUYD0leML+Pt5XOmAS9pIROmuruQ==} 144 | peerDependencies: 145 | '@jimp/custom': '>=0.3.5' 146 | dependencies: 147 | '@jimp/custom': 0.6.8 148 | '@jimp/utils': 0.6.8 149 | core-js: 2.6.12 150 | dev: true 151 | 152 | /@jimp/plugin-dither/0.6.8_@jimp+custom@0.6.8: 153 | resolution: {integrity: sha512-x6V/qjxe+xypjpQm7GbiMNqci1EW5UizrcebOhHr8AHijOEqHd2hjXh5f6QIGfrkTFelc4/jzq1UyCsYntqz9Q==} 154 | peerDependencies: 155 | '@jimp/custom': '>=0.3.5' 156 | dependencies: 157 | '@jimp/custom': 0.6.8 158 | '@jimp/utils': 0.6.8 159 | core-js: 2.6.12 160 | dev: true 161 | 162 | /@jimp/plugin-flip/0.6.8_wtxy6og6odzniigjx6uy6pkrra: 163 | resolution: {integrity: sha512-4il6Da6G39s9MyWBEee4jztEOUGJ40E6OlPjkMrdpDNvge6hYEAB31BczTYBP/CEY74j4LDSoY5LbcU4kv06yA==} 164 | peerDependencies: 165 | '@jimp/custom': '>=0.3.5' 166 | '@jimp/plugin-rotate': '>=0.3.5' 167 | dependencies: 168 | '@jimp/custom': 0.6.8 169 | '@jimp/plugin-rotate': 0.6.8_aq6ikydk5peaauhnhksy7jiqlm 170 | '@jimp/utils': 0.6.8 171 | core-js: 2.6.12 172 | dev: true 173 | 174 | /@jimp/plugin-gaussian/0.6.8_@jimp+custom@0.6.8: 175 | resolution: {integrity: sha512-pVOblmjv7stZjsqloi4YzHVwAPXKGdNaHPhp4KP4vj41qtc6Hxd9z/+VWGYRTunMFac84gUToe0UKIXd6GhoKw==} 176 | peerDependencies: 177 | '@jimp/custom': '>=0.3.5' 178 | dependencies: 179 | '@jimp/custom': 0.6.8 180 | '@jimp/utils': 0.6.8 181 | core-js: 2.6.12 182 | dev: true 183 | 184 | /@jimp/plugin-invert/0.6.8_@jimp+custom@0.6.8: 185 | resolution: {integrity: sha512-11zuLiXDHr6tFv4U8aieXqNXQEKbDbSBG/h+X62gGTNFpyn8EVPpncHhOqrAFtZUaPibBqMFlNJ15SzwC7ExsQ==} 186 | peerDependencies: 187 | '@jimp/custom': '>=0.3.5' 188 | dependencies: 189 | '@jimp/custom': 0.6.8 190 | '@jimp/utils': 0.6.8 191 | core-js: 2.6.12 192 | dev: true 193 | 194 | /@jimp/plugin-mask/0.6.8_@jimp+custom@0.6.8: 195 | resolution: {integrity: sha512-hZJ0OiKGJyv7hDSATwJDkunB1Ie80xJnONMgpUuUseteK45YeYNBOiZVUe8vum8QI1UwavgBzcvQ9u4fcgXc9g==} 196 | peerDependencies: 197 | '@jimp/custom': '>=0.3.5' 198 | dependencies: 199 | '@jimp/custom': 0.6.8 200 | '@jimp/utils': 0.6.8 201 | core-js: 2.6.12 202 | dev: true 203 | 204 | /@jimp/plugin-normalize/0.6.8_@jimp+custom@0.6.8: 205 | resolution: {integrity: sha512-Q4oYhU+sSyTJI7pMZlg9/mYh68ujLfOxXzQGEXuw0sHGoGQs3B0Jw7jmzGa6pIS06Hup5hD2Zuh1ppvMdjJBfQ==} 206 | peerDependencies: 207 | '@jimp/custom': '>=0.3.5' 208 | dependencies: 209 | '@jimp/custom': 0.6.8 210 | '@jimp/utils': 0.6.8 211 | core-js: 2.6.12 212 | dev: true 213 | 214 | /@jimp/plugin-print/0.6.8_eesgzyxql7qfkr3l5fhocz4zqa: 215 | resolution: {integrity: sha512-2aokejGn4Drv1FesnZGqh5KEq0FQtR0drlmtyZrBH+r9cx7hh0Qgf4D1BOTDEgXkfSSngjGRjKKRW/fwOrVXYw==} 216 | peerDependencies: 217 | '@jimp/custom': '>=0.3.5' 218 | '@jimp/plugin-blit': '>=0.3.5' 219 | dependencies: 220 | '@jimp/custom': 0.6.8 221 | '@jimp/plugin-blit': 0.6.8_@jimp+custom@0.6.8 222 | '@jimp/utils': 0.6.8 223 | core-js: 2.6.12 224 | load-bmfont: 1.4.1 225 | dev: true 226 | 227 | /@jimp/plugin-resize/0.6.8_@jimp+custom@0.6.8: 228 | resolution: {integrity: sha512-27nPh8L1YWsxtfmV/+Ub5dOTpXyC0HMF2cu52RQSCYxr+Lm1+23dJF70AF1poUbUe+FWXphwuUxQzjBJza9UoA==} 229 | peerDependencies: 230 | '@jimp/custom': '>=0.3.5' 231 | dependencies: 232 | '@jimp/custom': 0.6.8 233 | '@jimp/utils': 0.6.8 234 | core-js: 2.6.12 235 | dev: true 236 | 237 | /@jimp/plugin-rotate/0.6.8_aq6ikydk5peaauhnhksy7jiqlm: 238 | resolution: {integrity: sha512-GbjETvL05BDoLdszNUV4Y0yLkHf177MnqGqilA113LIvx9aD0FtUopGXYfRGVvmtTOTouoaGJUc+K6qngvKxww==} 239 | peerDependencies: 240 | '@jimp/custom': '>=0.3.5' 241 | '@jimp/plugin-blit': '>=0.3.5' 242 | '@jimp/plugin-crop': '>=0.3.5' 243 | '@jimp/plugin-resize': '>=0.3.5' 244 | dependencies: 245 | '@jimp/custom': 0.6.8 246 | '@jimp/plugin-blit': 0.6.8_@jimp+custom@0.6.8 247 | '@jimp/plugin-crop': 0.6.8_@jimp+custom@0.6.8 248 | '@jimp/plugin-resize': 0.6.8_@jimp+custom@0.6.8 249 | '@jimp/utils': 0.6.8 250 | core-js: 2.6.12 251 | dev: true 252 | 253 | /@jimp/plugin-scale/0.6.8_pv5r3zn2cet5m3dmuyd5eqvjby: 254 | resolution: {integrity: sha512-GzIYWR/oCUK2jAwku23zt19V1ssaEU4pL0x2XsLNKuuJEU6DvEytJyTMXCE7OLG/MpDBQcQclJKHgiyQm5gIOQ==} 255 | peerDependencies: 256 | '@jimp/custom': '>=0.3.5' 257 | '@jimp/plugin-resize': '>=0.3.5' 258 | dependencies: 259 | '@jimp/custom': 0.6.8 260 | '@jimp/plugin-resize': 0.6.8_@jimp+custom@0.6.8 261 | '@jimp/utils': 0.6.8 262 | core-js: 2.6.12 263 | dev: true 264 | 265 | /@jimp/plugins/0.6.8_@jimp+custom@0.6.8: 266 | resolution: {integrity: sha512-fMcTI72Vn/Lz6JftezTURmyP5ml/xGMe0Ljx2KRJ85IWyP33vDmGIUuutFiBEbh2+y7lRT+aTSmjs0QGa/xTmQ==} 267 | peerDependencies: 268 | '@jimp/custom': '>=0.3.5' 269 | dependencies: 270 | '@jimp/custom': 0.6.8 271 | '@jimp/plugin-blit': 0.6.8_@jimp+custom@0.6.8 272 | '@jimp/plugin-blur': 0.6.8_@jimp+custom@0.6.8 273 | '@jimp/plugin-color': 0.6.8_@jimp+custom@0.6.8 274 | '@jimp/plugin-contain': 0.6.8_cz6quidkckfw4u2ow6dtp3utxe 275 | '@jimp/plugin-cover': 0.6.8_jkflgvmx7uto7oybzjhy3vyysy 276 | '@jimp/plugin-crop': 0.6.8_@jimp+custom@0.6.8 277 | '@jimp/plugin-displace': 0.6.8_@jimp+custom@0.6.8 278 | '@jimp/plugin-dither': 0.6.8_@jimp+custom@0.6.8 279 | '@jimp/plugin-flip': 0.6.8_wtxy6og6odzniigjx6uy6pkrra 280 | '@jimp/plugin-gaussian': 0.6.8_@jimp+custom@0.6.8 281 | '@jimp/plugin-invert': 0.6.8_@jimp+custom@0.6.8 282 | '@jimp/plugin-mask': 0.6.8_@jimp+custom@0.6.8 283 | '@jimp/plugin-normalize': 0.6.8_@jimp+custom@0.6.8 284 | '@jimp/plugin-print': 0.6.8_eesgzyxql7qfkr3l5fhocz4zqa 285 | '@jimp/plugin-resize': 0.6.8_@jimp+custom@0.6.8 286 | '@jimp/plugin-rotate': 0.6.8_aq6ikydk5peaauhnhksy7jiqlm 287 | '@jimp/plugin-scale': 0.6.8_pv5r3zn2cet5m3dmuyd5eqvjby 288 | core-js: 2.6.12 289 | timm: 1.7.1 290 | dev: true 291 | 292 | /@jimp/png/0.6.8_@jimp+custom@0.6.8: 293 | resolution: {integrity: sha512-JHHg/BZ7KDtHQrcG+a7fztw45rdf7okL/YwkN4qU5FH7Fcrp41nX5QnRviDtD9hN+GaNC7kvjvcqRAxW25qjew==} 294 | peerDependencies: 295 | '@jimp/custom': '>=0.3.5' 296 | dependencies: 297 | '@jimp/custom': 0.6.8 298 | '@jimp/utils': 0.6.8 299 | core-js: 2.6.12 300 | pngjs: 3.4.0 301 | dev: true 302 | 303 | /@jimp/tiff/0.6.8_@jimp+custom@0.6.8: 304 | resolution: {integrity: sha512-iWHbxd+0IKWdJyJ0HhoJCGYmtjPBOusz1z1HT/DnpePs/Lo3TO4d9ALXqYfUkyG74ZK5jULZ69KLtwuhuJz1bg==} 305 | peerDependencies: 306 | '@jimp/custom': '>=0.3.5' 307 | dependencies: 308 | '@jimp/custom': 0.6.8 309 | core-js: 2.6.12 310 | utif: 2.0.1 311 | dev: true 312 | 313 | /@jimp/types/0.6.8_@jimp+custom@0.6.8: 314 | resolution: {integrity: sha512-vCZ/Cp2osy69VP21XOBACfHI5HeR60Rfd4Jidj4W73UL+HrFWOtyQiJ7hlToyu1vI5mR/NsUQpzyQvz56ADm5A==} 315 | peerDependencies: 316 | '@jimp/custom': '>=0.3.5' 317 | dependencies: 318 | '@jimp/bmp': 0.6.8_@jimp+custom@0.6.8 319 | '@jimp/custom': 0.6.8 320 | '@jimp/gif': 0.6.8_@jimp+custom@0.6.8 321 | '@jimp/jpeg': 0.6.8_@jimp+custom@0.6.8 322 | '@jimp/png': 0.6.8_@jimp+custom@0.6.8 323 | '@jimp/tiff': 0.6.8_@jimp+custom@0.6.8 324 | core-js: 2.6.12 325 | timm: 1.7.1 326 | dev: true 327 | 328 | /@jimp/utils/0.6.8: 329 | resolution: {integrity: sha512-7RDfxQ2C/rarNG9iso5vmnKQbcvlQjBIlF/p7/uYj72WeZgVCB+5t1fFBKJSU4WhniHX4jUMijK+wYGE3Y3bGw==} 330 | dependencies: 331 | core-js: 2.6.12 332 | dev: true 333 | 334 | /accepts/1.3.8: 335 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 336 | engines: {node: '>= 0.6'} 337 | dependencies: 338 | mime-types: 2.1.35 339 | negotiator: 0.6.3 340 | dev: true 341 | 342 | /any-base/1.1.0: 343 | resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} 344 | dev: true 345 | 346 | /array-flatten/1.1.1: 347 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 348 | dev: true 349 | 350 | /async-limiter/1.0.1: 351 | resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} 352 | dev: true 353 | 354 | /base64-js/1.5.1: 355 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 356 | dev: true 357 | 358 | /bmp-js/0.1.0: 359 | resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} 360 | dev: true 361 | 362 | /body-parser/1.20.1: 363 | resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} 364 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 365 | dependencies: 366 | bytes: 3.1.2 367 | content-type: 1.0.5 368 | debug: 2.6.9 369 | depd: 2.0.0 370 | destroy: 1.2.0 371 | http-errors: 2.0.0 372 | iconv-lite: 0.4.24 373 | on-finished: 2.4.1 374 | qs: 6.11.0 375 | raw-body: 2.5.1 376 | type-is: 1.6.18 377 | unpipe: 1.0.0 378 | transitivePeerDependencies: 379 | - supports-color 380 | dev: true 381 | 382 | /buffer-equal/0.0.1: 383 | resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} 384 | engines: {node: '>=0.4.0'} 385 | dev: true 386 | 387 | /buffer/5.7.1: 388 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 389 | dependencies: 390 | base64-js: 1.5.1 391 | ieee754: 1.2.1 392 | dev: true 393 | 394 | /bytes/3.1.2: 395 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 396 | engines: {node: '>= 0.8'} 397 | dev: true 398 | 399 | /call-bind/1.0.2: 400 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 401 | dependencies: 402 | function-bind: 1.1.1 403 | get-intrinsic: 1.2.0 404 | dev: true 405 | 406 | /content-disposition/0.5.4: 407 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 408 | engines: {node: '>= 0.6'} 409 | dependencies: 410 | safe-buffer: 5.2.1 411 | dev: true 412 | 413 | /content-type/1.0.5: 414 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 415 | engines: {node: '>= 0.6'} 416 | dev: true 417 | 418 | /cookie-signature/1.0.6: 419 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 420 | dev: true 421 | 422 | /cookie/0.5.0: 423 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 424 | engines: {node: '>= 0.6'} 425 | dev: true 426 | 427 | /core-js/2.6.12: 428 | resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} 429 | deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. 430 | requiresBuild: true 431 | dev: true 432 | 433 | /debug/2.6.9: 434 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 435 | peerDependencies: 436 | supports-color: '*' 437 | peerDependenciesMeta: 438 | supports-color: 439 | optional: true 440 | dependencies: 441 | ms: 2.0.0 442 | dev: true 443 | 444 | /debug/4.3.4: 445 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 446 | engines: {node: '>=6.0'} 447 | peerDependencies: 448 | supports-color: '*' 449 | peerDependenciesMeta: 450 | supports-color: 451 | optional: true 452 | dependencies: 453 | ms: 2.1.2 454 | dev: true 455 | 456 | /depd/2.0.0: 457 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 458 | engines: {node: '>= 0.8'} 459 | dev: true 460 | 461 | /destroy/1.2.0: 462 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 463 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 464 | dev: true 465 | 466 | /dom-walk/0.1.2: 467 | resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} 468 | dev: true 469 | 470 | /ee-first/1.1.1: 471 | resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} 472 | dev: true 473 | 474 | /encodeurl/1.0.2: 475 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 476 | engines: {node: '>= 0.8'} 477 | dev: true 478 | 479 | /escape-html/1.0.3: 480 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 481 | dev: true 482 | 483 | /etag/1.8.1: 484 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 485 | engines: {node: '>= 0.6'} 486 | dev: true 487 | 488 | /exif-parser/0.1.12: 489 | resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} 490 | dev: true 491 | 492 | /express/4.18.2: 493 | resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} 494 | engines: {node: '>= 0.10.0'} 495 | dependencies: 496 | accepts: 1.3.8 497 | array-flatten: 1.1.1 498 | body-parser: 1.20.1 499 | content-disposition: 0.5.4 500 | content-type: 1.0.5 501 | cookie: 0.5.0 502 | cookie-signature: 1.0.6 503 | debug: 2.6.9 504 | depd: 2.0.0 505 | encodeurl: 1.0.2 506 | escape-html: 1.0.3 507 | etag: 1.8.1 508 | finalhandler: 1.2.0 509 | fresh: 0.5.2 510 | http-errors: 2.0.0 511 | merge-descriptors: 1.0.1 512 | methods: 1.1.2 513 | on-finished: 2.4.1 514 | parseurl: 1.3.3 515 | path-to-regexp: 0.1.7 516 | proxy-addr: 2.0.7 517 | qs: 6.11.0 518 | range-parser: 1.2.1 519 | safe-buffer: 5.2.1 520 | send: 0.18.0 521 | serve-static: 1.15.0 522 | setprototypeof: 1.2.0 523 | statuses: 2.0.1 524 | type-is: 1.6.18 525 | utils-merge: 1.0.1 526 | vary: 1.1.2 527 | transitivePeerDependencies: 528 | - supports-color 529 | dev: true 530 | 531 | /file-type/9.0.0: 532 | resolution: {integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==} 533 | engines: {node: '>=6'} 534 | dev: true 535 | 536 | /finalhandler/1.2.0: 537 | resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} 538 | engines: {node: '>= 0.8'} 539 | dependencies: 540 | debug: 2.6.9 541 | encodeurl: 1.0.2 542 | escape-html: 1.0.3 543 | on-finished: 2.4.1 544 | parseurl: 1.3.3 545 | statuses: 2.0.1 546 | unpipe: 1.0.0 547 | transitivePeerDependencies: 548 | - supports-color 549 | dev: true 550 | 551 | /forwarded/0.2.0: 552 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 553 | engines: {node: '>= 0.6'} 554 | dev: true 555 | 556 | /fresh/0.5.2: 557 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 558 | engines: {node: '>= 0.6'} 559 | dev: true 560 | 561 | /function-bind/1.1.1: 562 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 563 | dev: true 564 | 565 | /get-intrinsic/1.2.0: 566 | resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} 567 | dependencies: 568 | function-bind: 1.1.1 569 | has: 1.0.3 570 | has-symbols: 1.0.3 571 | dev: true 572 | 573 | /global/4.4.0: 574 | resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} 575 | dependencies: 576 | min-document: 2.19.0 577 | process: 0.11.10 578 | dev: true 579 | 580 | /has-symbols/1.0.3: 581 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 582 | engines: {node: '>= 0.4'} 583 | dev: true 584 | 585 | /has/1.0.3: 586 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 587 | engines: {node: '>= 0.4.0'} 588 | dependencies: 589 | function-bind: 1.1.1 590 | dev: true 591 | 592 | /http-errors/2.0.0: 593 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 594 | engines: {node: '>= 0.8'} 595 | dependencies: 596 | depd: 2.0.0 597 | inherits: 2.0.4 598 | setprototypeof: 1.2.0 599 | statuses: 2.0.1 600 | toidentifier: 1.0.1 601 | dev: true 602 | 603 | /iconv-lite/0.4.24: 604 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 605 | engines: {node: '>=0.10.0'} 606 | dependencies: 607 | safer-buffer: 2.1.2 608 | dev: true 609 | 610 | /ieee754/1.2.1: 611 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 612 | dev: true 613 | 614 | /inherits/2.0.4: 615 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 616 | dev: true 617 | 618 | /ipaddr.js/1.9.1: 619 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 620 | engines: {node: '>= 0.10'} 621 | dev: true 622 | 623 | /is-function/1.0.2: 624 | resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} 625 | dev: true 626 | 627 | /jimp/0.6.8: 628 | resolution: {integrity: sha512-F7emeG7Hp61IM8VFbNvWENLTuHe0ghizWPuP4JS9ujx2r5mCVYEd/zdaz6M2M42ZdN41blxPajLWl9FXo7Mr2Q==} 629 | dependencies: 630 | '@jimp/custom': 0.6.8 631 | '@jimp/plugins': 0.6.8_@jimp+custom@0.6.8 632 | '@jimp/types': 0.6.8_@jimp+custom@0.6.8 633 | core-js: 2.6.12 634 | regenerator-runtime: 0.13.11 635 | dev: true 636 | 637 | /jpeg-js/0.3.7: 638 | resolution: {integrity: sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==} 639 | dev: true 640 | 641 | /licia/1.38.0: 642 | resolution: {integrity: sha512-yEKEv7ltw6+QhEodF/BeJCWPkHktEbduyL8PWO8oKVmmIGUaymeTHrZzaFsls8xeLDn5GRGmm9rhXkb5XKuEqA==} 643 | dev: true 644 | 645 | /load-bmfont/1.4.1: 646 | resolution: {integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==} 647 | dependencies: 648 | buffer-equal: 0.0.1 649 | mime: 1.6.0 650 | parse-bmfont-ascii: 1.0.6 651 | parse-bmfont-binary: 1.0.6 652 | parse-bmfont-xml: 1.1.4 653 | phin: 2.9.3 654 | xhr: 2.6.0 655 | xtend: 4.0.2 656 | dev: true 657 | 658 | /media-typer/0.3.0: 659 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 660 | engines: {node: '>= 0.6'} 661 | dev: true 662 | 663 | /merge-descriptors/1.0.1: 664 | resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} 665 | dev: true 666 | 667 | /methods/1.1.2: 668 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 669 | engines: {node: '>= 0.6'} 670 | dev: true 671 | 672 | /mime-db/1.52.0: 673 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 674 | engines: {node: '>= 0.6'} 675 | dev: true 676 | 677 | /mime-types/2.1.35: 678 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 679 | engines: {node: '>= 0.6'} 680 | dependencies: 681 | mime-db: 1.52.0 682 | dev: true 683 | 684 | /mime/1.6.0: 685 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 686 | engines: {node: '>=4'} 687 | hasBin: true 688 | dev: true 689 | 690 | /min-document/2.19.0: 691 | resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} 692 | dependencies: 693 | dom-walk: 0.1.2 694 | dev: true 695 | 696 | /minimist/0.0.8: 697 | resolution: {integrity: sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==} 698 | dev: true 699 | 700 | /miniprogram-automator/0.12.0: 701 | resolution: {integrity: sha512-24uH/6+e5DYkVuPccKMtAWHF9K6zptmMrpfE9i73DvLk/lmkK+5AIOwLhMFAh+J2VIZDOT6+WWNUKTfJLW7/qw==} 702 | dependencies: 703 | debug: 4.3.4 704 | jimp: 0.6.8 705 | licia: 1.38.0 706 | qrcode-reader: 1.0.4 707 | qrcode-terminal: 0.12.0 708 | ws: 6.2.2 709 | transitivePeerDependencies: 710 | - bufferutil 711 | - supports-color 712 | - utf-8-validate 713 | dev: true 714 | 715 | /mkdirp/0.5.1: 716 | resolution: {integrity: sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==} 717 | deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) 718 | hasBin: true 719 | dependencies: 720 | minimist: 0.0.8 721 | dev: true 722 | 723 | /ms/2.0.0: 724 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 725 | dev: true 726 | 727 | /ms/2.1.2: 728 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 729 | dev: true 730 | 731 | /ms/2.1.3: 732 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 733 | dev: true 734 | 735 | /negotiator/0.6.3: 736 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 737 | engines: {node: '>= 0.6'} 738 | dev: true 739 | 740 | /object-inspect/1.12.3: 741 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 742 | dev: true 743 | 744 | /omggif/1.0.10: 745 | resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} 746 | dev: true 747 | 748 | /on-finished/2.4.1: 749 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 750 | engines: {node: '>= 0.8'} 751 | dependencies: 752 | ee-first: 1.1.1 753 | dev: true 754 | 755 | /pako/1.0.11: 756 | resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} 757 | dev: true 758 | 759 | /parse-bmfont-ascii/1.0.6: 760 | resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} 761 | dev: true 762 | 763 | /parse-bmfont-binary/1.0.6: 764 | resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} 765 | dev: true 766 | 767 | /parse-bmfont-xml/1.1.4: 768 | resolution: {integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==} 769 | dependencies: 770 | xml-parse-from-string: 1.0.1 771 | xml2js: 0.4.23 772 | dev: true 773 | 774 | /parse-headers/2.0.5: 775 | resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} 776 | dev: true 777 | 778 | /parseurl/1.3.3: 779 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 780 | engines: {node: '>= 0.8'} 781 | dev: true 782 | 783 | /path-to-regexp/0.1.7: 784 | resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} 785 | dev: true 786 | 787 | /phin/2.9.3: 788 | resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} 789 | dev: true 790 | 791 | /pixelmatch/4.0.2: 792 | resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} 793 | hasBin: true 794 | dependencies: 795 | pngjs: 3.4.0 796 | dev: true 797 | 798 | /pngjs/3.4.0: 799 | resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} 800 | engines: {node: '>=4.0.0'} 801 | dev: true 802 | 803 | /process/0.11.10: 804 | resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 805 | engines: {node: '>= 0.6.0'} 806 | dev: true 807 | 808 | /proxy-addr/2.0.7: 809 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 810 | engines: {node: '>= 0.10'} 811 | dependencies: 812 | forwarded: 0.2.0 813 | ipaddr.js: 1.9.1 814 | dev: true 815 | 816 | /qrcode-reader/1.0.4: 817 | resolution: {integrity: sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==} 818 | dev: true 819 | 820 | /qrcode-terminal/0.12.0: 821 | resolution: {integrity: sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==} 822 | hasBin: true 823 | dev: true 824 | 825 | /qs/6.11.0: 826 | resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} 827 | engines: {node: '>=0.6'} 828 | dependencies: 829 | side-channel: 1.0.4 830 | dev: true 831 | 832 | /range-parser/1.2.1: 833 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 834 | engines: {node: '>= 0.6'} 835 | dev: true 836 | 837 | /raw-body/2.5.1: 838 | resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} 839 | engines: {node: '>= 0.8'} 840 | dependencies: 841 | bytes: 3.1.2 842 | http-errors: 2.0.0 843 | iconv-lite: 0.4.24 844 | unpipe: 1.0.0 845 | dev: true 846 | 847 | /regenerator-runtime/0.13.11: 848 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 849 | dev: true 850 | 851 | /safe-buffer/5.2.1: 852 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 853 | dev: true 854 | 855 | /safer-buffer/2.1.2: 856 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 857 | dev: true 858 | 859 | /sax/1.2.4: 860 | resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} 861 | dev: true 862 | 863 | /send/0.18.0: 864 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} 865 | engines: {node: '>= 0.8.0'} 866 | dependencies: 867 | debug: 2.6.9 868 | depd: 2.0.0 869 | destroy: 1.2.0 870 | encodeurl: 1.0.2 871 | escape-html: 1.0.3 872 | etag: 1.8.1 873 | fresh: 0.5.2 874 | http-errors: 2.0.0 875 | mime: 1.6.0 876 | ms: 2.1.3 877 | on-finished: 2.4.1 878 | range-parser: 1.2.1 879 | statuses: 2.0.1 880 | transitivePeerDependencies: 881 | - supports-color 882 | dev: true 883 | 884 | /serve-static/1.15.0: 885 | resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} 886 | engines: {node: '>= 0.8.0'} 887 | dependencies: 888 | encodeurl: 1.0.2 889 | escape-html: 1.0.3 890 | parseurl: 1.3.3 891 | send: 0.18.0 892 | transitivePeerDependencies: 893 | - supports-color 894 | dev: true 895 | 896 | /setprototypeof/1.2.0: 897 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 898 | dev: true 899 | 900 | /side-channel/1.0.4: 901 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 902 | dependencies: 903 | call-bind: 1.0.2 904 | get-intrinsic: 1.2.0 905 | object-inspect: 1.12.3 906 | dev: true 907 | 908 | /statuses/2.0.1: 909 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 910 | engines: {node: '>= 0.8'} 911 | dev: true 912 | 913 | /timm/1.7.1: 914 | resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} 915 | dev: true 916 | 917 | /tinycolor2/1.6.0: 918 | resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} 919 | dev: true 920 | 921 | /toidentifier/1.0.1: 922 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 923 | engines: {node: '>=0.6'} 924 | dev: true 925 | 926 | /type-is/1.6.18: 927 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 928 | engines: {node: '>= 0.6'} 929 | dependencies: 930 | media-typer: 0.3.0 931 | mime-types: 2.1.35 932 | dev: true 933 | 934 | /unpipe/1.0.0: 935 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 936 | engines: {node: '>= 0.8'} 937 | dev: true 938 | 939 | /utif/2.0.1: 940 | resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} 941 | dependencies: 942 | pako: 1.0.11 943 | dev: true 944 | 945 | /utils-merge/1.0.1: 946 | resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} 947 | engines: {node: '>= 0.4.0'} 948 | dev: true 949 | 950 | /vary/1.1.2: 951 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 952 | engines: {node: '>= 0.8'} 953 | dev: true 954 | 955 | /ws/6.2.2: 956 | resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==} 957 | peerDependencies: 958 | bufferutil: ^4.0.1 959 | utf-8-validate: ^5.0.2 960 | peerDependenciesMeta: 961 | bufferutil: 962 | optional: true 963 | utf-8-validate: 964 | optional: true 965 | dependencies: 966 | async-limiter: 1.0.1 967 | dev: true 968 | 969 | /xhr/2.6.0: 970 | resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} 971 | dependencies: 972 | global: 4.4.0 973 | is-function: 1.0.2 974 | parse-headers: 2.0.5 975 | xtend: 4.0.2 976 | dev: true 977 | 978 | /xml-parse-from-string/1.0.1: 979 | resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} 980 | dev: true 981 | 982 | /xml2js/0.4.23: 983 | resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} 984 | engines: {node: '>=4.0.0'} 985 | dependencies: 986 | sax: 1.2.4 987 | xmlbuilder: 11.0.1 988 | dev: true 989 | 990 | /xmlbuilder/11.0.1: 991 | resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} 992 | engines: {node: '>=4.0'} 993 | dev: true 994 | 995 | /xtend/4.0.2: 996 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 997 | engines: {node: '>=0.4'} 998 | dev: true 999 | --------------------------------------------------------------------------------