├── .env.example ├── .eslintrc.js ├── .gitattributes ├── .gitignore ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── config.example.json ├── index.js ├── package.json ├── pg-migrations ├── 0.0.2.js ├── 0.0.3.js └── migrate.js ├── scripts ├── cleardb.js └── initdb.js ├── services ├── database.js ├── firebase.js ├── jwt.js └── pronote.js ├── test.js └── yarn.lock /.env.example: -------------------------------------------------------------------------------- 1 | PRONOTE_API_PROXY=http://username:password@ip:port -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | commonjs: true, 4 | es2020: true, 5 | node: true 6 | }, 7 | extends: [ 8 | 'standard' 9 | ], 10 | parserOptions: { 11 | ecmaVersion: 12 12 | }, 13 | rules: { 14 | indent: ['error', 4], 15 | 'no-useless-escape': 0 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Config 2 | config.json 3 | 4 | # Node 5 | node_modules 6 | 7 | # Last Update cache file 8 | .lastupdate 9 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.codeActionsOnSave": { 3 | "source.fixAll.eslint": true 4 | }, 5 | "eslint.validate": [ 6 | "javascript" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Androz2091 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 | # Pronote Notifications API 2 | 3 | **See https://github.com/pronote-notifications/pronote-notifications-app**. 4 | -------------------------------------------------------------------------------- /config.example.json: -------------------------------------------------------------------------------- 1 | { 2 | "jwtKey": "", 3 | "googleCloudMessagingServerKey": "", 4 | "serviceAccountKey": { 5 | "type": "service_account", 6 | "project_id": "", 7 | "private_key_id": "", 8 | "private_key": "", 9 | "client_email": "", 10 | "client_id": "", 11 | "auth_uri": "https://accounts.google.com/o/oauth2/auth", 12 | "token_uri": "https://oauth2.googleapis.com/token", 13 | "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", 14 | "client_x509_cert_url": "" 15 | }, 16 | "database": { 17 | "user": "", 18 | "host": "localhost", 19 | "database": "pronote_notifications", 20 | "password": "", 21 | "port": 5432 22 | }, 23 | "port": 3000, 24 | "sentryDSN": "" 25 | } -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | require('tls').DEFAULT_MIN_VERSION = 'TLSv1' 2 | require('dotenv').config(); 3 | 4 | const config = require('./config.json') 5 | const fetch = require('node-fetch') 6 | 7 | const Sentry = require('@sentry/node') 8 | Sentry.init({ 9 | dsn: config.sentryDSN, 10 | tracesSampleRate: 1.0 11 | }) 12 | 13 | // Start express server 14 | const morgan = require('morgan') 15 | const express = require('express') 16 | const app = express() 17 | app.use(express.json()) 18 | app.use(morgan('dev')) 19 | app.listen(config.port, () => console.log(`Pronote Notifications API server listening on port ::${config.port}::`)) 20 | 21 | const DatabaseService = require('./services/database') 22 | const PronoteService = require('./services/pronote') 23 | const FirebaseService = require('./services/firebase') 24 | const jwt = require('./services/jwt') 25 | 26 | const database = new DatabaseService() 27 | const pronote = new PronoteService() 28 | const firebase = new FirebaseService() 29 | 30 | const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)) 31 | 32 | const synchronize = async (studentName) => { 33 | const users = await database.fetchUsers() 34 | const usersCaches = await database.fetchUsersCache() 35 | const usersTokens = await database.fetchFCMTokens() 36 | 37 | const usersSync = users.filter((user) => !user.passwordInvalidated && (studentName ? user.pronoteUsername === studentName : true)) 38 | for (const [index, userAuth] of usersSync.entries()) { 39 | await sleep(500) 40 | const oldCache = usersCaches.find((cache) => { 41 | return cache.pronoteUsername === userAuth.pronoteUsername && cache.pronoteURL === userAuth.pronoteURL 42 | }) 43 | pronote.checkSession(userAuth, oldCache, index).then(([notifications, newCache]) => { 44 | if (notifications.length > 0) { 45 | const tokens = usersTokens.filter((token) => { 46 | return token.pronoteUsername === userAuth.pronoteUsername && token.pronoteURL === userAuth.pronoteURL && token.isActive 47 | }) 48 | const homeworksTokens = tokens.filter((token) => token.notificationsHomeworks).map((token) => token.fcmToken) 49 | const marksTokens = tokens.filter((token) => token.notificationsMarks).map((token) => token.fcmToken) 50 | notifications.forEach((notificationData) => { 51 | database.createNotification(userAuth, notificationData).then((notificationDBID) => { 52 | const notification = { 53 | title: notificationData.title, 54 | body: notificationData.body 55 | } 56 | const sentAt = new Date() 57 | if (notificationData.type === 'homework' && homeworksTokens.length > 0) { 58 | firebase.sendNotification(notification, 'homework', homeworksTokens).then((responses) => { 59 | database.markNotificationSent(notificationDBID, new Date()) 60 | responses.forEach((res, i) => { 61 | const token = marksTokens[i] 62 | database.markLastActiveAt(token, sentAt) 63 | if (res.success) database.markLastSuccessAt(token, sentAt) 64 | }) 65 | }) 66 | } else if (notificationData.type === 'mark' && marksTokens.length > 0) { 67 | firebase.sendNotification(notification, 'mark', marksTokens).then((responses) => { 68 | database.markNotificationSent(notificationDBID, new Date()) 69 | responses.forEach((res, i) => { 70 | const token = marksTokens[i] 71 | database.markLastActiveAt(token, sentAt) 72 | if (res.success) database.markLastSuccessAt(token, sentAt) 73 | }) 74 | }) 75 | } 76 | }) 77 | }) 78 | } 79 | database.updateUserCache(userAuth, newCache) 80 | }).catch((e) => { 81 | if (e.message === 'Wrong user credentials') { 82 | database.invalidateUserPassword(userAuth) 83 | } 84 | }) 85 | } 86 | } 87 | 88 | const checkInvalidated = async () => { 89 | const users = await database.fetchUsers() 90 | const usersInvalidated = users.filter((u) => u.passwordInvalidated) 91 | const failed = [] 92 | usersInvalidated.forEach((user) => { 93 | if (failed.filter((e) => e === user.pronoteURL).length < 1) { 94 | pronote.createSession(user).then(() => { 95 | database.invalidateUserPassword(user, false) 96 | }).catch(() => { 97 | failed.push(user.pronoteURL) 98 | }) 99 | } 100 | }) 101 | } 102 | 103 | const userToSynchronize = process.argv[process.argv.indexOf('--sync') + 1] === 'all' ? null : process.argv[process.argv.indexOf('--sync') + 1] 104 | if (process.argv.includes('--sync')) synchronize(userToSynchronize) 105 | if (process.argv.includes('--checkinv')) checkInvalidated() 106 | 107 | synchronize() 108 | 109 | setInterval(function () { 110 | synchronize() 111 | }, 30 * 60 * 1000) 112 | setInterval(() => { 113 | checkInvalidated() 114 | }, 24 * 60 * 60 * 1000) 115 | 116 | app.post('/logout', async (req, res) => { 117 | const token = req.headers.authorization 118 | const payload = jwt.verifyToken(token) 119 | if (!token || !payload) { 120 | return res.status(403).send({ 121 | success: false, 122 | code: 2, 123 | message: 'Unauthorized' 124 | }) 125 | } 126 | database.createUserLog(payload, { 127 | route: '/logout', 128 | appVersion: req.headers['app-version'] || 'unknown', 129 | date: new Date(), 130 | jwt: token 131 | }) 132 | 133 | if (payload.pronoteURL === 'demo') { 134 | return res.status(200).send({ 135 | success: true 136 | }) 137 | } 138 | 139 | const existingToken = await database.fetchFCMToken(payload.fcmToken) 140 | if (!existingToken) { 141 | return res.status(500).send({ 142 | success: false, 143 | code: 4, 144 | message: 'Unknown FCM token' 145 | }) 146 | } 147 | 148 | database.updateToken(payload.fcmToken, { 149 | isActive: false 150 | }) 151 | return res.status(200).send({ 152 | success: true 153 | }) 154 | }) 155 | 156 | app.post('/settings', async (req, res) => { 157 | const token = req.headers.authorization 158 | const payload = jwt.verifyToken(token) 159 | if (!token || !payload) { 160 | return res.status(403).send({ 161 | success: false, 162 | code: 2, 163 | message: 'Unauthorized' 164 | }) 165 | } 166 | const data = req.body 167 | database.createUserLog(payload, { 168 | route: '/settings', 169 | appVersion: req.headers['app-version'] || 'unknown', 170 | date: new Date(), 171 | body: data, 172 | jwt: token 173 | }) 174 | 175 | if (payload.pronoteURL === 'demo') { 176 | return res.status(200).send({ 177 | success: true 178 | }) 179 | } 180 | 181 | const existingToken = await database.fetchFCMToken(payload.fcmToken) 182 | if (!existingToken) { 183 | return res.status(500).send({ 184 | success: false, 185 | code: 4, 186 | message: 'Unknown FCM token' 187 | }) 188 | } 189 | 190 | database.updateToken(payload.fcmToken, { 191 | notificationsHomeworks: data.notifications_homeworks === 'true', 192 | notificationsMarks: data.notifications_marks === 'true' 193 | }) 194 | return res.status(200).send({ 195 | success: true 196 | }) 197 | }) 198 | 199 | app.get('/notifications', async (req, res) => { 200 | const token = req.headers.authorization 201 | const payload = jwt.verifyToken(token) 202 | if (!token || !payload) { 203 | return res.status(403).send({ 204 | success: false, 205 | code: 2, 206 | message: 'Unauthorized' 207 | }) 208 | } 209 | 210 | database.createUserLog(payload, { 211 | route: '/notifications', 212 | appVersion: req.headers['app-version'] || 'unknown', 213 | date: new Date(), 214 | jwt: token 215 | }) 216 | 217 | if (payload.pronoteURL === 'demo') { 218 | const minDate = new Date(2012, 0, 1) 219 | const randomDate = () => new Date(minDate.getTime() + Math.random() * (Date.now() - minDate.getTime())) 220 | return res.status(200).send({ 221 | success: true, 222 | notifications: [ 223 | { 224 | created_at: randomDate(), 225 | read_at: randomDate(), 226 | sent_at: randomDate(), 227 | title: 'Nouvelle note en HISTOIRE-GEOGRAPHIE', 228 | body: 'Note: 19/20\nMoyenne de la classe: 11.91/20', 229 | type: 'mark' 230 | } 231 | ] 232 | }) 233 | } 234 | 235 | const user = await database.fetchUser(payload.pronoteUsername, payload.pronoteURL) 236 | if (!user) { 237 | return res.status(403).send({ 238 | success: false, 239 | code: 3, 240 | message: 'Votre compte est introuvable.' 241 | }) 242 | } 243 | 244 | const notifications = (await database.fetchUserNotifications(payload.pronoteUsername, payload.pronoteURL)) 245 | .sort((a, b) => { 246 | const createdOrder = b.createdAt.getTime() - a.createdAt.getTime() 247 | if (createdOrder !== 0) return createdOrder 248 | else return b.body.length - a.body.length 249 | }) 250 | .map((notif) => ({ 251 | created_at: notif.createdAt, 252 | read_at: notif.readAt, 253 | sent_at: notif.sentAt, 254 | title: notif.title, 255 | body: notif.body, 256 | type: notif.type 257 | })) 258 | 259 | return res.status(200).send({ 260 | success: true, 261 | notifications 262 | }) 263 | }) 264 | 265 | app.get('/login', async (req, res) => { 266 | const token = req.headers.authorization 267 | const payload = jwt.verifyToken(token) 268 | if (!token || !payload) { 269 | return res.status(403).send({ 270 | success: false, 271 | code: 2, 272 | message: 'Unauthorized' 273 | }) 274 | } 275 | 276 | database.createUserLog(payload, { 277 | route: '/login', 278 | appVersion: req.headers['app-version'] || 'unknown', 279 | date: new Date(), 280 | jwt: token 281 | }) 282 | 283 | if (payload.pronoteURL === 'demo') { 284 | return res.status(200).send({ 285 | success: true, 286 | full_name: 'Sarah Kelly', 287 | student_class: '204', 288 | establishment: 'Lycée Gustave Eiffel', 289 | notifications_homeworks: true, 290 | notifications_marks: true 291 | }) 292 | } 293 | 294 | const user = await database.fetchUser(payload.pronoteUsername, payload.pronoteURL) 295 | if (!user) { 296 | return res.status(403).send({ 297 | success: false, 298 | code: 3, 299 | message: 'Votre compte est introuvable.' 300 | }) 301 | } else { 302 | const existingToken = await database.fetchFCMToken(payload.fcmToken) 303 | if (!existingToken) { 304 | return res.status(500).send({ 305 | success: false, 306 | code: 4, 307 | message: 'Unknown FCM token' 308 | }) 309 | } 310 | 311 | return res.status(200).send({ 312 | success: true, 313 | full_name: user.fullName, 314 | student_class: user.studentClass, 315 | establishment: user.establishment, 316 | password_invalidated: user.passwordInvalidated, 317 | notifications_homeworks: existingToken.notificationsHomeworks, 318 | notifications_marks: existingToken.notificationsMarks 319 | }) 320 | } 321 | }) 322 | 323 | app.get('/establishments', async (req, res) => { 324 | if (!req.query.latitude || !req.query.longitude) return 325 | 326 | database.createUserLog({ 327 | pronoteUsername: 'unknown', 328 | pronoteURL: 'unknown', 329 | fcmToken: 'unknown' 330 | }, { 331 | route: '/establishments', 332 | appVersion: req.headers['app-version'] || 'unknown', 333 | date: new Date(), 334 | body: { latitude: req.query.latitude, longitude: req.query.longitude } 335 | }) 336 | 337 | const establishments = (await pronote.getEstablishments(req.query.latitude, req.query.longitude)) || [] 338 | 339 | return res.status(200).send({ 340 | success: true, 341 | establishments 342 | }) 343 | }) 344 | 345 | app.post('/register', async (req, res) => { 346 | const body = req.body 347 | 348 | if (!body.pronote_url) { 349 | return void console.log(body); 350 | } 351 | 352 | const userAuth = { 353 | pronoteUsername: body.pronote_username, 354 | pronotePassword: body.pronote_password, 355 | pronoteURL: pronote.parsePronoteURL(body.pronote_url), 356 | fcmToken: body.fcm_token 357 | } 358 | 359 | if (Object.values(userAuth).some((v) => v === undefined)) { 360 | return res.status(400).send({ 361 | success: false, 362 | message: 'BAD REQUEST. Essayez de mettre à jour l\'application et réessayez !' 363 | }) 364 | } 365 | 366 | if (body.device_id) userAuth.deviceID = body.device_id 367 | 368 | database.createUserLog(userAuth, { 369 | route: '/register', 370 | appVersion: req.headers['app-version'] || 'unknown', 371 | date: new Date(), 372 | body: userAuth 373 | }) 374 | 375 | const token = jwt.createToken(userAuth) 376 | 377 | const isValidToken = await firebase.verifyToken(userAuth.fcmToken) 378 | if (!isValidToken) { 379 | return res.status(403).send({ 380 | success: false, 381 | message: 'Impossible de valider le token FCM.' 382 | }) 383 | } 384 | 385 | if (userAuth.pronoteURL === 'demo') { 386 | return res.status(200).send({ 387 | success: true, 388 | full_name: 'Sarah Kelly', 389 | student_class: '204', 390 | establishment: 'Lycée Gustave Eiffel', 391 | notifications_homeworks: true, 392 | notifications_marks: true, 393 | jwt: token 394 | }) 395 | } 396 | 397 | let { cas, session } = await pronote.resolveCas(userAuth) 398 | userAuth.pronoteCAS = cas 399 | 400 | if (!session) { 401 | session = await pronote.createSession(userAuth).catch((error) => { 402 | let message = 'Connexion à Pronote impossible car l\'URL Pronote entrée est invalide. Fermez la pop-up et cliquez sur "Q\'est-ce que "URL Pronote" ou rejoignez notre serveur Discord : https://androz2091.fr/discord pour plus d\'informations. Tous les lycées et collèges étant supportés, nous vous aiderons à trouver la bonne URL.' 403 | if (error.code === 3) message = 'Connexion à Pronote réussie mais vos identifiants sont incorrects. Vérifiez et réessayez !' 404 | if (error.code === 2) message = 'Le serveur de Notifications pour Pronote est actuellement indisponible. Réessayez dans quelques minutes !' 405 | res.status(403).send({ 406 | success: false, 407 | message 408 | }) 409 | return null 410 | }) 411 | } 412 | 413 | if (!session) return 414 | 415 | const user = await database.fetchUser(userAuth.pronoteUsername, userAuth.pronoteURL) 416 | 417 | if (user) { 418 | if (user.pronotePassword !== userAuth.pronotePassword) { 419 | database.updateUserPassword({ 420 | pronoteUsername: userAuth.pronoteUsername, 421 | pronoteURL: userAuth.pronoteURL, 422 | newPassword: userAuth.pronotePassword 423 | }) 424 | } 425 | database.invalidateUserPassword(userAuth, false) 426 | res.status(200).send({ 427 | success: true, 428 | full_name: user.fullName, 429 | student_class: user.studentClass, 430 | establishment: user.establishment, 431 | password_invalidated: user.passwordInvalidated, 432 | notifications_homeworks: true, 433 | notifications_marks: true, 434 | jwt: token 435 | }) 436 | } else { 437 | res.status(200).send({ 438 | success: true, 439 | full_name: session.user.name, 440 | student_class: session.user.studentClass.name, 441 | establishment: session.user.establishment.name, 442 | notifications_homeworks: true, 443 | notifications_marks: true, 444 | jwt: token 445 | }) 446 | database.createUser({ 447 | ...userAuth, 448 | ...{ 449 | fullName: session.user.name, 450 | studentClass: session.user.studentClass.name, 451 | establishment: session.user.establishment.name 452 | } 453 | }) 454 | pronote.checkSession(userAuth, {}).then(([notifications, cache]) => { 455 | database.updateUserCache(userAuth, cache) 456 | }) 457 | } 458 | database.createOrUpdateToken(userAuth, userAuth.fcmToken, userAuth.deviceID) 459 | }) 460 | 461 | app.get('*', (req, res) => res.send({ 462 | success: true, message: 'Welcome to Notifications pour Pronote API' 463 | })) 464 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pronote-notifications-api", 3 | "version": "0.0.2", 4 | "main": "index.js", 5 | "author": "Androz2091 ", 6 | "license": "MIT", 7 | "dependencies": { 8 | "@discordjs/collection": "^0.1.6", 9 | "@sentry/node": "^5.27.3", 10 | "@sentry/tracing": "^5.27.3", 11 | "chalk": "^4.1.0", 12 | "dotenv": "^10.0.0", 13 | "express": "^4.17.1", 14 | "firebase-admin": "^9.2.0", 15 | "inquirer": "^7.3.3", 16 | "jsonwebtoken": "^8.5.1", 17 | "morgan": "^1.10.0", 18 | "pg": "^8.4.1", 19 | "pronote-api": "EduWireApps/pronote-api", 20 | "semver-parser": "^3.0.5" 21 | }, 22 | "devDependencies": { 23 | "eslint": "^7.25.0", 24 | "eslint-config-standard": "^16.0.2", 25 | "eslint-plugin-import": "^2.22.1", 26 | "eslint-plugin-node": "^11.1.0", 27 | "eslint-plugin-promise": "^5.1.0" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /pg-migrations/0.0.2.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (pool) => { 2 | return pool.query(` 3 | 4 | ALTER TABLE users 5 | ADD COLUMN password_invalidated BOOLEAN, 6 | ADD COLUMN created_at TIMESTAMP WITH TIME ZONE; 7 | 8 | ALTER TABLE users_caches 9 | ADD COLUMN last_update_at TIMESTAMP WITH TIME ZONE; 10 | 11 | ALTER TABLE users_tokens 12 | ADD COLUMN last_success_at TIMESTAMP WITH TIME ZONE, 13 | ADD COLUMN last_sent_at TIMESTAMP WITH TIME ZONE; 14 | 15 | `) 16 | } 17 | -------------------------------------------------------------------------------- /pg-migrations/0.0.3.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (pool) => { 2 | return pool.query(` 3 | 4 | ALTER TABLE users_tokens 5 | ADD COLUMN device_id CHARACTER VARYING; 6 | 7 | CREATE TABLE public.users_caches_logs 8 | ( 9 | pronote_username character varying COLLATE pg_catalog."default" NOT NULL, 10 | pronote_url character varying COLLATE pg_catalog."default" NOT NULL, 11 | homeworks_cache json NOT NULL, 12 | marks_cache json NOT NULL, 13 | date timestamp with time zone NOT NULL 14 | ); 15 | 16 | 17 | CREATE TABLE public.users_logs 18 | ( 19 | pronote_username character varying COLLATE pg_catalog."default" NOT NULL, 20 | pronote_url character varying COLLATE pg_catalog."default" NOT NULL, 21 | route character varying COLLATE pg_catalog."default" NOT NULL, 22 | fcm_token character varying COLLATE pg_catalog."default" NOT NULL, 23 | app_version character varying COLLATE pg_catalog."default" NOT NULL, 24 | date timestamp with time zone NOT NULL, 25 | req_body json 26 | ); 27 | 28 | `) 29 | } 30 | -------------------------------------------------------------------------------- /pg-migrations/migrate.js: -------------------------------------------------------------------------------- 1 | const chalk = require('chalk') 2 | const config = require('../config.json') 3 | 4 | const { Pool } = require('pg') 5 | const pool = new Pool(config.database) 6 | 7 | const semver = require('semver-parser') 8 | const fs = require('fs') 9 | const availableVersions = fs.readdirSync('./pg-migrations').filter((file) => file.endsWith('.js') && semver.isValidSemVer(file.split('.js')[0], false)).map((file) => file.split('.js')[0]) 10 | 11 | const inquirer = require('inquirer'); 12 | 13 | (async () => { 14 | let lastUpdate 15 | 16 | try { 17 | lastUpdate = fs.readFileSync('./pg-migrations/.lastupdate', 'utf8') 18 | } catch (e) { 19 | console.log(e) 20 | const answers = await inquirer.prompt([ 21 | { 22 | type: 'input', 23 | validate: (input) => semver.isValidSemVer(input, false), 24 | message: 'Entrez la version actuelle de votre base de données PostgreSQL', 25 | name: 'version' 26 | } 27 | ]) 28 | lastUpdate = answers.version 29 | } 30 | 31 | const needToBeAppliedVersions = availableVersions.filter((version) => semver.compareSemVer(version, lastUpdate, false) > 0) 32 | 33 | for (const version of needToBeAppliedVersions) { 34 | const migrationFile = require(`./${version}.js`) 35 | await migrationFile.run(pool) 36 | } 37 | 38 | if (needToBeAppliedVersions.length > 0) { 39 | const newLastUpdate = needToBeAppliedVersions.sort((a, b) => -(semver.compareSemVer(a, b, false)))[0] 40 | fs.writeFileSync('./pg-migrations/.lastupdate', newLastUpdate, 'utf-8') 41 | console.log(`✓ Base de données mise à jour de la version ${chalk.yellow(lastUpdate)} à la version ${chalk.green(newLastUpdate)} !`) 42 | } else { 43 | console.log('✓ Aucune mise à jour disponible !') 44 | } 45 | })() 46 | -------------------------------------------------------------------------------- /scripts/cleardb.js: -------------------------------------------------------------------------------- 1 | const { database } = require('../config.json') 2 | const { Client } = require('pg') 3 | 4 | const client = new Client(database) 5 | client.connect() 6 | client.query(` 7 | DELETE FROM users; 8 | DELETE FROM users_caches; 9 | DELETE FROM users_tokens; 10 | `, (err, res) => { 11 | console.log(err, res) 12 | client.end() 13 | }) 14 | -------------------------------------------------------------------------------- /scripts/initdb.js: -------------------------------------------------------------------------------- 1 | const { database } = require('../config.json') 2 | const { Client } = require('pg') 3 | 4 | const client = new Client(database) 5 | client.connect() 6 | client.query(` 7 | CREATE TABLE public.notifications 8 | ( 9 | notification_id character varying COLLATE pg_catalog."default" NOT NULL, 10 | title character varying COLLATE pg_catalog."default" NOT NULL, 11 | body character varying COLLATE pg_catalog."default" NOT NULL, 12 | read_at timestamp with time zone, 13 | sent_at timestamp with time zone, 14 | created_at timestamp with time zone NOT NULL, 15 | pronote_username character varying COLLATE pg_catalog."default" NOT NULL, 16 | pronote_url character varying COLLATE pg_catalog."default" NOT NULL, 17 | type character varying COLLATE pg_catalog."default" NOT NULL, 18 | CONSTRAINT notifications_pkey PRIMARY KEY (notification_id) 19 | ) 20 | 21 | TABLESPACE pg_default; 22 | 23 | ALTER TABLE public.notifications 24 | OWNER to postgres; 25 | 26 | CREATE TABLE public.users 27 | ( 28 | pronote_url character varying COLLATE pg_catalog."default" NOT NULL, 29 | pronote_username character varying COLLATE pg_catalog."default" NOT NULL, 30 | pronote_password character varying COLLATE pg_catalog."default" NOT NULL, 31 | pronote_cas character varying COLLATE pg_catalog."default", 32 | avatar_base64 text COLLATE pg_catalog."default", 33 | full_name character varying COLLATE pg_catalog."default", 34 | student_class character varying COLLATE pg_catalog."default", 35 | establishment character varying COLLATE pg_catalog."default" 36 | ) 37 | 38 | TABLESPACE pg_default; 39 | 40 | ALTER TABLE public.users 41 | OWNER to postgres; 42 | 43 | CREATE TABLE public.users_caches 44 | ( 45 | pronote_username character varying COLLATE pg_catalog."default" NOT NULL, 46 | pronote_url character varying COLLATE pg_catalog."default" NOT NULL, 47 | homeworks_cache json, 48 | marks_cache json, 49 | CONSTRAINT users_caches_pkey PRIMARY KEY (pronote_username, pronote_url) 50 | ) 51 | 52 | TABLESPACE pg_default; 53 | 54 | ALTER TABLE public.users_caches 55 | OWNER to postgres; 56 | 57 | CREATE TABLE public.users_tokens 58 | ( 59 | fcm_token character varying COLLATE pg_catalog."default" NOT NULL, 60 | is_active boolean NOT NULL, 61 | notifications_homeworks boolean NOT NULL, 62 | notifications_marks boolean NOT NULL, 63 | pronote_username character varying COLLATE pg_catalog."default" NOT NULL, 64 | pronote_url character varying COLLATE pg_catalog."default" NOT NULL, 65 | CONSTRAINT users_tokens_pkey PRIMARY KEY (fcm_token) 66 | ) 67 | 68 | TABLESPACE pg_default; 69 | 70 | ALTER TABLE public.users_tokens 71 | OWNER to postgres; 72 | 73 | `, (err, res) => { 74 | console.log(err, res) 75 | client.end() 76 | }) 77 | -------------------------------------------------------------------------------- /services/database.js: -------------------------------------------------------------------------------- 1 | const config = require('../config.json') 2 | const { Pool } = require('pg') 3 | 4 | const formatUser = (row) => ({ 5 | pronoteURL: row.pronote_url, 6 | pronoteUsername: row.pronote_username, 7 | pronotePassword: row.pronote_password, 8 | pronoteCAS: row.pronote_cas, 9 | fullName: row.full_name, 10 | studentClass: row.student_class, 11 | establishment: row.establishment, 12 | passwordInvalidated: row.password_invalidated 13 | }) 14 | 15 | const formatFCMToken = (row) => ({ 16 | pronoteURL: row.pronote_url, 17 | pronoteUsername: row.pronote_username, 18 | fcmToken: row.fcm_token, 19 | createdAt: row.created_at, 20 | isActive: row.is_active, 21 | notificationsMarks: row.notifications_marks, 22 | notificationsHomeworks: row.notifications_homeworks 23 | }) 24 | 25 | class DatabaseService { 26 | constructor () { 27 | this.pool = new Pool(config.database) 28 | .on('connect', () => { 29 | console.log('Connected to PostgreSQL database') 30 | }) 31 | .on('error', (e) => console.error(e)) 32 | } 33 | 34 | query (query, ...parameters) { 35 | return new Promise((resolve) => { 36 | this.pool.query(query, parameters, (error, res) => { 37 | if (!error) resolve(res) 38 | else console.error(error) 39 | }) 40 | }) 41 | } 42 | 43 | fetchFCMToken (fcmToken) { 44 | return new Promise((resolve) => { 45 | this.query(` 46 | SELECT * FROM users_tokens 47 | WHERE fcm_token = $1; 48 | `, fcmToken).then(({ rowCount, rows }) => { 49 | resolve(rowCount > 0 ? formatFCMToken(rows[0]) : null) 50 | }) 51 | }) 52 | } 53 | 54 | fetchUser (pronoteUsername, pronoteURL) { 55 | return new Promise((resolve) => { 56 | this.query(` 57 | SELECT * FROM users_2021 58 | WHERE pronote_username = $1 59 | AND pronote_url = $2; 60 | `, pronoteUsername, pronoteURL).then(({ rows, rowCount }) => { 61 | resolve(rowCount > 0 ? formatUser(rows[0]) : null) 62 | }) 63 | }) 64 | } 65 | 66 | fetchUsers () { 67 | return new Promise((resolve) => { 68 | this.query(` 69 | SELECT * FROM users_2021; 70 | `).then(({ rows }) => { 71 | resolve(rows.map((row) => formatUser(row))) 72 | }) 73 | }) 74 | } 75 | 76 | fetchUsersCache () { 77 | return new Promise((resolve) => { 78 | this.query(` 79 | SELECT * FROM users_caches; 80 | `).then(({ rows }) => { 81 | resolve(rows.map((row) => ({ 82 | pronoteURL: row.pronote_url, 83 | pronoteUsername: row.pronote_username, 84 | homeworksCache: row.homeworks_cache, 85 | marksCache: row.marks_cache 86 | }))) 87 | }) 88 | }) 89 | } 90 | 91 | fetchFCMTokens () { 92 | return new Promise((resolve) => { 93 | this.query(` 94 | SELECT * FROM users_tokens; 95 | `).then(({ rows }) => { 96 | resolve(rows.map((row) => formatFCMToken(row))) 97 | }) 98 | }) 99 | } 100 | 101 | fetchUserNotifications (pronoteUsername, pronoteURL) { 102 | return new Promise((resolve) => { 103 | this.query(` 104 | SELECT * FROM notifications_2021 105 | WHERE pronote_username = $1 106 | AND pronote_url = $2; 107 | `, pronoteUsername, pronoteURL).then(({ rows }) => { 108 | resolve(rows.map((row) => ({ 109 | pronoteURL: row.pronote_url, 110 | pronoteUsername: row.pronote_username, 111 | createdAt: row.created_at, 112 | readAt: row.read_at, 113 | sentAt: row.sent_at, 114 | body: row.body, 115 | title: row.title, 116 | type: row.type 117 | }))) 118 | }) 119 | }) 120 | } 121 | 122 | markLastActiveAt (token, date) { 123 | return new Promise((resolve) => { 124 | this.query(` 125 | UPDATE users_tokens 126 | SET last_active_at = $1 127 | WHERE fcm_token = $2; 128 | `, date.toISOString(), token).then(() => { 129 | resolve() 130 | }) 131 | }) 132 | } 133 | 134 | markLastSuccessAt (token, date) { 135 | return new Promise((resolve) => { 136 | this.query(` 137 | UPDATE users_tokens 138 | SET last_success_at = $1 139 | WHERE fcm_token = $2; 140 | `, date.toISOString(), token).then(() => { 141 | resolve() 142 | }) 143 | }) 144 | } 145 | 146 | updateUserCache ({ pronoteUsername, pronoteURL }, { homeworksCache, marksCache }) { 147 | return new Promise((resolve) => { 148 | const date = new Date().toISOString() 149 | this.query(` 150 | INSERT INTO users_caches 151 | (pronote_username, pronote_url, homeworks_cache, marks_cache, last_update_at) VALUES 152 | ($1, $2, $3, $4, $5) 153 | ON CONFLICT ON CONSTRAINT users_caches_pkey DO 154 | UPDATE SET homeworks_cache = excluded.homeworks_cache, marks_cache = excluded.marks_cache, last_update_at = excluded.last_update_at; 155 | `, pronoteUsername, pronoteURL, JSON.stringify(homeworksCache), JSON.stringify(marksCache), date).then(() => { 156 | resolve() 157 | }) 158 | }) 159 | } 160 | 161 | invalidateUserPassword ({ pronoteUsername, pronoteURL }, invalidate = true) { 162 | return new Promise((resolve) => { 163 | this.query(` 164 | UPDATE users_2021 165 | SET password_invalidated = $1 166 | WHERE pronote_username = $2 167 | AND pronote_url = $3; 168 | `, invalidate, pronoteUsername, pronoteURL).then(() => { 169 | resolve() 170 | }) 171 | }) 172 | } 173 | 174 | updateUserPassword ({ pronoteUsername, pronoteURL, newPassword }) { 175 | return new Promise((resolve) => { 176 | this.query(` 177 | UPDATE users_2021 178 | SET pronote_password = $1 179 | WHERE pronote_username = $2 180 | AND pronote_url = $3; 181 | `, newPassword, pronoteUsername, pronoteURL).then(() => { 182 | resolve() 183 | }) 184 | }) 185 | } 186 | 187 | createUser ({ pronoteUsername, pronotePassword, pronoteURL, pronoteCAS, fullName, studentClass, establishment }) { 188 | return new Promise((resolve) => { 189 | this.query(` 190 | INSERT INTO users_2021 191 | (pronote_username, pronote_password, pronote_url, pronote_cas, full_name, student_class, establishment, created_at) VALUES 192 | ($1, $2, $3, $4, $5, $6, $7, $8); 193 | `, pronoteUsername, pronotePassword, pronoteURL, pronoteCAS, fullName, studentClass, establishment, new Date().toISOString()).then(() => { 194 | resolve() 195 | }) 196 | }) 197 | } 198 | 199 | updateToken (token, data) { 200 | return new Promise((resolve) => { 201 | const updates = [] 202 | if (Object.prototype.hasOwnProperty.call(data, 'notificationsHomeworks')) updates.push(`notifications_homeworks = ${data.notificationsHomeworks}`) 203 | if (Object.prototype.hasOwnProperty.call(data, 'notificationsMarks')) updates.push(`notifications_marks = ${data.notificationsMarks}`) 204 | if (Object.prototype.hasOwnProperty.call(data, 'isActive')) updates.push(`is_active = ${data.isActive}`) 205 | this.query(` 206 | UPDATE users_tokens 207 | SET ${updates.join(', ')} 208 | WHERE fcm_token = $1; 209 | `, token).then(() => { 210 | resolve() 211 | }) 212 | }) 213 | } 214 | 215 | createOrUpdateToken ({ pronoteUsername, pronoteURL }, token, deviceID) { 216 | return new Promise((resolve) => { 217 | this.query(` 218 | INSERT INTO users_tokens 219 | (pronote_username, pronote_url, fcm_token, is_active, notifications_homeworks, notifications_marks, device_id) VALUES 220 | ($1, $2, $3, true, true, true, $4) 221 | ON CONFLICT ON CONSTRAINT users_tokens_pkey DO 222 | UPDATE SET is_active = true, 223 | notifications_homeworks = true, 224 | notifications_marks = true; 225 | `, pronoteUsername, pronoteURL, token, deviceID).then(() => { 226 | resolve() 227 | }) 228 | }) 229 | } 230 | 231 | createNotification ({ pronoteUsername, pronoteURL }, { type, title, body }) { 232 | return new Promise((resolve) => { 233 | const id = Math.random().toString(36).substr(2, 9) 234 | const createdAt = new Date().toISOString() 235 | this.query(` 236 | INSERT INTO notifications_2021 237 | (notification_id, pronote_username, pronote_url, sent_at, read_at, type, title, body, created_at) VALUES 238 | ($1, $2, $3, null, null, $4, $5, $6, $7); 239 | `, id, pronoteUsername, pronoteURL, type, title, body, createdAt).then(() => { 240 | resolve(id) 241 | }) 242 | }) 243 | } 244 | 245 | markNotificationSent (id, sentAt) { 246 | return new Promise((resolve) => { 247 | this.query(` 248 | UPDATE notifications_2021 249 | SET sent_at = $1 250 | WHERE notification_id = $2; 251 | `, sentAt.toISOString(), id).then(() => { 252 | resolve() 253 | }) 254 | }) 255 | } 256 | 257 | markNotificationRead (id, readAt) { 258 | return new Promise((resolve) => { 259 | this.query(` 260 | UPDATE notifications_2021 261 | SET read_at = $1 262 | WHERE notification_id = $2; 263 | `, readAt.toISOString(), id).then(() => { 264 | resolve() 265 | }) 266 | }) 267 | } 268 | 269 | createUserLog ({ pronoteUsername, pronoteURL, fcmToken }, { route, appVersion, date = new Date(), body, jwt }) { 270 | return this.query(` 271 | INSERT INTO users_logs 272 | (pronote_username, pronote_url, fcm_token, route, app_version, date, jwt, req_body) VALUES 273 | ($1, $2, $3, $4, $5, $6, $7, $8); 274 | `, pronoteUsername, pronoteURL, fcmToken, route, appVersion, date.toISOString(), jwt, body) 275 | } 276 | }; 277 | 278 | module.exports = DatabaseService 279 | -------------------------------------------------------------------------------- /services/firebase.js: -------------------------------------------------------------------------------- 1 | const firebase = require('firebase-admin') 2 | const fetch = require('node-fetch') 3 | const config = require('../config.json') 4 | 5 | class FirebaseService { 6 | constructor () { 7 | this.serverKey = config.googleCloudMessagingServerKey 8 | this.app = firebase.initializeApp({ 9 | credential: firebase.credential.cert(config.serviceAccountKey) 10 | }) 11 | } 12 | 13 | verifyToken (token) { 14 | return new Promise((resolve) => { 15 | fetch('https://fcm.googleapis.com/fcm/send', { 16 | method: 'POST', 17 | headers: { 18 | Authorization: `key=${this.serverKey}`, 19 | 'Content-Type': 'application/json' 20 | }, 21 | body: JSON.stringify({ 22 | registration_ids: [token] 23 | }) 24 | }).then((res) => { 25 | res.json().then((data) => { 26 | resolve(!(data.results[0].error === 'InvalidRegistration')) 27 | }) 28 | }) 29 | }) 30 | } 31 | 32 | sendNotification (notificationData, notificationType, tokens) { 33 | return new Promise((resolve) => { 34 | firebase.messaging().sendMulticast({ 35 | data: { 36 | type: notificationType 37 | }, 38 | notification: notificationData, 39 | tokens 40 | }).then((response) => { 41 | resolve(response.responses) 42 | }) 43 | }) 44 | } 45 | } 46 | 47 | module.exports = FirebaseService 48 | -------------------------------------------------------------------------------- /services/jwt.js: -------------------------------------------------------------------------------- 1 | const jwt = require('jsonwebtoken') 2 | const config = require('../config.json') 3 | 4 | class JWTService { 5 | static createToken (payload) { 6 | return jwt.sign(payload, config.jwtKey) 7 | } 8 | 9 | static verifyToken (token = '') { 10 | try { 11 | return jwt.verify(token, config.jwtKey) 12 | } catch { 13 | return null 14 | } 15 | } 16 | } 17 | 18 | module.exports = JWTService 19 | -------------------------------------------------------------------------------- /services/pronote.js: -------------------------------------------------------------------------------- 1 | const Collection = require('@discordjs/collection') 2 | const chalk = require('chalk') 3 | const pronote = require('pronote-api') 4 | 5 | class PronoteService { 6 | constructor () { 7 | this.casCache = new Collection() 8 | } 9 | 10 | async getEstablishments (latitude, longitude) { 11 | return pronote.geo(latitude, longitude) 12 | } 13 | 14 | parsePronoteURL (url) { 15 | console.log('Parsing URL ' + url) 16 | let newURL = url 17 | const pronoteIndexEducationRegex = /([a-zA-Z0-9]{8})\.index-education\.net/ 18 | if (newURL.includes('index-education.net') && pronoteIndexEducationRegex.test(newURL)) { 19 | const matches = newURL.match(pronoteIndexEducationRegex) 20 | newURL = `https://${matches[1]}.index-education.net/pronote/` 21 | } 22 | console.log('Parsed URL ' + newURL) 23 | return newURL 24 | } 25 | 26 | async resolveCas ({ pronoteUsername, pronotePassword, pronoteURL }) { 27 | console.log('Resolving CAS ' + pronoteURL) 28 | if (this.casCache.has(pronoteURL) && this.casCache.get(pronoteURL) !== undefined) { 29 | return { 30 | cas: this.casCache.get(pronoteURL) 31 | } 32 | } else { 33 | const possiblesCas = await pronote.getCAS(pronoteURL).catch(() => {}) 34 | console.log('Results from PAPI: ' + possiblesCas) 35 | if (!possiblesCas) { 36 | console.log('Final Result: none') 37 | return { 38 | cas: 'none' 39 | } 40 | } else if (typeof possiblesCas === 'string') { 41 | console.log('Final Result: ' + possiblesCas) 42 | this.casCache.set(pronoteURL, possiblesCas) 43 | return { 44 | cas: possiblesCas 45 | } 46 | } else { 47 | const fetchCas = async () => { 48 | const promises = possiblesCas.map((cas) => pronote.login(pronoteURL, pronoteUsername, pronotePassword, cas)) 49 | const results = await Promise.all(promises) 50 | const workedSessionIndex = results.findIndex((r) => r !== undefined); 51 | if (!workedSessionIndex) { 52 | console.log(results); 53 | } 54 | return { 55 | cas: possiblesCas[workedSessionIndex], 56 | session: results[workedSessionIndex] 57 | }; 58 | } 59 | const { cas, session } = await fetchCas() 60 | if (cas) this.casCache.set(pronoteURL, cas) 61 | console.log('Final Result: ' + cas) 62 | return { 63 | cas, 64 | session: results.find((r) => r !== undefined) 65 | } 66 | } 67 | } 68 | } 69 | 70 | checkSession (userAuth, oldCache = {}, fetchID) { 71 | return new Promise((resolve, reject) => { 72 | const notifications = [] 73 | let newCache = oldCache 74 | 75 | this.createSession(userAuth, fetchID).then((session) => { 76 | // Vérification des devoirs 77 | session.homeworks(new Date(Date.now()), session.params.lastDay).then((homeworks) => { 78 | if (oldCache.homeworksCache) { 79 | const newHomeworks = homeworks.filter((work) => !(oldCache.homeworksCache.some((cacheWork) => cacheWork.description === work.description))) 80 | if (newHomeworks.length > 0 && newHomeworks.length <= 3) { 81 | newHomeworks.forEach((work) => notifications.push({ 82 | type: 'homework', 83 | title: `Nouveau devoir en ${work.subject}`, 84 | body: work.description 85 | })) 86 | } 87 | } 88 | 89 | // Mise à jour du cache pour les devoirs 90 | newCache = { 91 | ...newCache, 92 | ...{ 93 | homeworksCache: homeworks 94 | } 95 | } 96 | 97 | session.marks('trimester').then((marks) => { 98 | if (!marks) { 99 | marks = { subjects: [], empty: true } 100 | } else if (oldCache.marksCache && !oldCache.marksCache.empty) { 101 | const marksNotifications = [] 102 | marks.subjects.forEach((subject) => { 103 | const cachedSubject = oldCache.marksCache.subjects.find((sub) => sub.name === subject.name) 104 | if (cachedSubject) { 105 | const newMarks = subject.marks.filter((mark) => !(cachedSubject.marks.some((cacheMark) => cacheMark.id === mark.id))) 106 | newMarks.forEach((mark) => marksNotifications.push({ subject, mark })) 107 | } else { 108 | subject.marks.forEach((mark) => marksNotifications.push({ subject, mark })) 109 | } 110 | }) 111 | if (marksNotifications.length > 0 && marksNotifications.length < 3) { 112 | marksNotifications.forEach((markNotif) => { 113 | notifications.push({ 114 | type: 'mark', 115 | title: `Nouvelle note en ${markNotif.subject.name}`, 116 | body: `Note: ${markNotif.mark.value || 'ABS'}/${markNotif.mark.scale}\nMoyenne de la classe: ${markNotif.mark.average}/${markNotif.mark.scale}` 117 | }) 118 | }) 119 | } 120 | } 121 | 122 | // Mise à jour du cache pour les notes 123 | newCache = { 124 | ...newCache, 125 | ...{ 126 | marksCache: marks 127 | } 128 | } 129 | 130 | // Déconnexion de Pronote 131 | session.logout() 132 | 133 | resolve([notifications, newCache]) 134 | }) 135 | }) 136 | }).catch((e) => { 137 | reject(e) 138 | }) 139 | }) 140 | } 141 | 142 | createSession ({ pronoteUsername, pronotePassword, pronoteURL, pronoteCAS }, fetchID) { 143 | return new Promise((resolve, reject) => { 144 | try { 145 | pronote.login(pronoteURL, pronoteUsername, pronotePassword, pronoteCAS || 'none', 'student').then((session) => { 146 | resolve(session) 147 | }).catch((error) => { 148 | const formattedUserCredentials = `(${pronoteUsername}:${pronotePassword}@${pronoteURL}:${pronoteCAS})` 149 | if (error.code === 1) { 150 | console.log(chalk.yellow(`#${fetchID} Connexion à Pronote : CAS est invalide pour ${pronoteUsername} (${pronoteCAS})`)) 151 | } else if (error.message === 'read ECONNRESET') { 152 | console.log(chalk.red(`#${fetchID} Connexion à Pronote : serveur ${pronoteURL} inaccessible, connexion fermée`)) 153 | } else if (error.message === 'Wrong user credentials') { 154 | console.log(chalk.red(`#${fetchID} Connexion à Pronote : mauvais identifiants ${formattedUserCredentials}`)) 155 | } else if (error.message.startsWith('connect ETIMEDOUT')) { 156 | console.log(chalk.redBright(`#${fetchID} Connexion à Pronote : timeout lors de l\'authentification à ${pronoteURL}`)) 157 | } else if (error.message === 'You are being rate limited because of too many failed requests') { 158 | console.log(chalk.redBright(`#${fetchID} Connexion à Pronote : API de Pronote Notifications bannie suite à de nombreuses connexions invalides ${pronoteURL}`)) 159 | } else if (error.message === 'Session has expired due to inactivity or error') { 160 | console.log(chalk.redBright(`#${fetchID} Connexion à Pronote : La session a expiré lors de la connexion ${formattedUserCredentials}`)) 161 | } else { 162 | console.log(chalk.red(`#${fetchID} ${error.message}`)) 163 | } 164 | reject(error) 165 | }) 166 | } catch { 167 | // eslint-disable-next-line prefer-promise-reject-errors 168 | reject() 169 | } 170 | }) 171 | } 172 | } 173 | 174 | module.exports = PronoteService 175 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | require('dotenv').config(); 2 | 3 | require('pronote-api').login('https://demo.index-education.net/pronote', 'demonstration', 'pronotevs', 'none').then(console.log) 4 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@arr/every@^1.0.0": 6 | version "1.0.1" 7 | resolved "https://registry.yarnpkg.com/@arr/every/-/every-1.0.1.tgz#22fe1f8e6355beca6c7c7bde965eb15cf994387b" 8 | integrity sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg== 9 | 10 | "@babel/code-frame@7.12.11": 11 | version "7.12.11" 12 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" 13 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== 14 | dependencies: 15 | "@babel/highlight" "^7.10.4" 16 | 17 | "@babel/helper-validator-identifier@^7.12.11": 18 | version "7.12.11" 19 | resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" 20 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== 21 | 22 | "@babel/highlight@^7.10.4": 23 | version "7.13.10" 24 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" 25 | integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== 26 | dependencies: 27 | "@babel/helper-validator-identifier" "^7.12.11" 28 | chalk "^2.0.0" 29 | js-tokens "^4.0.0" 30 | 31 | "@babel/runtime@^7.14.0": 32 | version "7.14.0" 33 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" 34 | integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== 35 | dependencies: 36 | regenerator-runtime "^0.13.4" 37 | 38 | "@discordjs/collection@^0.1.6": 39 | version "0.1.6" 40 | resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-0.1.6.tgz#9e9a7637f4e4e0688fd8b2b5c63133c91607682c" 41 | integrity sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ== 42 | 43 | "@eslint/eslintrc@^0.4.0": 44 | version "0.4.0" 45 | resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" 46 | integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== 47 | dependencies: 48 | ajv "^6.12.4" 49 | debug "^4.1.1" 50 | espree "^7.3.0" 51 | globals "^12.1.0" 52 | ignore "^4.0.6" 53 | import-fresh "^3.2.1" 54 | js-yaml "^3.13.1" 55 | minimatch "^3.0.4" 56 | strip-json-comments "^3.1.1" 57 | 58 | "@firebase/app-types@0.6.1": 59 | version "0.6.1" 60 | resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.6.1.tgz#dcbd23030a71c0c74fc95d4a3f75ba81653850e9" 61 | integrity sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg== 62 | 63 | "@firebase/auth-interop-types@0.1.5": 64 | version "0.1.5" 65 | resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz#9fc9bd7c879f16b8d1bb08373a0f48c3a8b74557" 66 | integrity sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw== 67 | 68 | "@firebase/component@0.1.19": 69 | version "0.1.19" 70 | resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.1.19.tgz#bd2ac601652c22576b574c08c40da245933dbac7" 71 | integrity sha512-L0S3g8eqaerg8y0zox3oOHSTwn/FE8RbcRHiurnbESvDViZtP5S5WnhuAPd7FnFxa8ElWK0z1Tr3ikzWDv1xdQ== 72 | dependencies: 73 | "@firebase/util" "0.3.2" 74 | tslib "^1.11.1" 75 | 76 | "@firebase/database-types@0.5.2", "@firebase/database-types@^0.5.2": 77 | version "0.5.2" 78 | resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.5.2.tgz#23bec8477f84f519727f165c687761e29958b63c" 79 | integrity sha512-ap2WQOS3LKmGuVFKUghFft7RxXTyZTDr0Xd8y2aqmWsbJVjgozi0huL/EUMgTjGFrATAjcf2A7aNs8AKKZ2a8g== 80 | dependencies: 81 | "@firebase/app-types" "0.6.1" 82 | 83 | "@firebase/database@^0.6.10": 84 | version "0.6.13" 85 | resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.6.13.tgz#b96fe0c53757dd6404ee085fdcb45c0f9f525c17" 86 | integrity sha512-NommVkAPzU7CKd1gyehmi3lz0K78q0KOfiex7Nfy7MBMwknLm7oNqKovXSgQV1PCLvKXvvAplDSFhDhzIf9obA== 87 | dependencies: 88 | "@firebase/auth-interop-types" "0.1.5" 89 | "@firebase/component" "0.1.19" 90 | "@firebase/database-types" "0.5.2" 91 | "@firebase/logger" "0.2.6" 92 | "@firebase/util" "0.3.2" 93 | faye-websocket "0.11.3" 94 | tslib "^1.11.1" 95 | 96 | "@firebase/logger@0.2.6": 97 | version "0.2.6" 98 | resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.2.6.tgz#3aa2ca4fe10327cabf7808bd3994e88db26d7989" 99 | integrity sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw== 100 | 101 | "@firebase/util@0.3.2": 102 | version "0.3.2" 103 | resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.3.2.tgz#87de27f9cffc2324651cabf6ec133d0a9eb21b52" 104 | integrity sha512-Dqs00++c8rwKky6KCKLLY2T1qYO4Q+X5t+lF7DInXDNF4ae1Oau35bkD+OpJ9u7l1pEv7KHowP6CUKuySCOc8g== 105 | dependencies: 106 | tslib "^1.11.1" 107 | 108 | "@google-cloud/common@^3.3.0": 109 | version "3.4.1" 110 | resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-3.4.1.tgz#a1920d73c38437923b4b134e245c392d36c442e9" 111 | integrity sha512-e5z0CwsM0RXky+PnyPtQ3QK46ksqm+kE7kX8pm8X+ddBwZJipHchKeazMM5fLlGCS+AALalzXb+uYmH72TRnpQ== 112 | dependencies: 113 | "@google-cloud/projectify" "^2.0.0" 114 | "@google-cloud/promisify" "^2.0.0" 115 | arrify "^2.0.1" 116 | duplexify "^4.1.1" 117 | ent "^2.2.0" 118 | extend "^3.0.2" 119 | google-auth-library "^6.1.1" 120 | retry-request "^4.1.1" 121 | teeny-request "^7.0.0" 122 | 123 | "@google-cloud/firestore@^4.0.0": 124 | version "4.4.0" 125 | resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-4.4.0.tgz#6cdbd462f32a8f94e138c57ef81195156c79e680" 126 | integrity sha512-nixsumd4C7eL+hHEgyihspzhBBNe3agsvNFRX0xfqO3uR/6ro4CUj9XdcCvdnSSd3yTyqKfdBSRK2fEj1jIbYg== 127 | dependencies: 128 | fast-deep-equal "^3.1.1" 129 | functional-red-black-tree "^1.0.1" 130 | google-gax "^2.2.0" 131 | 132 | "@google-cloud/paginator@^3.0.0": 133 | version "3.0.5" 134 | resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-3.0.5.tgz#9d6b96c421a89bd560c1bc2c197c7611ef21db6c" 135 | integrity sha512-N4Uk4BT1YuskfRhKXBs0n9Lg2YTROZc6IMpkO/8DIHODtm5s3xY8K5vVBo23v/2XulY3azwITQlYWgT4GdLsUw== 136 | dependencies: 137 | arrify "^2.0.0" 138 | extend "^3.0.2" 139 | 140 | "@google-cloud/projectify@^2.0.0": 141 | version "2.0.1" 142 | resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-2.0.1.tgz#13350ee609346435c795bbfe133a08dfeab78d65" 143 | integrity sha512-ZDG38U/Yy6Zr21LaR3BTiiLtpJl6RkPS/JwoRT453G+6Q1DhlV0waNf8Lfu+YVYGIIxgKnLayJRfYlFJfiI8iQ== 144 | 145 | "@google-cloud/promisify@^2.0.0": 146 | version "2.0.3" 147 | resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-2.0.3.tgz#f934b5cdc939e3c7039ff62b9caaf59a9d89e3a8" 148 | integrity sha512-d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw== 149 | 150 | "@google-cloud/storage@^5.3.0": 151 | version "5.3.0" 152 | resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-5.3.0.tgz#cf86683911cce68829e46de544abb41947d29da2" 153 | integrity sha512-3t5UF3SZ14Bw2kcBHubCai6EIugU2GnQOstYWVSFuoO8IJ94RAaIOPq/dtexvQbUTpBTAGpd5smVR9WPL1mJVw== 154 | dependencies: 155 | "@google-cloud/common" "^3.3.0" 156 | "@google-cloud/paginator" "^3.0.0" 157 | "@google-cloud/promisify" "^2.0.0" 158 | arrify "^2.0.0" 159 | compressible "^2.0.12" 160 | concat-stream "^2.0.0" 161 | date-and-time "^0.14.0" 162 | duplexify "^3.5.0" 163 | extend "^3.0.2" 164 | gaxios "^3.0.0" 165 | gcs-resumable-upload "^3.1.0" 166 | hash-stream-validation "^0.2.2" 167 | mime "^2.2.0" 168 | mime-types "^2.0.8" 169 | onetime "^5.1.0" 170 | p-limit "^3.0.1" 171 | pumpify "^2.0.0" 172 | snakeize "^0.1.0" 173 | stream-events "^1.0.1" 174 | xdg-basedir "^4.0.0" 175 | 176 | "@grpc/grpc-js@~1.1.1": 177 | version "1.1.7" 178 | resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.1.7.tgz#d3d71c6da95397e2d63895ccc4a05e7572f7b7e6" 179 | integrity sha512-EuxMstI0u778dp0nk6Fe3gHXYPeV6FYsWOe0/QFwxv1NQ6bc5Wl/0Yxa4xl9uBlKElL6AIxuASmSfu7KEJhqiw== 180 | dependencies: 181 | "@grpc/proto-loader" "^0.6.0-pre14" 182 | "@types/node" "^12.12.47" 183 | google-auth-library "^6.0.0" 184 | semver "^6.2.0" 185 | 186 | "@grpc/proto-loader@^0.5.1": 187 | version "0.5.5" 188 | resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.5.tgz#6725e7a1827bdf8e92e29fbf4e9ef0203c0906a9" 189 | integrity sha512-WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ== 190 | dependencies: 191 | lodash.camelcase "^4.3.0" 192 | protobufjs "^6.8.6" 193 | 194 | "@grpc/proto-loader@^0.6.0-pre14": 195 | version "0.6.0-pre9" 196 | resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.0-pre9.tgz#0c6fe42f6c5ef9ce1b3cef7be64d5b09d6fe4d6d" 197 | integrity sha512-oM+LjpEjNzW5pNJjt4/hq1HYayNeQT+eGrOPABJnYHv7TyNPDNzkQ76rDYZF86X5swJOa4EujEMzQ9iiTdPgww== 198 | dependencies: 199 | "@types/long" "^4.0.1" 200 | lodash.camelcase "^4.3.0" 201 | long "^4.0.0" 202 | protobufjs "^6.9.0" 203 | yargs "^15.3.1" 204 | 205 | "@polka/url@^0.5.0": 206 | version "0.5.0" 207 | resolved "https://registry.yarnpkg.com/@polka/url/-/url-0.5.0.tgz#b21510597fd601e5d7c95008b76bf0d254ebfd31" 208 | integrity sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw== 209 | 210 | "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": 211 | version "1.1.2" 212 | resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" 213 | integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= 214 | 215 | "@protobufjs/base64@^1.1.2": 216 | version "1.1.2" 217 | resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" 218 | integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== 219 | 220 | "@protobufjs/codegen@^2.0.4": 221 | version "2.0.4" 222 | resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" 223 | integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== 224 | 225 | "@protobufjs/eventemitter@^1.1.0": 226 | version "1.1.0" 227 | resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" 228 | integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= 229 | 230 | "@protobufjs/fetch@^1.1.0": 231 | version "1.1.0" 232 | resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" 233 | integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= 234 | dependencies: 235 | "@protobufjs/aspromise" "^1.1.1" 236 | "@protobufjs/inquire" "^1.1.0" 237 | 238 | "@protobufjs/float@^1.0.2": 239 | version "1.0.2" 240 | resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" 241 | integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= 242 | 243 | "@protobufjs/inquire@^1.1.0": 244 | version "1.1.0" 245 | resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" 246 | integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= 247 | 248 | "@protobufjs/path@^1.1.2": 249 | version "1.1.2" 250 | resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" 251 | integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= 252 | 253 | "@protobufjs/pool@^1.1.0": 254 | version "1.1.0" 255 | resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" 256 | integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= 257 | 258 | "@protobufjs/utf8@^1.1.0": 259 | version "1.1.0" 260 | resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" 261 | integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= 262 | 263 | "@sentry/core@5.27.3": 264 | version "5.27.3" 265 | resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.27.3.tgz#d7a175b71596b7eb4b2e8b4cd1858a60d95813bb" 266 | integrity sha512-yqepQO88jSt5hy0awpk61AxI4oHB09LjVbUEk4nJDg+1YXuND23cuZvH+Sp2jCZX2vrsw2tefwflToYfA8/U2w== 267 | dependencies: 268 | "@sentry/hub" "5.27.3" 269 | "@sentry/minimal" "5.27.3" 270 | "@sentry/types" "5.27.3" 271 | "@sentry/utils" "5.27.3" 272 | tslib "^1.9.3" 273 | 274 | "@sentry/hub@5.27.3": 275 | version "5.27.3" 276 | resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.27.3.tgz#f509c2fd38f500afef6030504e82510dbd0649d6" 277 | integrity sha512-icEH3hr6NVQkpowXZcPOs9IgJZP5lMKtvud4mVioSpkd+NxtRdKrGEX4eF2TCviOJc9Md0mV4K+aL5Au7hxggQ== 278 | dependencies: 279 | "@sentry/types" "5.27.3" 280 | "@sentry/utils" "5.27.3" 281 | tslib "^1.9.3" 282 | 283 | "@sentry/minimal@5.27.3": 284 | version "5.27.3" 285 | resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.27.3.tgz#c9263bdd6270bfeae64137177448911dff568e53" 286 | integrity sha512-ng01cM0rsE1RMjqVTpPLN0ZVkTo0I675usM1krkpQe8ddW6tfQ6EJWpt02/BrpQZRQzTtfWp6/RyB1KFXg6icg== 287 | dependencies: 288 | "@sentry/hub" "5.27.3" 289 | "@sentry/types" "5.27.3" 290 | tslib "^1.9.3" 291 | 292 | "@sentry/node@^5.27.3": 293 | version "5.27.3" 294 | resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.27.3.tgz#174b81fbca8cadac12afe49910cbe9cc25b23f87" 295 | integrity sha512-IZ/TkYRY+P/E5C+RF6Rcb6tpY59fyk0040Q3akzbDjb/hrw5TRKnK8fJ6/0gXCAOvlDPIlpRHFJgJ1p2QgWy+g== 296 | dependencies: 297 | "@sentry/core" "5.27.3" 298 | "@sentry/hub" "5.27.3" 299 | "@sentry/tracing" "5.27.3" 300 | "@sentry/types" "5.27.3" 301 | "@sentry/utils" "5.27.3" 302 | cookie "^0.4.1" 303 | https-proxy-agent "^5.0.0" 304 | lru_map "^0.3.3" 305 | tslib "^1.9.3" 306 | 307 | "@sentry/tracing@5.27.3", "@sentry/tracing@^5.27.3": 308 | version "5.27.3" 309 | resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.27.3.tgz#787e57a2f7071e375f4fad0f3c3a5ff3381928e7" 310 | integrity sha512-UWrHMdGxPfx1u558CWm1tptc2z0BuqCHVe2+BNN7POahq5BkpbGqaotyPQTBHbfmcs6QGfsMG57ou8HQFrBxyA== 311 | dependencies: 312 | "@sentry/hub" "5.27.3" 313 | "@sentry/minimal" "5.27.3" 314 | "@sentry/types" "5.27.3" 315 | "@sentry/utils" "5.27.3" 316 | tslib "^1.9.3" 317 | 318 | "@sentry/types@5.27.3": 319 | version "5.27.3" 320 | resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.27.3.tgz#d377508769bc658d672c287166c7f6c5db45660c" 321 | integrity sha512-PkWhMArFMxBb1g3HtMEL8Ea9PYae2MU0z9CMIWiqzerFy2ZpKG98IU3pt8ic4JkmKQdwB8hDiZpRPMHhW0WYwQ== 322 | 323 | "@sentry/utils@5.27.3": 324 | version "5.27.3" 325 | resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.27.3.tgz#1fc45dfad1f1e4398bee58684d8947666d8d3003" 326 | integrity sha512-R9WvFrRBALZvCzu/9BsuXBCfkNxz4MwdBNSXaBsJo4afQw1ljkjIc9DpHzlL9S9goIwXo81Buwmr5gGDO6aH+Q== 327 | dependencies: 328 | "@sentry/types" "5.27.3" 329 | tslib "^1.9.3" 330 | 331 | "@tootallnate/once@1": 332 | version "1.1.2" 333 | resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" 334 | integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== 335 | 336 | "@types/json5@^0.0.29": 337 | version "0.0.29" 338 | resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 339 | integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= 340 | 341 | "@types/long@^4.0.0", "@types/long@^4.0.1": 342 | version "4.0.1" 343 | resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" 344 | integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== 345 | 346 | "@types/node@^10.10.0": 347 | version "10.17.40" 348 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.40.tgz#8a50e47daff15fd4a89dc56f5221b3729e506be6" 349 | integrity sha512-3hZT2z2/531A5pc8hYhn1gU5Qb1SIRSgMLQ6zuHA5xtt16lWAxUGprtr8lJuc9zNJMXEIIBWfSnzqBP/4mglpA== 350 | 351 | "@types/node@^12.12.47": 352 | version "12.12.69" 353 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.69.tgz#7cb6a3aa0d16664bf2dcd1450ccb8477464fbd79" 354 | integrity sha512-2F2VQRSFmzqgUEXw75L51MgnnZqc6bKWVSUPfrDPzp6mzGGibeVwyQcpvZvBr5RnsoMRHmC8EcBQiobSeqeJxg== 355 | 356 | "@types/node@^13.7.0": 357 | version "13.13.27" 358 | resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.27.tgz#989cb01c7a6419abd2f2f956cae4828f825589f6" 359 | integrity sha512-IeZlpkPnUqO45iBxJocIQzwV+K6phdSVaCxRwlvHHQ0YL+Gb1fvuv9GmIMYllZcjyzqoRKDNJeNo6p8dNWSPSQ== 360 | 361 | abab@^2.0.3, abab@^2.0.5: 362 | version "2.0.5" 363 | resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" 364 | integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== 365 | 366 | abort-controller@^3.0.0: 367 | version "3.0.0" 368 | resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" 369 | integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== 370 | dependencies: 371 | event-target-shim "^5.0.0" 372 | 373 | accepts@~1.3.7: 374 | version "1.3.7" 375 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 376 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 377 | dependencies: 378 | mime-types "~2.1.24" 379 | negotiator "0.6.2" 380 | 381 | acorn-globals@^6.0.0: 382 | version "6.0.0" 383 | resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" 384 | integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== 385 | dependencies: 386 | acorn "^7.1.1" 387 | acorn-walk "^7.1.1" 388 | 389 | acorn-jsx@^5.3.1: 390 | version "5.3.1" 391 | resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" 392 | integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== 393 | 394 | acorn-walk@^7.1.1: 395 | version "7.2.0" 396 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" 397 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== 398 | 399 | acorn@^7.1.1, acorn@^7.4.0: 400 | version "7.4.1" 401 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 402 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 403 | 404 | acorn@^8.2.4: 405 | version "8.2.4" 406 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" 407 | integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg== 408 | 409 | agent-base@6: 410 | version "6.0.1" 411 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.1.tgz#808007e4e5867decb0ab6ab2f928fbdb5a596db4" 412 | integrity sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg== 413 | dependencies: 414 | debug "4" 415 | 416 | ajv@^6.10.0, ajv@^6.12.4: 417 | version "6.12.6" 418 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 419 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 420 | dependencies: 421 | fast-deep-equal "^3.1.1" 422 | fast-json-stable-stringify "^2.0.0" 423 | json-schema-traverse "^0.4.1" 424 | uri-js "^4.2.2" 425 | 426 | ajv@^8.0.1: 427 | version "8.1.0" 428 | resolved "https://registry.npmjs.org/ajv/-/ajv-8.1.0.tgz#45d5d3d36c7cdd808930cc3e603cf6200dbeb736" 429 | integrity sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ== 430 | dependencies: 431 | fast-deep-equal "^3.1.1" 432 | json-schema-traverse "^1.0.0" 433 | require-from-string "^2.0.2" 434 | uri-js "^4.2.2" 435 | 436 | ansi-colors@^4.1.1: 437 | version "4.1.1" 438 | resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 439 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 440 | 441 | ansi-escapes@^4.2.1: 442 | version "4.3.1" 443 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" 444 | integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== 445 | dependencies: 446 | type-fest "^0.11.0" 447 | 448 | ansi-regex@^5.0.0: 449 | version "5.0.0" 450 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 451 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 452 | 453 | ansi-styles@^3.2.1: 454 | version "3.2.1" 455 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 456 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 457 | dependencies: 458 | color-convert "^1.9.0" 459 | 460 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 461 | version "4.3.0" 462 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 463 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 464 | dependencies: 465 | color-convert "^2.0.1" 466 | 467 | argparse@^1.0.7: 468 | version "1.0.10" 469 | resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 470 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 471 | dependencies: 472 | sprintf-js "~1.0.2" 473 | 474 | array-flatten@1.1.1: 475 | version "1.1.1" 476 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 477 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 478 | 479 | array-includes@^3.1.1: 480 | version "3.1.3" 481 | resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" 482 | integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== 483 | dependencies: 484 | call-bind "^1.0.2" 485 | define-properties "^1.1.3" 486 | es-abstract "^1.18.0-next.2" 487 | get-intrinsic "^1.1.1" 488 | is-string "^1.0.5" 489 | 490 | array.prototype.flat@^1.2.3: 491 | version "1.2.4" 492 | resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" 493 | integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== 494 | dependencies: 495 | call-bind "^1.0.0" 496 | define-properties "^1.1.3" 497 | es-abstract "^1.18.0-next.1" 498 | 499 | arrify@^2.0.0, arrify@^2.0.1: 500 | version "2.0.1" 501 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" 502 | integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== 503 | 504 | astral-regex@^2.0.0: 505 | version "2.0.0" 506 | resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 507 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 508 | 509 | asynckit@^0.4.0: 510 | version "0.4.0" 511 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 512 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 513 | 514 | axios@^0.21.1: 515 | version "0.21.1" 516 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" 517 | integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== 518 | dependencies: 519 | follow-redirects "^1.10.0" 520 | 521 | balanced-match@^1.0.0: 522 | version "1.0.2" 523 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 524 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 525 | 526 | base64-js@^1.3.0: 527 | version "1.3.1" 528 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" 529 | integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== 530 | 531 | basic-auth@~2.0.1: 532 | version "2.0.1" 533 | resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" 534 | integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== 535 | dependencies: 536 | safe-buffer "5.1.2" 537 | 538 | bignumber.js@^9.0.0: 539 | version "9.0.1" 540 | resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" 541 | integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== 542 | 543 | body-parser@1.19.0, body-parser@^1.19.0: 544 | version "1.19.0" 545 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" 546 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== 547 | dependencies: 548 | bytes "3.1.0" 549 | content-type "~1.0.4" 550 | debug "2.6.9" 551 | depd "~1.1.2" 552 | http-errors "1.7.2" 553 | iconv-lite "0.4.24" 554 | on-finished "~2.3.0" 555 | qs "6.7.0" 556 | raw-body "2.4.0" 557 | type-is "~1.6.17" 558 | 559 | brace-expansion@^1.1.7: 560 | version "1.1.11" 561 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 562 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 563 | dependencies: 564 | balanced-match "^1.0.0" 565 | concat-map "0.0.1" 566 | 567 | browser-process-hrtime@^1.0.0: 568 | version "1.0.0" 569 | resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" 570 | integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== 571 | 572 | buffer-equal-constant-time@1.0.1: 573 | version "1.0.1" 574 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 575 | integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= 576 | 577 | buffer-from@^1.0.0: 578 | version "1.1.1" 579 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 580 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 581 | 582 | buffer-writer@2.0.0: 583 | version "2.0.0" 584 | resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" 585 | integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== 586 | 587 | bytes@3.1.0: 588 | version "3.1.0" 589 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 590 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 591 | 592 | call-bind@^1.0.0, call-bind@^1.0.2: 593 | version "1.0.2" 594 | resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 595 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 596 | dependencies: 597 | function-bind "^1.1.1" 598 | get-intrinsic "^1.0.2" 599 | 600 | callsites@^3.0.0: 601 | version "3.1.0" 602 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 603 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 604 | 605 | camelcase@^5.0.0: 606 | version "5.3.1" 607 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 608 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 609 | 610 | chalk@^2.0.0: 611 | version "2.4.2" 612 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 613 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 614 | dependencies: 615 | ansi-styles "^3.2.1" 616 | escape-string-regexp "^1.0.5" 617 | supports-color "^5.3.0" 618 | 619 | chalk@^4.0.0: 620 | version "4.1.1" 621 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" 622 | integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== 623 | dependencies: 624 | ansi-styles "^4.1.0" 625 | supports-color "^7.1.0" 626 | 627 | chalk@^4.1.0: 628 | version "4.1.0" 629 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" 630 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== 631 | dependencies: 632 | ansi-styles "^4.1.0" 633 | supports-color "^7.1.0" 634 | 635 | chardet@^0.7.0: 636 | version "0.7.0" 637 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 638 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 639 | 640 | cli-cursor@^3.1.0: 641 | version "3.1.0" 642 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" 643 | integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 644 | dependencies: 645 | restore-cursor "^3.1.0" 646 | 647 | cli-width@^3.0.0: 648 | version "3.0.0" 649 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" 650 | integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== 651 | 652 | cliui@^6.0.0: 653 | version "6.0.0" 654 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" 655 | integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== 656 | dependencies: 657 | string-width "^4.2.0" 658 | strip-ansi "^6.0.0" 659 | wrap-ansi "^6.2.0" 660 | 661 | color-convert@^1.9.0: 662 | version "1.9.3" 663 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 664 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 665 | dependencies: 666 | color-name "1.1.3" 667 | 668 | color-convert@^2.0.1: 669 | version "2.0.1" 670 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 671 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 672 | dependencies: 673 | color-name "~1.1.4" 674 | 675 | color-name@1.1.3: 676 | version "1.1.3" 677 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 678 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 679 | 680 | color-name@~1.1.4: 681 | version "1.1.4" 682 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 683 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 684 | 685 | combined-stream@^1.0.8: 686 | version "1.0.8" 687 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 688 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 689 | dependencies: 690 | delayed-stream "~1.0.0" 691 | 692 | compressible@^2.0.12: 693 | version "2.0.18" 694 | resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" 695 | integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== 696 | dependencies: 697 | mime-db ">= 1.43.0 < 2" 698 | 699 | concat-map@0.0.1: 700 | version "0.0.1" 701 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 702 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 703 | 704 | concat-stream@^2.0.0: 705 | version "2.0.0" 706 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" 707 | integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== 708 | dependencies: 709 | buffer-from "^1.0.0" 710 | inherits "^2.0.3" 711 | readable-stream "^3.0.2" 712 | typedarray "^0.0.6" 713 | 714 | configstore@^5.0.0: 715 | version "5.0.1" 716 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" 717 | integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== 718 | dependencies: 719 | dot-prop "^5.2.0" 720 | graceful-fs "^4.1.2" 721 | make-dir "^3.0.0" 722 | unique-string "^2.0.0" 723 | write-file-atomic "^3.0.0" 724 | xdg-basedir "^4.0.0" 725 | 726 | contains-path@^0.1.0: 727 | version "0.1.0" 728 | resolved "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 729 | integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= 730 | 731 | content-disposition@0.5.3: 732 | version "0.5.3" 733 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 734 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 735 | dependencies: 736 | safe-buffer "5.1.2" 737 | 738 | content-type@~1.0.4: 739 | version "1.0.4" 740 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 741 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 742 | 743 | cookie-signature@1.0.6: 744 | version "1.0.6" 745 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 746 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 747 | 748 | cookie@0.4.0: 749 | version "0.4.0" 750 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" 751 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== 752 | 753 | cookie@^0.4.1: 754 | version "0.4.1" 755 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" 756 | integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== 757 | 758 | core-util-is@~1.0.0: 759 | version "1.0.2" 760 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 761 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 762 | 763 | cross-spawn@^7.0.2: 764 | version "7.0.3" 765 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 766 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 767 | dependencies: 768 | path-key "^3.1.0" 769 | shebang-command "^2.0.0" 770 | which "^2.0.1" 771 | 772 | crypto-random-string@^2.0.0: 773 | version "2.0.0" 774 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" 775 | integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== 776 | 777 | cssom@^0.4.4: 778 | version "0.4.4" 779 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" 780 | integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== 781 | 782 | cssom@~0.3.6: 783 | version "0.3.8" 784 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" 785 | integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== 786 | 787 | cssstyle@^2.3.0: 788 | version "2.3.0" 789 | resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" 790 | integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== 791 | dependencies: 792 | cssom "~0.3.6" 793 | 794 | cuint@^0.2.2: 795 | version "0.2.2" 796 | resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" 797 | integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= 798 | 799 | data-urls@^2.0.0: 800 | version "2.0.0" 801 | resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" 802 | integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== 803 | dependencies: 804 | abab "^2.0.3" 805 | whatwg-mimetype "^2.3.0" 806 | whatwg-url "^8.0.0" 807 | 808 | date-and-time@^0.14.0: 809 | version "0.14.2" 810 | resolved "https://registry.yarnpkg.com/date-and-time/-/date-and-time-0.14.2.tgz#a4266c3dead460f6c231fe9674e585908dac354e" 811 | integrity sha512-EFTCh9zRSEpGPmJaexg7HTuzZHh6cnJj1ui7IGCFNXzd2QdpsNh05Db5TF3xzJm30YN+A8/6xHSuRcQqoc3kFA== 812 | 813 | debug@2.6.9, debug@^2.6.9: 814 | version "2.6.9" 815 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 816 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 817 | dependencies: 818 | ms "2.0.0" 819 | 820 | debug@4, debug@^4.1.1: 821 | version "4.2.0" 822 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" 823 | integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== 824 | dependencies: 825 | ms "2.1.2" 826 | 827 | debug@^4.0.1: 828 | version "4.3.1" 829 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 830 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 831 | dependencies: 832 | ms "2.1.2" 833 | 834 | decamelize@^1.2.0: 835 | version "1.2.0" 836 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 837 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 838 | 839 | decimal.js@^10.2.1: 840 | version "10.2.1" 841 | resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" 842 | integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== 843 | 844 | deep-is@^0.1.3, deep-is@~0.1.3: 845 | version "0.1.3" 846 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 847 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 848 | 849 | define-properties@^1.1.3: 850 | version "1.1.3" 851 | resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 852 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 853 | dependencies: 854 | object-keys "^1.0.12" 855 | 856 | delayed-stream@~1.0.0: 857 | version "1.0.0" 858 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 859 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 860 | 861 | depd@~1.1.2: 862 | version "1.1.2" 863 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 864 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 865 | 866 | depd@~2.0.0: 867 | version "2.0.0" 868 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 869 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 870 | 871 | destroy@~1.0.4: 872 | version "1.0.4" 873 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 874 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 875 | 876 | dicer@^0.3.0: 877 | version "0.3.0" 878 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" 879 | integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== 880 | dependencies: 881 | streamsearch "0.1.2" 882 | 883 | doctrine@1.5.0: 884 | version "1.5.0" 885 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 886 | integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= 887 | dependencies: 888 | esutils "^2.0.2" 889 | isarray "^1.0.0" 890 | 891 | doctrine@^3.0.0: 892 | version "3.0.0" 893 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 894 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 895 | dependencies: 896 | esutils "^2.0.2" 897 | 898 | domexception@^2.0.1: 899 | version "2.0.1" 900 | resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" 901 | integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== 902 | dependencies: 903 | webidl-conversions "^5.0.0" 904 | 905 | dot-prop@^5.2.0: 906 | version "5.3.0" 907 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" 908 | integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== 909 | dependencies: 910 | is-obj "^2.0.0" 911 | 912 | dotenv@^10.0.0: 913 | version "10.0.0" 914 | resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" 915 | integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== 916 | 917 | duplexify@^3.5.0: 918 | version "3.7.1" 919 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" 920 | integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== 921 | dependencies: 922 | end-of-stream "^1.0.0" 923 | inherits "^2.0.1" 924 | readable-stream "^2.0.0" 925 | stream-shift "^1.0.0" 926 | 927 | duplexify@^4.0.0, duplexify@^4.1.1: 928 | version "4.1.1" 929 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" 930 | integrity sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA== 931 | dependencies: 932 | end-of-stream "^1.4.1" 933 | inherits "^2.0.3" 934 | readable-stream "^3.1.1" 935 | stream-shift "^1.0.0" 936 | 937 | ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: 938 | version "1.0.11" 939 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 940 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== 941 | dependencies: 942 | safe-buffer "^5.0.1" 943 | 944 | ee-first@1.1.1: 945 | version "1.1.1" 946 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 947 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 948 | 949 | emoji-regex@^8.0.0: 950 | version "8.0.0" 951 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 952 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 953 | 954 | encodeurl@~1.0.2: 955 | version "1.0.2" 956 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 957 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 958 | 959 | end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: 960 | version "1.4.4" 961 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 962 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 963 | dependencies: 964 | once "^1.4.0" 965 | 966 | enquirer@^2.3.5: 967 | version "2.3.6" 968 | resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" 969 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== 970 | dependencies: 971 | ansi-colors "^4.1.1" 972 | 973 | ent@^2.2.0: 974 | version "2.2.0" 975 | resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" 976 | integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= 977 | 978 | error-ex@^1.2.0: 979 | version "1.3.2" 980 | resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 981 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 982 | dependencies: 983 | is-arrayish "^0.2.1" 984 | 985 | es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: 986 | version "1.18.0" 987 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" 988 | integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== 989 | dependencies: 990 | call-bind "^1.0.2" 991 | es-to-primitive "^1.2.1" 992 | function-bind "^1.1.1" 993 | get-intrinsic "^1.1.1" 994 | has "^1.0.3" 995 | has-symbols "^1.0.2" 996 | is-callable "^1.2.3" 997 | is-negative-zero "^2.0.1" 998 | is-regex "^1.1.2" 999 | is-string "^1.0.5" 1000 | object-inspect "^1.9.0" 1001 | object-keys "^1.1.1" 1002 | object.assign "^4.1.2" 1003 | string.prototype.trimend "^1.0.4" 1004 | string.prototype.trimstart "^1.0.4" 1005 | unbox-primitive "^1.0.0" 1006 | 1007 | es-to-primitive@^1.2.1: 1008 | version "1.2.1" 1009 | resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 1010 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 1011 | dependencies: 1012 | is-callable "^1.1.4" 1013 | is-date-object "^1.0.1" 1014 | is-symbol "^1.0.2" 1015 | 1016 | escape-html@~1.0.3: 1017 | version "1.0.3" 1018 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 1019 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 1020 | 1021 | escape-string-regexp@^1.0.5: 1022 | version "1.0.5" 1023 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1024 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 1025 | 1026 | escodegen@^2.0.0: 1027 | version "2.0.0" 1028 | resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" 1029 | integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== 1030 | dependencies: 1031 | esprima "^4.0.1" 1032 | estraverse "^5.2.0" 1033 | esutils "^2.0.2" 1034 | optionator "^0.8.1" 1035 | optionalDependencies: 1036 | source-map "~0.6.1" 1037 | 1038 | eslint-config-standard@^16.0.2: 1039 | version "16.0.2" 1040 | resolved "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz#71e91727ac7a203782d0a5ca4d1c462d14e234f6" 1041 | integrity sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw== 1042 | 1043 | eslint-import-resolver-node@^0.3.4: 1044 | version "0.3.4" 1045 | resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" 1046 | integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== 1047 | dependencies: 1048 | debug "^2.6.9" 1049 | resolve "^1.13.1" 1050 | 1051 | eslint-module-utils@^2.6.0: 1052 | version "2.6.0" 1053 | resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" 1054 | integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== 1055 | dependencies: 1056 | debug "^2.6.9" 1057 | pkg-dir "^2.0.0" 1058 | 1059 | eslint-plugin-es@^3.0.0: 1060 | version "3.0.1" 1061 | resolved "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" 1062 | integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== 1063 | dependencies: 1064 | eslint-utils "^2.0.0" 1065 | regexpp "^3.0.0" 1066 | 1067 | eslint-plugin-import@^2.22.1: 1068 | version "2.22.1" 1069 | resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" 1070 | integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== 1071 | dependencies: 1072 | array-includes "^3.1.1" 1073 | array.prototype.flat "^1.2.3" 1074 | contains-path "^0.1.0" 1075 | debug "^2.6.9" 1076 | doctrine "1.5.0" 1077 | eslint-import-resolver-node "^0.3.4" 1078 | eslint-module-utils "^2.6.0" 1079 | has "^1.0.3" 1080 | minimatch "^3.0.4" 1081 | object.values "^1.1.1" 1082 | read-pkg-up "^2.0.0" 1083 | resolve "^1.17.0" 1084 | tsconfig-paths "^3.9.0" 1085 | 1086 | eslint-plugin-node@^11.1.0: 1087 | version "11.1.0" 1088 | resolved "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" 1089 | integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== 1090 | dependencies: 1091 | eslint-plugin-es "^3.0.0" 1092 | eslint-utils "^2.0.0" 1093 | ignore "^5.1.1" 1094 | minimatch "^3.0.4" 1095 | resolve "^1.10.1" 1096 | semver "^6.1.0" 1097 | 1098 | eslint-plugin-promise@^5.1.0: 1099 | version "5.1.0" 1100 | resolved "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz#fb2188fb734e4557993733b41aa1a688f46c6f24" 1101 | integrity sha512-NGmI6BH5L12pl7ScQHbg7tvtk4wPxxj8yPHH47NvSmMtFneC077PSeY3huFj06ZWZvtbfxSPt3RuOQD5XcR4ng== 1102 | 1103 | eslint-scope@^5.1.1: 1104 | version "5.1.1" 1105 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 1106 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 1107 | dependencies: 1108 | esrecurse "^4.3.0" 1109 | estraverse "^4.1.1" 1110 | 1111 | eslint-utils@^2.0.0, eslint-utils@^2.1.0: 1112 | version "2.1.0" 1113 | resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" 1114 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== 1115 | dependencies: 1116 | eslint-visitor-keys "^1.1.0" 1117 | 1118 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: 1119 | version "1.3.0" 1120 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 1121 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 1122 | 1123 | eslint-visitor-keys@^2.0.0: 1124 | version "2.0.0" 1125 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" 1126 | integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== 1127 | 1128 | eslint@^7.25.0: 1129 | version "7.25.0" 1130 | resolved "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz#1309e4404d94e676e3e831b3a3ad2b050031eb67" 1131 | integrity sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw== 1132 | dependencies: 1133 | "@babel/code-frame" "7.12.11" 1134 | "@eslint/eslintrc" "^0.4.0" 1135 | ajv "^6.10.0" 1136 | chalk "^4.0.0" 1137 | cross-spawn "^7.0.2" 1138 | debug "^4.0.1" 1139 | doctrine "^3.0.0" 1140 | enquirer "^2.3.5" 1141 | eslint-scope "^5.1.1" 1142 | eslint-utils "^2.1.0" 1143 | eslint-visitor-keys "^2.0.0" 1144 | espree "^7.3.1" 1145 | esquery "^1.4.0" 1146 | esutils "^2.0.2" 1147 | file-entry-cache "^6.0.1" 1148 | functional-red-black-tree "^1.0.1" 1149 | glob-parent "^5.0.0" 1150 | globals "^13.6.0" 1151 | ignore "^4.0.6" 1152 | import-fresh "^3.0.0" 1153 | imurmurhash "^0.1.4" 1154 | is-glob "^4.0.0" 1155 | js-yaml "^3.13.1" 1156 | json-stable-stringify-without-jsonify "^1.0.1" 1157 | levn "^0.4.1" 1158 | lodash "^4.17.21" 1159 | minimatch "^3.0.4" 1160 | natural-compare "^1.4.0" 1161 | optionator "^0.9.1" 1162 | progress "^2.0.0" 1163 | regexpp "^3.1.0" 1164 | semver "^7.2.1" 1165 | strip-ansi "^6.0.0" 1166 | strip-json-comments "^3.1.0" 1167 | table "^6.0.4" 1168 | text-table "^0.2.0" 1169 | v8-compile-cache "^2.0.3" 1170 | 1171 | espree@^7.3.0, espree@^7.3.1: 1172 | version "7.3.1" 1173 | resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" 1174 | integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== 1175 | dependencies: 1176 | acorn "^7.4.0" 1177 | acorn-jsx "^5.3.1" 1178 | eslint-visitor-keys "^1.3.0" 1179 | 1180 | esprima@^4.0.0, esprima@^4.0.1: 1181 | version "4.0.1" 1182 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 1183 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 1184 | 1185 | esquery@^1.4.0: 1186 | version "1.4.0" 1187 | resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 1188 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 1189 | dependencies: 1190 | estraverse "^5.1.0" 1191 | 1192 | esrecurse@^4.3.0: 1193 | version "4.3.0" 1194 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 1195 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 1196 | dependencies: 1197 | estraverse "^5.2.0" 1198 | 1199 | estraverse@^4.1.1: 1200 | version "4.3.0" 1201 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 1202 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 1203 | 1204 | estraverse@^5.1.0, estraverse@^5.2.0: 1205 | version "5.2.0" 1206 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 1207 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 1208 | 1209 | esutils@^2.0.2: 1210 | version "2.0.3" 1211 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1212 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1213 | 1214 | etag@~1.8.1: 1215 | version "1.8.1" 1216 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 1217 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 1218 | 1219 | event-target-shim@^5.0.0: 1220 | version "5.0.1" 1221 | resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" 1222 | integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== 1223 | 1224 | express@^4.17.1: 1225 | version "4.17.1" 1226 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" 1227 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== 1228 | dependencies: 1229 | accepts "~1.3.7" 1230 | array-flatten "1.1.1" 1231 | body-parser "1.19.0" 1232 | content-disposition "0.5.3" 1233 | content-type "~1.0.4" 1234 | cookie "0.4.0" 1235 | cookie-signature "1.0.6" 1236 | debug "2.6.9" 1237 | depd "~1.1.2" 1238 | encodeurl "~1.0.2" 1239 | escape-html "~1.0.3" 1240 | etag "~1.8.1" 1241 | finalhandler "~1.1.2" 1242 | fresh "0.5.2" 1243 | merge-descriptors "1.0.1" 1244 | methods "~1.1.2" 1245 | on-finished "~2.3.0" 1246 | parseurl "~1.3.3" 1247 | path-to-regexp "0.1.7" 1248 | proxy-addr "~2.0.5" 1249 | qs "6.7.0" 1250 | range-parser "~1.2.1" 1251 | safe-buffer "5.1.2" 1252 | send "0.17.1" 1253 | serve-static "1.14.1" 1254 | setprototypeof "1.1.1" 1255 | statuses "~1.5.0" 1256 | type-is "~1.6.18" 1257 | utils-merge "1.0.1" 1258 | vary "~1.1.2" 1259 | 1260 | extend@^3.0.2: 1261 | version "3.0.2" 1262 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 1263 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== 1264 | 1265 | external-editor@^3.0.3: 1266 | version "3.1.0" 1267 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 1268 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== 1269 | dependencies: 1270 | chardet "^0.7.0" 1271 | iconv-lite "^0.4.24" 1272 | tmp "^0.0.33" 1273 | 1274 | fast-deep-equal@^3.1.1: 1275 | version "3.1.3" 1276 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 1277 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1278 | 1279 | fast-json-stable-stringify@^2.0.0: 1280 | version "2.1.0" 1281 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 1282 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1283 | 1284 | fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: 1285 | version "2.0.6" 1286 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1287 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 1288 | 1289 | fast-text-encoding@^1.0.0: 1290 | version "1.0.3" 1291 | resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz#ec02ac8e01ab8a319af182dae2681213cfe9ce53" 1292 | integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig== 1293 | 1294 | faye-websocket@0.11.3: 1295 | version "0.11.3" 1296 | resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" 1297 | integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== 1298 | dependencies: 1299 | websocket-driver ">=0.5.1" 1300 | 1301 | figures@^3.0.0: 1302 | version "3.2.0" 1303 | resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" 1304 | integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== 1305 | dependencies: 1306 | escape-string-regexp "^1.0.5" 1307 | 1308 | file-entry-cache@^6.0.1: 1309 | version "6.0.1" 1310 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 1311 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 1312 | dependencies: 1313 | flat-cache "^3.0.4" 1314 | 1315 | finalhandler@~1.1.2: 1316 | version "1.1.2" 1317 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" 1318 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== 1319 | dependencies: 1320 | debug "2.6.9" 1321 | encodeurl "~1.0.2" 1322 | escape-html "~1.0.3" 1323 | on-finished "~2.3.0" 1324 | parseurl "~1.3.3" 1325 | statuses "~1.5.0" 1326 | unpipe "~1.0.0" 1327 | 1328 | find-up@^2.0.0, find-up@^2.1.0: 1329 | version "2.1.0" 1330 | resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1331 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 1332 | dependencies: 1333 | locate-path "^2.0.0" 1334 | 1335 | find-up@^4.1.0: 1336 | version "4.1.0" 1337 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 1338 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1339 | dependencies: 1340 | locate-path "^5.0.0" 1341 | path-exists "^4.0.0" 1342 | 1343 | firebase-admin@^9.2.0: 1344 | version "9.2.0" 1345 | resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-9.2.0.tgz#df5176e2d0c5711df6dbf7012320492a703538ea" 1346 | integrity sha512-LhnMYl71B4gP1FlTLfwaYlOWhBCAcNF+byb2CPTfaW/T4hkp4qlXOgo2bws/zbAv5X9GTFqGir3KexMslVGsIA== 1347 | dependencies: 1348 | "@firebase/database" "^0.6.10" 1349 | "@firebase/database-types" "^0.5.2" 1350 | "@types/node" "^10.10.0" 1351 | dicer "^0.3.0" 1352 | jsonwebtoken "^8.5.1" 1353 | node-forge "^0.10.0" 1354 | optionalDependencies: 1355 | "@google-cloud/firestore" "^4.0.0" 1356 | "@google-cloud/storage" "^5.3.0" 1357 | 1358 | flat-cache@^3.0.4: 1359 | version "3.0.4" 1360 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 1361 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 1362 | dependencies: 1363 | flatted "^3.1.0" 1364 | rimraf "^3.0.2" 1365 | 1366 | flatted@^3.1.0: 1367 | version "3.1.1" 1368 | resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" 1369 | integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== 1370 | 1371 | follow-redirects@^1.10.0: 1372 | version "1.13.1" 1373 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" 1374 | integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== 1375 | 1376 | form-data@^3.0.0: 1377 | version "3.0.1" 1378 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" 1379 | integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== 1380 | dependencies: 1381 | asynckit "^0.4.0" 1382 | combined-stream "^1.0.8" 1383 | mime-types "^2.1.12" 1384 | 1385 | forwarded@~0.1.2: 1386 | version "0.1.2" 1387 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 1388 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= 1389 | 1390 | fresh@0.5.2: 1391 | version "0.5.2" 1392 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1393 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 1394 | 1395 | fs.realpath@^1.0.0: 1396 | version "1.0.0" 1397 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1398 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1399 | 1400 | function-bind@^1.1.1: 1401 | version "1.1.1" 1402 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1403 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1404 | 1405 | functional-red-black-tree@^1.0.1: 1406 | version "1.0.1" 1407 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 1408 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 1409 | 1410 | gaxios@^3.0.0: 1411 | version "3.2.0" 1412 | resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-3.2.0.tgz#11b6f0e8fb08d94a10d4d58b044ad3bec6dd486a" 1413 | integrity sha512-+6WPeVzPvOshftpxJwRi2Ozez80tn/hdtOUag7+gajDHRJvAblKxTFSSMPtr2hmnLy7p0mvYz0rMXLBl8pSO7Q== 1414 | dependencies: 1415 | abort-controller "^3.0.0" 1416 | extend "^3.0.2" 1417 | https-proxy-agent "^5.0.0" 1418 | is-stream "^2.0.0" 1419 | node-fetch "^2.3.0" 1420 | 1421 | gcp-metadata@^4.2.0: 1422 | version "4.2.0" 1423 | resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.2.0.tgz#3b424355ccdc240ee07c5791e2fd6a60a283d89a" 1424 | integrity sha512-vQZD57cQkqIA6YPGXM/zc+PIZfNRFdukWGsGZ5+LcJzesi5xp6Gn7a02wRJi4eXPyArNMIYpPET4QMxGqtlk6Q== 1425 | dependencies: 1426 | gaxios "^3.0.0" 1427 | json-bigint "^1.0.0" 1428 | 1429 | gcs-resumable-upload@^3.1.0: 1430 | version "3.1.1" 1431 | resolved "https://registry.yarnpkg.com/gcs-resumable-upload/-/gcs-resumable-upload-3.1.1.tgz#67c766a0555d6a352f9651b7603337207167d0de" 1432 | integrity sha512-RS1osvAicj9+MjCc6jAcVL1Pt3tg7NK2C2gXM5nqD1Gs0klF2kj5nnAFSBy97JrtslMIQzpb7iSuxaG8rFWd2A== 1433 | dependencies: 1434 | abort-controller "^3.0.0" 1435 | configstore "^5.0.0" 1436 | extend "^3.0.2" 1437 | gaxios "^3.0.0" 1438 | google-auth-library "^6.0.0" 1439 | pumpify "^2.0.0" 1440 | stream-events "^1.0.4" 1441 | 1442 | get-caller-file@^2.0.1: 1443 | version "2.0.5" 1444 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 1445 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 1446 | 1447 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: 1448 | version "1.1.1" 1449 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" 1450 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 1451 | dependencies: 1452 | function-bind "^1.1.1" 1453 | has "^1.0.3" 1454 | has-symbols "^1.0.1" 1455 | 1456 | glob-parent@^5.0.0: 1457 | version "5.1.2" 1458 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1459 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1460 | dependencies: 1461 | is-glob "^4.0.1" 1462 | 1463 | glob@^7.1.3: 1464 | version "7.1.6" 1465 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 1466 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 1467 | dependencies: 1468 | fs.realpath "^1.0.0" 1469 | inflight "^1.0.4" 1470 | inherits "2" 1471 | minimatch "^3.0.4" 1472 | once "^1.3.0" 1473 | path-is-absolute "^1.0.0" 1474 | 1475 | globals@^12.1.0: 1476 | version "12.4.0" 1477 | resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" 1478 | integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== 1479 | dependencies: 1480 | type-fest "^0.8.1" 1481 | 1482 | globals@^13.6.0: 1483 | version "13.8.0" 1484 | resolved "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" 1485 | integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== 1486 | dependencies: 1487 | type-fest "^0.20.2" 1488 | 1489 | google-auth-library@^6.0.0, google-auth-library@^6.1.1: 1490 | version "6.1.2" 1491 | resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-6.1.2.tgz#96a7b873068e2167d2d232a864c10f8f83aac216" 1492 | integrity sha512-X9EUX8R+kIpsf55KdSPhFWF0RNyBGuBc1zeYc/5Sjuk65eIYqq91rINJVBD22pp+w/PuM2fasHiA6H2xYjxTIQ== 1493 | dependencies: 1494 | arrify "^2.0.0" 1495 | base64-js "^1.3.0" 1496 | ecdsa-sig-formatter "^1.0.11" 1497 | fast-text-encoding "^1.0.0" 1498 | gaxios "^3.0.0" 1499 | gcp-metadata "^4.2.0" 1500 | gtoken "^5.0.4" 1501 | jws "^4.0.0" 1502 | lru-cache "^6.0.0" 1503 | 1504 | google-gax@^2.2.0: 1505 | version "2.9.0" 1506 | resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-2.9.0.tgz#84edef8715d82c0f91a6e5485b8f2803d2690f00" 1507 | integrity sha512-MFMwA7Fb8PEwjnYwfGXjZMidCNyMl3gSnvS/+kS8TQioJZQDpzK+W3dmwyNyig/U13+kbABqDnbkkAXJ5NiUkw== 1508 | dependencies: 1509 | "@grpc/grpc-js" "~1.1.1" 1510 | "@grpc/proto-loader" "^0.5.1" 1511 | "@types/long" "^4.0.0" 1512 | abort-controller "^3.0.0" 1513 | duplexify "^4.0.0" 1514 | google-auth-library "^6.0.0" 1515 | is-stream-ended "^0.1.4" 1516 | node-fetch "^2.6.1" 1517 | protobufjs "^6.9.0" 1518 | retry-request "^4.0.0" 1519 | 1520 | google-p12-pem@^3.0.3: 1521 | version "3.0.3" 1522 | resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.0.3.tgz#673ac3a75d3903a87f05878f3c75e06fc151669e" 1523 | integrity sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA== 1524 | dependencies: 1525 | node-forge "^0.10.0" 1526 | 1527 | graceful-fs@^4.1.2: 1528 | version "4.2.4" 1529 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 1530 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 1531 | 1532 | graphql@^15.3.0: 1533 | version "15.3.0" 1534 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.3.0.tgz#3ad2b0caab0d110e3be4a5a9b2aa281e362b5278" 1535 | integrity sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w== 1536 | 1537 | gtoken@^5.0.4: 1538 | version "5.0.4" 1539 | resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.0.4.tgz#e8d7456ad2ff774c70176e56b9d34b1c63fb6f0b" 1540 | integrity sha512-U9wnSp4GZ7ov6zRdPuRHG4TuqEWqRRgT1gfXGNArhzBUn9byrPeH8uTmBWU/ZiWJJvTEmkjhDIC3mqHWdVi3xQ== 1541 | dependencies: 1542 | gaxios "^3.0.0" 1543 | google-p12-pem "^3.0.3" 1544 | jws "^4.0.0" 1545 | mime "^2.2.0" 1546 | 1547 | has-bigints@^1.0.1: 1548 | version "1.0.1" 1549 | resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" 1550 | integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== 1551 | 1552 | has-flag@^3.0.0: 1553 | version "3.0.0" 1554 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1555 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1556 | 1557 | has-flag@^4.0.0: 1558 | version "4.0.0" 1559 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1560 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1561 | 1562 | has-symbols@^1.0.1, has-symbols@^1.0.2: 1563 | version "1.0.2" 1564 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" 1565 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== 1566 | 1567 | has@^1.0.3: 1568 | version "1.0.3" 1569 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1570 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1571 | dependencies: 1572 | function-bind "^1.1.1" 1573 | 1574 | hash-stream-validation@^0.2.2: 1575 | version "0.2.4" 1576 | resolved "https://registry.yarnpkg.com/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz#ee68b41bf822f7f44db1142ec28ba9ee7ccb7512" 1577 | integrity sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ== 1578 | 1579 | hosted-git-info@^2.1.4: 1580 | version "2.8.9" 1581 | resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 1582 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 1583 | 1584 | html-encoding-sniffer@^2.0.1: 1585 | version "2.0.1" 1586 | resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" 1587 | integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== 1588 | dependencies: 1589 | whatwg-encoding "^1.0.5" 1590 | 1591 | html-entities@^2.3.2: 1592 | version "2.3.2" 1593 | resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" 1594 | integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== 1595 | 1596 | http-errors@1.7.2: 1597 | version "1.7.2" 1598 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" 1599 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== 1600 | dependencies: 1601 | depd "~1.1.2" 1602 | inherits "2.0.3" 1603 | setprototypeof "1.1.1" 1604 | statuses ">= 1.5.0 < 2" 1605 | toidentifier "1.0.0" 1606 | 1607 | http-errors@~1.7.2: 1608 | version "1.7.3" 1609 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 1610 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 1611 | dependencies: 1612 | depd "~1.1.2" 1613 | inherits "2.0.4" 1614 | setprototypeof "1.1.1" 1615 | statuses ">= 1.5.0 < 2" 1616 | toidentifier "1.0.0" 1617 | 1618 | http-parser-js@>=0.5.1: 1619 | version "0.5.2" 1620 | resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" 1621 | integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== 1622 | 1623 | http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: 1624 | version "4.0.1" 1625 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" 1626 | integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== 1627 | dependencies: 1628 | "@tootallnate/once" "1" 1629 | agent-base "6" 1630 | debug "4" 1631 | 1632 | https-proxy-agent@^5.0.0: 1633 | version "5.0.0" 1634 | resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" 1635 | integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== 1636 | dependencies: 1637 | agent-base "6" 1638 | debug "4" 1639 | 1640 | iconv-lite@0.4.24, iconv-lite@^0.4.24: 1641 | version "0.4.24" 1642 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1643 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1644 | dependencies: 1645 | safer-buffer ">= 2.1.2 < 3" 1646 | 1647 | ignore@^4.0.6: 1648 | version "4.0.6" 1649 | resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 1650 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 1651 | 1652 | ignore@^5.1.1: 1653 | version "5.1.8" 1654 | resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" 1655 | integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== 1656 | 1657 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1658 | version "3.3.0" 1659 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1660 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1661 | dependencies: 1662 | parent-module "^1.0.0" 1663 | resolve-from "^4.0.0" 1664 | 1665 | imurmurhash@^0.1.4: 1666 | version "0.1.4" 1667 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1668 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1669 | 1670 | inflight@^1.0.4: 1671 | version "1.0.6" 1672 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1673 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1674 | dependencies: 1675 | once "^1.3.0" 1676 | wrappy "1" 1677 | 1678 | inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: 1679 | version "2.0.4" 1680 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1681 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1682 | 1683 | inherits@2.0.3: 1684 | version "2.0.3" 1685 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1686 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 1687 | 1688 | inquirer@^7.3.3: 1689 | version "7.3.3" 1690 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" 1691 | integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== 1692 | dependencies: 1693 | ansi-escapes "^4.2.1" 1694 | chalk "^4.1.0" 1695 | cli-cursor "^3.1.0" 1696 | cli-width "^3.0.0" 1697 | external-editor "^3.0.3" 1698 | figures "^3.0.0" 1699 | lodash "^4.17.19" 1700 | mute-stream "0.0.8" 1701 | run-async "^2.4.0" 1702 | rxjs "^6.6.0" 1703 | string-width "^4.1.0" 1704 | strip-ansi "^6.0.0" 1705 | through "^2.3.6" 1706 | 1707 | ipaddr.js@1.9.1: 1708 | version "1.9.1" 1709 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 1710 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 1711 | 1712 | is-arrayish@^0.2.1: 1713 | version "0.2.1" 1714 | resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1715 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 1716 | 1717 | is-bigint@^1.0.1: 1718 | version "1.0.1" 1719 | resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" 1720 | integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== 1721 | 1722 | is-boolean-object@^1.1.0: 1723 | version "1.1.0" 1724 | resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" 1725 | integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== 1726 | dependencies: 1727 | call-bind "^1.0.0" 1728 | 1729 | is-callable@^1.1.4, is-callable@^1.2.3: 1730 | version "1.2.3" 1731 | resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" 1732 | integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== 1733 | 1734 | is-core-module@^2.2.0: 1735 | version "2.2.0" 1736 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" 1737 | integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== 1738 | dependencies: 1739 | has "^1.0.3" 1740 | 1741 | is-date-object@^1.0.1: 1742 | version "1.0.2" 1743 | resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" 1744 | integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== 1745 | 1746 | is-extglob@^2.1.1: 1747 | version "2.1.1" 1748 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1749 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1750 | 1751 | is-fullwidth-code-point@^3.0.0: 1752 | version "3.0.0" 1753 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1754 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1755 | 1756 | is-glob@^4.0.0, is-glob@^4.0.1: 1757 | version "4.0.1" 1758 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1759 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1760 | dependencies: 1761 | is-extglob "^2.1.1" 1762 | 1763 | is-negative-zero@^2.0.1: 1764 | version "2.0.1" 1765 | resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" 1766 | integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== 1767 | 1768 | is-number-object@^1.0.4: 1769 | version "1.0.4" 1770 | resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" 1771 | integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== 1772 | 1773 | is-obj@^2.0.0: 1774 | version "2.0.0" 1775 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" 1776 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 1777 | 1778 | is-potential-custom-element-name@^1.0.1: 1779 | version "1.0.1" 1780 | resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" 1781 | integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== 1782 | 1783 | is-regex@^1.1.2: 1784 | version "1.1.2" 1785 | resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" 1786 | integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== 1787 | dependencies: 1788 | call-bind "^1.0.2" 1789 | has-symbols "^1.0.1" 1790 | 1791 | is-stream-ended@^0.1.4: 1792 | version "0.1.4" 1793 | resolved "https://registry.yarnpkg.com/is-stream-ended/-/is-stream-ended-0.1.4.tgz#f50224e95e06bce0e356d440a4827cd35b267eda" 1794 | integrity sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw== 1795 | 1796 | is-stream@^2.0.0: 1797 | version "2.0.0" 1798 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" 1799 | integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== 1800 | 1801 | is-string@^1.0.5: 1802 | version "1.0.5" 1803 | resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" 1804 | integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== 1805 | 1806 | is-symbol@^1.0.2, is-symbol@^1.0.3: 1807 | version "1.0.3" 1808 | resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" 1809 | integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== 1810 | dependencies: 1811 | has-symbols "^1.0.1" 1812 | 1813 | is-typedarray@^1.0.0: 1814 | version "1.0.0" 1815 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1816 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 1817 | 1818 | isarray@^1.0.0, isarray@~1.0.0: 1819 | version "1.0.0" 1820 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1821 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 1822 | 1823 | isexe@^2.0.0: 1824 | version "2.0.0" 1825 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1826 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1827 | 1828 | js-tokens@^4.0.0: 1829 | version "4.0.0" 1830 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1831 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1832 | 1833 | js-yaml@^3.13.1: 1834 | version "3.14.1" 1835 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 1836 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 1837 | dependencies: 1838 | argparse "^1.0.7" 1839 | esprima "^4.0.0" 1840 | 1841 | jsdom@^16.5.2: 1842 | version "16.6.0" 1843 | resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz#f79b3786682065492a3da6a60a4695da983805ac" 1844 | integrity sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg== 1845 | dependencies: 1846 | abab "^2.0.5" 1847 | acorn "^8.2.4" 1848 | acorn-globals "^6.0.0" 1849 | cssom "^0.4.4" 1850 | cssstyle "^2.3.0" 1851 | data-urls "^2.0.0" 1852 | decimal.js "^10.2.1" 1853 | domexception "^2.0.1" 1854 | escodegen "^2.0.0" 1855 | form-data "^3.0.0" 1856 | html-encoding-sniffer "^2.0.1" 1857 | http-proxy-agent "^4.0.1" 1858 | https-proxy-agent "^5.0.0" 1859 | is-potential-custom-element-name "^1.0.1" 1860 | nwsapi "^2.2.0" 1861 | parse5 "6.0.1" 1862 | saxes "^5.0.1" 1863 | symbol-tree "^3.2.4" 1864 | tough-cookie "^4.0.0" 1865 | w3c-hr-time "^1.0.2" 1866 | w3c-xmlserializer "^2.0.0" 1867 | webidl-conversions "^6.1.0" 1868 | whatwg-encoding "^1.0.5" 1869 | whatwg-mimetype "^2.3.0" 1870 | whatwg-url "^8.5.0" 1871 | ws "^7.4.5" 1872 | xml-name-validator "^3.0.0" 1873 | 1874 | json-bigint@^1.0.0: 1875 | version "1.0.0" 1876 | resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" 1877 | integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== 1878 | dependencies: 1879 | bignumber.js "^9.0.0" 1880 | 1881 | json-schema-traverse@^0.4.1: 1882 | version "0.4.1" 1883 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1884 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1885 | 1886 | json-schema-traverse@^1.0.0: 1887 | version "1.0.0" 1888 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 1889 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 1890 | 1891 | json-stable-stringify-without-jsonify@^1.0.1: 1892 | version "1.0.1" 1893 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1894 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 1895 | 1896 | json5@^1.0.1: 1897 | version "1.0.1" 1898 | resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" 1899 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 1900 | dependencies: 1901 | minimist "^1.2.0" 1902 | 1903 | jsonwebtoken@^8.5.1: 1904 | version "8.5.1" 1905 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" 1906 | integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== 1907 | dependencies: 1908 | jws "^3.2.2" 1909 | lodash.includes "^4.3.0" 1910 | lodash.isboolean "^3.0.3" 1911 | lodash.isinteger "^4.0.4" 1912 | lodash.isnumber "^3.0.3" 1913 | lodash.isplainobject "^4.0.6" 1914 | lodash.isstring "^4.0.1" 1915 | lodash.once "^4.0.0" 1916 | ms "^2.1.1" 1917 | semver "^5.6.0" 1918 | 1919 | jwa@^1.4.1: 1920 | version "1.4.1" 1921 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 1922 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== 1923 | dependencies: 1924 | buffer-equal-constant-time "1.0.1" 1925 | ecdsa-sig-formatter "1.0.11" 1926 | safe-buffer "^5.0.1" 1927 | 1928 | jwa@^2.0.0: 1929 | version "2.0.0" 1930 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" 1931 | integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== 1932 | dependencies: 1933 | buffer-equal-constant-time "1.0.1" 1934 | ecdsa-sig-formatter "1.0.11" 1935 | safe-buffer "^5.0.1" 1936 | 1937 | jws@^3.2.2: 1938 | version "3.2.2" 1939 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 1940 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== 1941 | dependencies: 1942 | jwa "^1.4.1" 1943 | safe-buffer "^5.0.1" 1944 | 1945 | jws@^4.0.0: 1946 | version "4.0.0" 1947 | resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" 1948 | integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== 1949 | dependencies: 1950 | jwa "^2.0.0" 1951 | safe-buffer "^5.0.1" 1952 | 1953 | levn@^0.4.1: 1954 | version "0.4.1" 1955 | resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1956 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1957 | dependencies: 1958 | prelude-ls "^1.2.1" 1959 | type-check "~0.4.0" 1960 | 1961 | levn@~0.3.0: 1962 | version "0.3.0" 1963 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1964 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 1965 | dependencies: 1966 | prelude-ls "~1.1.2" 1967 | type-check "~0.3.2" 1968 | 1969 | load-json-file@^2.0.0: 1970 | version "2.0.0" 1971 | resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 1972 | integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= 1973 | dependencies: 1974 | graceful-fs "^4.1.2" 1975 | parse-json "^2.2.0" 1976 | pify "^2.0.0" 1977 | strip-bom "^3.0.0" 1978 | 1979 | locate-path@^2.0.0: 1980 | version "2.0.0" 1981 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1982 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 1983 | dependencies: 1984 | p-locate "^2.0.0" 1985 | path-exists "^3.0.0" 1986 | 1987 | locate-path@^5.0.0: 1988 | version "5.0.0" 1989 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 1990 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 1991 | dependencies: 1992 | p-locate "^4.1.0" 1993 | 1994 | lodash.camelcase@^4.3.0: 1995 | version "4.3.0" 1996 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" 1997 | integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= 1998 | 1999 | lodash.clonedeep@^4.5.0: 2000 | version "4.5.0" 2001 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" 2002 | integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= 2003 | 2004 | lodash.flatten@^4.4.0: 2005 | version "4.4.0" 2006 | resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 2007 | integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= 2008 | 2009 | lodash.includes@^4.3.0: 2010 | version "4.3.0" 2011 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 2012 | integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= 2013 | 2014 | lodash.isboolean@^3.0.3: 2015 | version "3.0.3" 2016 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 2017 | integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= 2018 | 2019 | lodash.isinteger@^4.0.4: 2020 | version "4.0.4" 2021 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 2022 | integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= 2023 | 2024 | lodash.isnumber@^3.0.3: 2025 | version "3.0.3" 2026 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 2027 | integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= 2028 | 2029 | lodash.isplainobject@^4.0.6: 2030 | version "4.0.6" 2031 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 2032 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= 2033 | 2034 | lodash.isstring@^4.0.1: 2035 | version "4.0.1" 2036 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 2037 | integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= 2038 | 2039 | lodash.once@^4.0.0: 2040 | version "4.1.1" 2041 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 2042 | integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= 2043 | 2044 | lodash.sortby@^4.7.0: 2045 | version "4.7.0" 2046 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 2047 | integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= 2048 | 2049 | lodash.trim@^4.5.1: 2050 | version "4.5.1" 2051 | resolved "https://registry.yarnpkg.com/lodash.trim/-/lodash.trim-4.5.1.tgz#36425e7ee90be4aa5e27bcebb85b7d11ea47aa57" 2052 | integrity sha1-NkJefukL5KpeJ7zruFt9EepHqlc= 2053 | 2054 | lodash.truncate@^4.4.2: 2055 | version "4.4.2" 2056 | resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" 2057 | integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= 2058 | 2059 | lodash.without@^4.4.0: 2060 | version "4.4.0" 2061 | resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" 2062 | integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= 2063 | 2064 | lodash@^4.17.19: 2065 | version "4.17.20" 2066 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" 2067 | integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== 2068 | 2069 | lodash@^4.17.21, lodash@^4.7.0: 2070 | version "4.17.21" 2071 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 2072 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 2073 | 2074 | long@^4.0.0: 2075 | version "4.0.0" 2076 | resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" 2077 | integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== 2078 | 2079 | lru-cache@^6.0.0: 2080 | version "6.0.0" 2081 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 2082 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 2083 | dependencies: 2084 | yallist "^4.0.0" 2085 | 2086 | lru_map@^0.3.3: 2087 | version "0.3.3" 2088 | resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" 2089 | integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0= 2090 | 2091 | make-dir@^3.0.0: 2092 | version "3.1.0" 2093 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 2094 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 2095 | dependencies: 2096 | semver "^6.0.0" 2097 | 2098 | matchit@^1.0.0: 2099 | version "1.1.0" 2100 | resolved "https://registry.yarnpkg.com/matchit/-/matchit-1.1.0.tgz#c4ccf17d9c824cc1301edbcffde9b75a61d10a7c" 2101 | integrity sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA== 2102 | dependencies: 2103 | "@arr/every" "^1.0.0" 2104 | 2105 | media-typer@0.3.0: 2106 | version "0.3.0" 2107 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 2108 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 2109 | 2110 | merge-descriptors@1.0.1: 2111 | version "1.0.1" 2112 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 2113 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 2114 | 2115 | methods@~1.1.2: 2116 | version "1.1.2" 2117 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 2118 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 2119 | 2120 | mime-db@1.44.0: 2121 | version "1.44.0" 2122 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" 2123 | integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== 2124 | 2125 | "mime-db@>= 1.43.0 < 2": 2126 | version "1.45.0" 2127 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" 2128 | integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== 2129 | 2130 | mime-types@^2.0.8, mime-types@^2.1.12, mime-types@~2.1.24: 2131 | version "2.1.27" 2132 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" 2133 | integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== 2134 | dependencies: 2135 | mime-db "1.44.0" 2136 | 2137 | mime@1.6.0: 2138 | version "1.6.0" 2139 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 2140 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 2141 | 2142 | mime@^2.2.0: 2143 | version "2.4.6" 2144 | resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" 2145 | integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== 2146 | 2147 | mimic-fn@^2.1.0: 2148 | version "2.1.0" 2149 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 2150 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 2151 | 2152 | minimatch@^3.0.4: 2153 | version "3.0.4" 2154 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2155 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 2156 | dependencies: 2157 | brace-expansion "^1.1.7" 2158 | 2159 | minimist@^1.2.0: 2160 | version "1.2.5" 2161 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 2162 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 2163 | 2164 | morgan@^1.10.0: 2165 | version "1.10.0" 2166 | resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" 2167 | integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== 2168 | dependencies: 2169 | basic-auth "~2.0.1" 2170 | debug "2.6.9" 2171 | depd "~2.0.0" 2172 | on-finished "~2.3.0" 2173 | on-headers "~1.0.2" 2174 | 2175 | ms@2.0.0: 2176 | version "2.0.0" 2177 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 2178 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 2179 | 2180 | ms@2.1.1: 2181 | version "2.1.1" 2182 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 2183 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 2184 | 2185 | ms@2.1.2, ms@^2.1.1: 2186 | version "2.1.2" 2187 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 2188 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 2189 | 2190 | mute-stream@0.0.8: 2191 | version "0.0.8" 2192 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" 2193 | integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== 2194 | 2195 | natural-compare@^1.4.0: 2196 | version "1.4.0" 2197 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 2198 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 2199 | 2200 | negotiator@0.6.2: 2201 | version "0.6.2" 2202 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 2203 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 2204 | 2205 | node-fetch@^2.3.0, node-fetch@^2.6.1: 2206 | version "2.6.1" 2207 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" 2208 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 2209 | 2210 | node-forge@0.6.33: 2211 | version "0.6.33" 2212 | resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" 2213 | integrity sha1-RjgRh59XPUUVWtap9D3ClujoXrw= 2214 | 2215 | node-forge@^0.10.0: 2216 | version "0.10.0" 2217 | resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" 2218 | integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== 2219 | 2220 | normalize-package-data@^2.3.2: 2221 | version "2.5.0" 2222 | resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 2223 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 2224 | dependencies: 2225 | hosted-git-info "^2.1.4" 2226 | resolve "^1.10.0" 2227 | semver "2 || 3 || 4 || 5" 2228 | validate-npm-package-license "^3.0.1" 2229 | 2230 | nwsapi@^2.2.0: 2231 | version "2.2.0" 2232 | resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" 2233 | integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== 2234 | 2235 | object-inspect@^1.9.0: 2236 | version "1.10.2" 2237 | resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz#b6385a3e2b7cae0b5eafcf90cddf85d128767f30" 2238 | integrity sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA== 2239 | 2240 | object-keys@^1.0.12, object-keys@^1.1.1: 2241 | version "1.1.1" 2242 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 2243 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 2244 | 2245 | object.assign@^4.1.2: 2246 | version "4.1.2" 2247 | resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 2248 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 2249 | dependencies: 2250 | call-bind "^1.0.0" 2251 | define-properties "^1.1.3" 2252 | has-symbols "^1.0.1" 2253 | object-keys "^1.1.1" 2254 | 2255 | object.values@^1.1.1: 2256 | version "1.1.3" 2257 | resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" 2258 | integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== 2259 | dependencies: 2260 | call-bind "^1.0.2" 2261 | define-properties "^1.1.3" 2262 | es-abstract "^1.18.0-next.2" 2263 | has "^1.0.3" 2264 | 2265 | on-finished@~2.3.0: 2266 | version "2.3.0" 2267 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 2268 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 2269 | dependencies: 2270 | ee-first "1.1.1" 2271 | 2272 | on-headers@~1.0.2: 2273 | version "1.0.2" 2274 | resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" 2275 | integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== 2276 | 2277 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 2278 | version "1.4.0" 2279 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2280 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 2281 | dependencies: 2282 | wrappy "1" 2283 | 2284 | onetime@^5.1.0: 2285 | version "5.1.2" 2286 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 2287 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 2288 | dependencies: 2289 | mimic-fn "^2.1.0" 2290 | 2291 | optionator@^0.8.1: 2292 | version "0.8.3" 2293 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" 2294 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== 2295 | dependencies: 2296 | deep-is "~0.1.3" 2297 | fast-levenshtein "~2.0.6" 2298 | levn "~0.3.0" 2299 | prelude-ls "~1.1.2" 2300 | type-check "~0.3.2" 2301 | word-wrap "~1.2.3" 2302 | 2303 | optionator@^0.9.1: 2304 | version "0.9.1" 2305 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 2306 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 2307 | dependencies: 2308 | deep-is "^0.1.3" 2309 | fast-levenshtein "^2.0.6" 2310 | levn "^0.4.1" 2311 | prelude-ls "^1.2.1" 2312 | type-check "^0.4.0" 2313 | word-wrap "^1.2.3" 2314 | 2315 | os-tmpdir@~1.0.2: 2316 | version "1.0.2" 2317 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2318 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 2319 | 2320 | p-limit@^1.1.0: 2321 | version "1.3.0" 2322 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 2323 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 2324 | dependencies: 2325 | p-try "^1.0.0" 2326 | 2327 | p-limit@^2.2.0: 2328 | version "2.3.0" 2329 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 2330 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 2331 | dependencies: 2332 | p-try "^2.0.0" 2333 | 2334 | p-limit@^3.0.1: 2335 | version "3.0.2" 2336 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" 2337 | integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== 2338 | dependencies: 2339 | p-try "^2.0.0" 2340 | 2341 | p-locate@^2.0.0: 2342 | version "2.0.0" 2343 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2344 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 2345 | dependencies: 2346 | p-limit "^1.1.0" 2347 | 2348 | p-locate@^4.1.0: 2349 | version "4.1.0" 2350 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 2351 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 2352 | dependencies: 2353 | p-limit "^2.2.0" 2354 | 2355 | p-try@^1.0.0: 2356 | version "1.0.0" 2357 | resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 2358 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 2359 | 2360 | p-try@^2.0.0: 2361 | version "2.2.0" 2362 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 2363 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 2364 | 2365 | packet-reader@1.0.0: 2366 | version "1.0.0" 2367 | resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" 2368 | integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== 2369 | 2370 | pako@^1.0.11: 2371 | version "1.0.11" 2372 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 2373 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 2374 | 2375 | parent-module@^1.0.0: 2376 | version "1.0.1" 2377 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 2378 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 2379 | dependencies: 2380 | callsites "^3.0.0" 2381 | 2382 | parse-json@^2.2.0: 2383 | version "2.2.0" 2384 | resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2385 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 2386 | dependencies: 2387 | error-ex "^1.2.0" 2388 | 2389 | parse5@6.0.1: 2390 | version "6.0.1" 2391 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" 2392 | integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== 2393 | 2394 | parseurl@~1.3.3: 2395 | version "1.3.3" 2396 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 2397 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 2398 | 2399 | path-exists@^3.0.0: 2400 | version "3.0.0" 2401 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2402 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 2403 | 2404 | path-exists@^4.0.0: 2405 | version "4.0.0" 2406 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 2407 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 2408 | 2409 | path-is-absolute@^1.0.0: 2410 | version "1.0.1" 2411 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2412 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 2413 | 2414 | path-key@^3.1.0: 2415 | version "3.1.1" 2416 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 2417 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 2418 | 2419 | path-parse@^1.0.6: 2420 | version "1.0.6" 2421 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 2422 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 2423 | 2424 | path-to-regexp@0.1.7: 2425 | version "0.1.7" 2426 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 2427 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 2428 | 2429 | path-type@^2.0.0: 2430 | version "2.0.0" 2431 | resolved "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 2432 | integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= 2433 | dependencies: 2434 | pify "^2.0.0" 2435 | 2436 | pg-connection-string@^2.4.0: 2437 | version "2.4.0" 2438 | resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz#c979922eb47832999a204da5dbe1ebf2341b6a10" 2439 | integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ== 2440 | 2441 | pg-int8@1.0.1: 2442 | version "1.0.1" 2443 | resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" 2444 | integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== 2445 | 2446 | pg-pool@^3.2.1: 2447 | version "3.2.1" 2448 | resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.2.1.tgz#5f4afc0f58063659aeefa952d36af49fa28b30e0" 2449 | integrity sha512-BQDPWUeKenVrMMDN9opfns/kZo4lxmSWhIqo+cSAF7+lfi9ZclQbr9vfnlNaPr8wYF3UYjm5X0yPAhbcgqNOdA== 2450 | 2451 | pg-protocol@^1.3.0: 2452 | version "1.3.0" 2453 | resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.3.0.tgz#3c8fb7ca34dbbfcc42776ce34ac5f537d6e34770" 2454 | integrity sha512-64/bYByMrhWULUaCd+6/72c9PMWhiVFs3EVxl9Ct6a3v/U8+rKgqP2w+kKg/BIGgMJyB+Bk/eNivT32Al+Jghw== 2455 | 2456 | pg-types@^2.1.0: 2457 | version "2.2.0" 2458 | resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" 2459 | integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== 2460 | dependencies: 2461 | pg-int8 "1.0.1" 2462 | postgres-array "~2.0.0" 2463 | postgres-bytea "~1.0.0" 2464 | postgres-date "~1.0.4" 2465 | postgres-interval "^1.1.0" 2466 | 2467 | pg@^8.4.1: 2468 | version "8.4.1" 2469 | resolved "https://registry.yarnpkg.com/pg/-/pg-8.4.1.tgz#06cfb6208ae787a869b2f0022da11b90d13d933e" 2470 | integrity sha512-NRsH0aGMXmX1z8Dd0iaPCxWUw4ffu+lIAmGm+sTCwuDDWkpEgRCAHZYDwqaNhC5hG5DRMOjSUFasMWhvcmLN1A== 2471 | dependencies: 2472 | buffer-writer "2.0.0" 2473 | packet-reader "1.0.0" 2474 | pg-connection-string "^2.4.0" 2475 | pg-pool "^3.2.1" 2476 | pg-protocol "^1.3.0" 2477 | pg-types "^2.1.0" 2478 | pgpass "1.x" 2479 | 2480 | pgpass@1.x: 2481 | version "1.0.4" 2482 | resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.4.tgz#85eb93a83800b20f8057a2b029bf05abaf94ea9c" 2483 | integrity sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w== 2484 | dependencies: 2485 | split2 "^3.1.1" 2486 | 2487 | pify@^2.0.0: 2488 | version "2.3.0" 2489 | resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2490 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 2491 | 2492 | pkg-dir@^2.0.0: 2493 | version "2.0.0" 2494 | resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 2495 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= 2496 | dependencies: 2497 | find-up "^2.1.0" 2498 | 2499 | polka@^0.5.2: 2500 | version "0.5.2" 2501 | resolved "https://registry.yarnpkg.com/polka/-/polka-0.5.2.tgz#588bee0c5806dbc6c64958de3a1251860e9f2e26" 2502 | integrity sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw== 2503 | dependencies: 2504 | "@polka/url" "^0.5.0" 2505 | trouter "^2.0.1" 2506 | 2507 | postgres-array@~2.0.0: 2508 | version "2.0.0" 2509 | resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" 2510 | integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== 2511 | 2512 | postgres-bytea@~1.0.0: 2513 | version "1.0.0" 2514 | resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" 2515 | integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= 2516 | 2517 | postgres-date@~1.0.4: 2518 | version "1.0.7" 2519 | resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" 2520 | integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== 2521 | 2522 | postgres-interval@^1.1.0: 2523 | version "1.2.0" 2524 | resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" 2525 | integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== 2526 | dependencies: 2527 | xtend "^4.0.0" 2528 | 2529 | prelude-ls@^1.2.1: 2530 | version "1.2.1" 2531 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 2532 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 2533 | 2534 | prelude-ls@~1.1.2: 2535 | version "1.1.2" 2536 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 2537 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 2538 | 2539 | process-nextick-args@~2.0.0: 2540 | version "2.0.1" 2541 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 2542 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 2543 | 2544 | progress@^2.0.0: 2545 | version "2.0.3" 2546 | resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 2547 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 2548 | 2549 | pronote-api@EduWireApps/pronote-api: 2550 | version "2.3.4" 2551 | resolved "https://codeload.github.com/EduWireApps/pronote-api/tar.gz/1a3e27039b6c0c3eb005e05158de22411c3cad11" 2552 | dependencies: 2553 | axios "^0.21.1" 2554 | body-parser "^1.19.0" 2555 | graphql "^15.3.0" 2556 | https-proxy-agent "^5.0.0" 2557 | jsdom "^16.5.2" 2558 | node-forge "0.6.33" 2559 | pako "^1.0.11" 2560 | polka "^0.5.2" 2561 | string-strip-html "^8.2.9" 2562 | uuid "^8.3.0" 2563 | xxhashjs "^0.2.2" 2564 | 2565 | protobufjs@^6.8.6, protobufjs@^6.9.0: 2566 | version "6.10.1" 2567 | resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.10.1.tgz#e6a484dd8f04b29629e9053344e3970cccf13cd2" 2568 | integrity sha512-pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ== 2569 | dependencies: 2570 | "@protobufjs/aspromise" "^1.1.2" 2571 | "@protobufjs/base64" "^1.1.2" 2572 | "@protobufjs/codegen" "^2.0.4" 2573 | "@protobufjs/eventemitter" "^1.1.0" 2574 | "@protobufjs/fetch" "^1.1.0" 2575 | "@protobufjs/float" "^1.0.2" 2576 | "@protobufjs/inquire" "^1.1.0" 2577 | "@protobufjs/path" "^1.1.2" 2578 | "@protobufjs/pool" "^1.1.0" 2579 | "@protobufjs/utf8" "^1.1.0" 2580 | "@types/long" "^4.0.1" 2581 | "@types/node" "^13.7.0" 2582 | long "^4.0.0" 2583 | 2584 | proxy-addr@~2.0.5: 2585 | version "2.0.6" 2586 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" 2587 | integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== 2588 | dependencies: 2589 | forwarded "~0.1.2" 2590 | ipaddr.js "1.9.1" 2591 | 2592 | psl@^1.1.33: 2593 | version "1.8.0" 2594 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" 2595 | integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== 2596 | 2597 | pump@^3.0.0: 2598 | version "3.0.0" 2599 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 2600 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 2601 | dependencies: 2602 | end-of-stream "^1.1.0" 2603 | once "^1.3.1" 2604 | 2605 | pumpify@^2.0.0: 2606 | version "2.0.1" 2607 | resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-2.0.1.tgz#abfc7b5a621307c728b551decbbefb51f0e4aa1e" 2608 | integrity sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw== 2609 | dependencies: 2610 | duplexify "^4.1.1" 2611 | inherits "^2.0.3" 2612 | pump "^3.0.0" 2613 | 2614 | punycode@^2.1.0, punycode@^2.1.1: 2615 | version "2.1.1" 2616 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2617 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 2618 | 2619 | qs@6.7.0: 2620 | version "6.7.0" 2621 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 2622 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 2623 | 2624 | range-parser@~1.2.1: 2625 | version "1.2.1" 2626 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 2627 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 2628 | 2629 | ranges-apply@^5.1.0: 2630 | version "5.1.0" 2631 | resolved "https://registry.yarnpkg.com/ranges-apply/-/ranges-apply-5.1.0.tgz#d18ec097844e548eb4a325f9257ad81179946f85" 2632 | integrity sha512-VF3a0XUuYS/BQHv2RaIyX1K7S1hbfrs64hkGKgPVk0Y7p4XFwSucjTTttrBqmkcmB/PZx5ISTZdxErRZi/89aQ== 2633 | dependencies: 2634 | "@babel/runtime" "^7.14.0" 2635 | ranges-merge "^7.1.0" 2636 | 2637 | ranges-merge@^7.1.0: 2638 | version "7.1.0" 2639 | resolved "https://registry.yarnpkg.com/ranges-merge/-/ranges-merge-7.1.0.tgz#b2626d5865060944297a21cd499b886cb59127b9" 2640 | integrity sha512-coTHcyAEIhoEdsBs9f5f+q0rmy7UHvS/5nfuXzuj5oLX/l/tbqM5uxRb6eh8WMdetXia3lK67ZO4tarH4ieulQ== 2641 | dependencies: 2642 | "@babel/runtime" "^7.14.0" 2643 | ranges-push "^5.1.0" 2644 | ranges-sort "^4.1.0" 2645 | 2646 | ranges-push@^5.1.0: 2647 | version "5.1.0" 2648 | resolved "https://registry.yarnpkg.com/ranges-push/-/ranges-push-5.1.0.tgz#73cd42e347b8e7807e42ccf35d6e5041e1705fb4" 2649 | integrity sha512-vqGcaGq7GWV1zBa9w83E+dzYkOvE9/3pIRUPvLf12c+mGQCf1nesrkBI7Ob8taN2CC9V1HDSJx0KAQl0SgZftA== 2650 | dependencies: 2651 | "@babel/runtime" "^7.14.0" 2652 | ranges-merge "^7.1.0" 2653 | string-collapse-leading-whitespace "^5.1.0" 2654 | string-trim-spaces-only "^3.1.0" 2655 | 2656 | ranges-sort@^4.1.0: 2657 | version "4.1.0" 2658 | resolved "https://registry.yarnpkg.com/ranges-sort/-/ranges-sort-4.1.0.tgz#ec2313421b2538186582062751c77be30182f186" 2659 | integrity sha512-GOQgk6UtsrfKFeYa53YLiBVnLINwYmOk5l2QZG1csZpT6GdImUwooh+/cRrp7b+fYawZX/rnyA3Ul+pdgQBIzA== 2660 | dependencies: 2661 | "@babel/runtime" "^7.14.0" 2662 | 2663 | raw-body@2.4.0: 2664 | version "2.4.0" 2665 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" 2666 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== 2667 | dependencies: 2668 | bytes "3.1.0" 2669 | http-errors "1.7.2" 2670 | iconv-lite "0.4.24" 2671 | unpipe "1.0.0" 2672 | 2673 | read-pkg-up@^2.0.0: 2674 | version "2.0.0" 2675 | resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 2676 | integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= 2677 | dependencies: 2678 | find-up "^2.0.0" 2679 | read-pkg "^2.0.0" 2680 | 2681 | read-pkg@^2.0.0: 2682 | version "2.0.0" 2683 | resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 2684 | integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= 2685 | dependencies: 2686 | load-json-file "^2.0.0" 2687 | normalize-package-data "^2.3.2" 2688 | path-type "^2.0.0" 2689 | 2690 | readable-stream@^2.0.0: 2691 | version "2.3.7" 2692 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 2693 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 2694 | dependencies: 2695 | core-util-is "~1.0.0" 2696 | inherits "~2.0.3" 2697 | isarray "~1.0.0" 2698 | process-nextick-args "~2.0.0" 2699 | safe-buffer "~5.1.1" 2700 | string_decoder "~1.1.1" 2701 | util-deprecate "~1.0.1" 2702 | 2703 | readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1: 2704 | version "3.6.0" 2705 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 2706 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 2707 | dependencies: 2708 | inherits "^2.0.3" 2709 | string_decoder "^1.1.1" 2710 | util-deprecate "^1.0.1" 2711 | 2712 | regenerator-runtime@^0.13.4: 2713 | version "0.13.7" 2714 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" 2715 | integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== 2716 | 2717 | regexpp@^3.0.0, regexpp@^3.1.0: 2718 | version "3.1.0" 2719 | resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" 2720 | integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== 2721 | 2722 | require-directory@^2.1.1: 2723 | version "2.1.1" 2724 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2725 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 2726 | 2727 | require-from-string@^2.0.2: 2728 | version "2.0.2" 2729 | resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 2730 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 2731 | 2732 | require-main-filename@^2.0.0: 2733 | version "2.0.0" 2734 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" 2735 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 2736 | 2737 | resolve-from@^4.0.0: 2738 | version "4.0.0" 2739 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 2740 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 2741 | 2742 | resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.17.0: 2743 | version "1.20.0" 2744 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 2745 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 2746 | dependencies: 2747 | is-core-module "^2.2.0" 2748 | path-parse "^1.0.6" 2749 | 2750 | restore-cursor@^3.1.0: 2751 | version "3.1.0" 2752 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" 2753 | integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 2754 | dependencies: 2755 | onetime "^5.1.0" 2756 | signal-exit "^3.0.2" 2757 | 2758 | retry-request@^4.0.0, retry-request@^4.1.1: 2759 | version "4.1.3" 2760 | resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-4.1.3.tgz#d5f74daf261372cff58d08b0a1979b4d7cab0fde" 2761 | integrity sha512-QnRZUpuPNgX0+D1xVxul6DbJ9slvo4Rm6iV/dn63e048MvGbUZiKySVt6Tenp04JqmchxjiLltGerOJys7kJYQ== 2762 | dependencies: 2763 | debug "^4.1.1" 2764 | 2765 | rimraf@^3.0.2: 2766 | version "3.0.2" 2767 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 2768 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 2769 | dependencies: 2770 | glob "^7.1.3" 2771 | 2772 | run-async@^2.4.0: 2773 | version "2.4.1" 2774 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" 2775 | integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== 2776 | 2777 | rxjs@^6.6.0: 2778 | version "6.6.3" 2779 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" 2780 | integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== 2781 | dependencies: 2782 | tslib "^1.9.0" 2783 | 2784 | safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2785 | version "5.1.2" 2786 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2787 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2788 | 2789 | safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@~5.2.0: 2790 | version "5.2.1" 2791 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 2792 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 2793 | 2794 | "safer-buffer@>= 2.1.2 < 3": 2795 | version "2.1.2" 2796 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2797 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 2798 | 2799 | saxes@^5.0.1: 2800 | version "5.0.1" 2801 | resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" 2802 | integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== 2803 | dependencies: 2804 | xmlchars "^2.2.0" 2805 | 2806 | semver-parser@^3.0.5: 2807 | version "3.0.5" 2808 | resolved "https://registry.yarnpkg.com/semver-parser/-/semver-parser-3.0.5.tgz#c1fd051a26dd1b2e373bce0d902003355be087a5" 2809 | integrity sha512-lL0HLwNEw9rMRykAXqmAjoGyv7GLR3OGqYIVr+KCGw1AEMQNT45JTlEaPEdcZpOC4mhO9bDjey7+bJLvUfq+Sw== 2810 | 2811 | "semver@2 || 3 || 4 || 5", semver@^5.6.0: 2812 | version "5.7.1" 2813 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 2814 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 2815 | 2816 | semver@^6.0.0, semver@^6.1.0, semver@^6.2.0: 2817 | version "6.3.0" 2818 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 2819 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 2820 | 2821 | semver@^7.2.1: 2822 | version "7.3.5" 2823 | resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 2824 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 2825 | dependencies: 2826 | lru-cache "^6.0.0" 2827 | 2828 | send@0.17.1: 2829 | version "0.17.1" 2830 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" 2831 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== 2832 | dependencies: 2833 | debug "2.6.9" 2834 | depd "~1.1.2" 2835 | destroy "~1.0.4" 2836 | encodeurl "~1.0.2" 2837 | escape-html "~1.0.3" 2838 | etag "~1.8.1" 2839 | fresh "0.5.2" 2840 | http-errors "~1.7.2" 2841 | mime "1.6.0" 2842 | ms "2.1.1" 2843 | on-finished "~2.3.0" 2844 | range-parser "~1.2.1" 2845 | statuses "~1.5.0" 2846 | 2847 | serve-static@1.14.1: 2848 | version "1.14.1" 2849 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" 2850 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== 2851 | dependencies: 2852 | encodeurl "~1.0.2" 2853 | escape-html "~1.0.3" 2854 | parseurl "~1.3.3" 2855 | send "0.17.1" 2856 | 2857 | set-blocking@^2.0.0: 2858 | version "2.0.0" 2859 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2860 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 2861 | 2862 | setprototypeof@1.1.1: 2863 | version "1.1.1" 2864 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 2865 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 2866 | 2867 | shebang-command@^2.0.0: 2868 | version "2.0.0" 2869 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 2870 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 2871 | dependencies: 2872 | shebang-regex "^3.0.0" 2873 | 2874 | shebang-regex@^3.0.0: 2875 | version "3.0.0" 2876 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 2877 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 2878 | 2879 | signal-exit@^3.0.2: 2880 | version "3.0.3" 2881 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 2882 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 2883 | 2884 | slice-ansi@^4.0.0: 2885 | version "4.0.0" 2886 | resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" 2887 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== 2888 | dependencies: 2889 | ansi-styles "^4.0.0" 2890 | astral-regex "^2.0.0" 2891 | is-fullwidth-code-point "^3.0.0" 2892 | 2893 | snakeize@^0.1.0: 2894 | version "0.1.0" 2895 | resolved "https://registry.yarnpkg.com/snakeize/-/snakeize-0.1.0.tgz#10c088d8b58eb076b3229bb5a04e232ce126422d" 2896 | integrity sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0= 2897 | 2898 | source-map@~0.6.1: 2899 | version "0.6.1" 2900 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2901 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 2902 | 2903 | spdx-correct@^3.0.0: 2904 | version "3.1.1" 2905 | resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 2906 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 2907 | dependencies: 2908 | spdx-expression-parse "^3.0.0" 2909 | spdx-license-ids "^3.0.0" 2910 | 2911 | spdx-exceptions@^2.1.0: 2912 | version "2.3.0" 2913 | resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 2914 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 2915 | 2916 | spdx-expression-parse@^3.0.0: 2917 | version "3.0.1" 2918 | resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 2919 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 2920 | dependencies: 2921 | spdx-exceptions "^2.1.0" 2922 | spdx-license-ids "^3.0.0" 2923 | 2924 | spdx-license-ids@^3.0.0: 2925 | version "3.0.7" 2926 | resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" 2927 | integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== 2928 | 2929 | split2@^3.1.1: 2930 | version "3.2.2" 2931 | resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" 2932 | integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== 2933 | dependencies: 2934 | readable-stream "^3.0.0" 2935 | 2936 | sprintf-js@~1.0.2: 2937 | version "1.0.3" 2938 | resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2939 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 2940 | 2941 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0: 2942 | version "1.5.0" 2943 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 2944 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 2945 | 2946 | stream-events@^1.0.1, stream-events@^1.0.4, stream-events@^1.0.5: 2947 | version "1.0.5" 2948 | resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" 2949 | integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== 2950 | dependencies: 2951 | stubs "^3.0.0" 2952 | 2953 | stream-shift@^1.0.0: 2954 | version "1.0.1" 2955 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" 2956 | integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== 2957 | 2958 | streamsearch@0.1.2: 2959 | version "0.1.2" 2960 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" 2961 | integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= 2962 | 2963 | string-collapse-leading-whitespace@^5.1.0: 2964 | version "5.1.0" 2965 | resolved "https://registry.yarnpkg.com/string-collapse-leading-whitespace/-/string-collapse-leading-whitespace-5.1.0.tgz#3ebe317241421bcba651e697ef60d6b9a9bf43c3" 2966 | integrity sha512-mYz9/Kb5uvRB4DZj46zILwI4y9lD9JsvXG9Xb7zjbwm0I/R40G7oFfMsqJ28l2d7gWMTLJL569NfJQVLQbnHCw== 2967 | dependencies: 2968 | "@babel/runtime" "^7.14.0" 2969 | 2970 | string-left-right@^4.1.0: 2971 | version "4.1.0" 2972 | resolved "https://registry.yarnpkg.com/string-left-right/-/string-left-right-4.1.0.tgz#d73c066720cb0a8cd2b6a61e3188d3458b22b776" 2973 | integrity sha512-ic/WvfNVUygWWsgg8akzSzp2NuttfhrdbH7QmSnda5b5RFmT9aCEDiS/M+gmTJwtFy7+b/2AXU4Z6vejcePQqQ== 2974 | dependencies: 2975 | "@babel/runtime" "^7.14.0" 2976 | lodash.clonedeep "^4.5.0" 2977 | lodash.isplainobject "^4.0.6" 2978 | 2979 | string-strip-html@^8.2.9: 2980 | version "8.3.0" 2981 | resolved "https://registry.yarnpkg.com/string-strip-html/-/string-strip-html-8.3.0.tgz#d5dddee58d5832cc6c25448b536c69a65230802a" 2982 | integrity sha512-1+rjTPt0JjpFr1w0bfNL1S6O0I9fJDqM+P3pFTpC6eEEpIXhmBvPLnaQoEuWarswiH219qCefDSxTLxGQyHKUg== 2983 | dependencies: 2984 | "@babel/runtime" "^7.14.0" 2985 | html-entities "^2.3.2" 2986 | lodash.isplainobject "^4.0.6" 2987 | lodash.trim "^4.5.1" 2988 | lodash.without "^4.4.0" 2989 | ranges-apply "^5.1.0" 2990 | ranges-push "^5.1.0" 2991 | string-left-right "^4.1.0" 2992 | 2993 | string-trim-spaces-only@^3.1.0: 2994 | version "3.1.0" 2995 | resolved "https://registry.yarnpkg.com/string-trim-spaces-only/-/string-trim-spaces-only-3.1.0.tgz#b7936051706110caec5bcf3f7f866fe46354d7aa" 2996 | integrity sha512-AW7RSi3+QtE6wR+4m/kmwlyy39neBbCIzrzzu1/RGzNRiPKQOeB3rGzr4ubg4UIQgYtr2w0PrxhKPXgyqJ0vaQ== 2997 | dependencies: 2998 | "@babel/runtime" "^7.14.0" 2999 | 3000 | string-width@^4.1.0, string-width@^4.2.0: 3001 | version "4.2.0" 3002 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 3003 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== 3004 | dependencies: 3005 | emoji-regex "^8.0.0" 3006 | is-fullwidth-code-point "^3.0.0" 3007 | strip-ansi "^6.0.0" 3008 | 3009 | string.prototype.trimend@^1.0.4: 3010 | version "1.0.4" 3011 | resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" 3012 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== 3013 | dependencies: 3014 | call-bind "^1.0.2" 3015 | define-properties "^1.1.3" 3016 | 3017 | string.prototype.trimstart@^1.0.4: 3018 | version "1.0.4" 3019 | resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" 3020 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== 3021 | dependencies: 3022 | call-bind "^1.0.2" 3023 | define-properties "^1.1.3" 3024 | 3025 | string_decoder@^1.1.1: 3026 | version "1.3.0" 3027 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 3028 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 3029 | dependencies: 3030 | safe-buffer "~5.2.0" 3031 | 3032 | string_decoder@~1.1.1: 3033 | version "1.1.1" 3034 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 3035 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 3036 | dependencies: 3037 | safe-buffer "~5.1.0" 3038 | 3039 | strip-ansi@^6.0.0: 3040 | version "6.0.0" 3041 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 3042 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 3043 | dependencies: 3044 | ansi-regex "^5.0.0" 3045 | 3046 | strip-bom@^3.0.0: 3047 | version "3.0.0" 3048 | resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 3049 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 3050 | 3051 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 3052 | version "3.1.1" 3053 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 3054 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 3055 | 3056 | stubs@^3.0.0: 3057 | version "3.0.0" 3058 | resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" 3059 | integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= 3060 | 3061 | supports-color@^5.3.0: 3062 | version "5.5.0" 3063 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 3064 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 3065 | dependencies: 3066 | has-flag "^3.0.0" 3067 | 3068 | supports-color@^7.1.0: 3069 | version "7.2.0" 3070 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 3071 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 3072 | dependencies: 3073 | has-flag "^4.0.0" 3074 | 3075 | symbol-tree@^3.2.4: 3076 | version "3.2.4" 3077 | resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" 3078 | integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== 3079 | 3080 | table@^6.0.4: 3081 | version "6.5.1" 3082 | resolved "https://registry.npmjs.org/table/-/table-6.5.1.tgz#930885a7430f15f8766b35cd1e36de40793db523" 3083 | integrity sha512-xGDXWTBJxahkzPQCsn1S9ESHEenU7TbMD5Iv4FeopXv/XwJyWatFjfbor+6ipI10/MNPXBYUamYukOrbPZ9L/w== 3084 | dependencies: 3085 | ajv "^8.0.1" 3086 | lodash.clonedeep "^4.5.0" 3087 | lodash.flatten "^4.4.0" 3088 | lodash.truncate "^4.4.2" 3089 | slice-ansi "^4.0.0" 3090 | string-width "^4.2.0" 3091 | strip-ansi "^6.0.0" 3092 | 3093 | teeny-request@^7.0.0: 3094 | version "7.0.1" 3095 | resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-7.0.1.tgz#bdd41fdffea5f8fbc0d29392cb47bec4f66b2b4c" 3096 | integrity sha512-sasJmQ37klOlplL4Ia/786M5YlOcoLGQyq2TE4WHSRupbAuDaQW0PfVxV4MtdBtRJ4ngzS+1qim8zP6Zp35qCw== 3097 | dependencies: 3098 | http-proxy-agent "^4.0.0" 3099 | https-proxy-agent "^5.0.0" 3100 | node-fetch "^2.6.1" 3101 | stream-events "^1.0.5" 3102 | uuid "^8.0.0" 3103 | 3104 | text-table@^0.2.0: 3105 | version "0.2.0" 3106 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 3107 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 3108 | 3109 | through@^2.3.6: 3110 | version "2.3.8" 3111 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 3112 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 3113 | 3114 | tmp@^0.0.33: 3115 | version "0.0.33" 3116 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 3117 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 3118 | dependencies: 3119 | os-tmpdir "~1.0.2" 3120 | 3121 | toidentifier@1.0.0: 3122 | version "1.0.0" 3123 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 3124 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 3125 | 3126 | tough-cookie@^4.0.0: 3127 | version "4.0.0" 3128 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" 3129 | integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== 3130 | dependencies: 3131 | psl "^1.1.33" 3132 | punycode "^2.1.1" 3133 | universalify "^0.1.2" 3134 | 3135 | tr46@^2.0.2: 3136 | version "2.0.2" 3137 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" 3138 | integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== 3139 | dependencies: 3140 | punycode "^2.1.1" 3141 | 3142 | trouter@^2.0.1: 3143 | version "2.0.1" 3144 | resolved "https://registry.yarnpkg.com/trouter/-/trouter-2.0.1.tgz#2726a5f8558e090d24c3a393f09eaab1df232df6" 3145 | integrity sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ== 3146 | dependencies: 3147 | matchit "^1.0.0" 3148 | 3149 | tsconfig-paths@^3.9.0: 3150 | version "3.9.0" 3151 | resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" 3152 | integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== 3153 | dependencies: 3154 | "@types/json5" "^0.0.29" 3155 | json5 "^1.0.1" 3156 | minimist "^1.2.0" 3157 | strip-bom "^3.0.0" 3158 | 3159 | tslib@^1.11.1, tslib@^1.9.0, tslib@^1.9.3: 3160 | version "1.14.1" 3161 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 3162 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 3163 | 3164 | type-check@^0.4.0, type-check@~0.4.0: 3165 | version "0.4.0" 3166 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 3167 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 3168 | dependencies: 3169 | prelude-ls "^1.2.1" 3170 | 3171 | type-check@~0.3.2: 3172 | version "0.3.2" 3173 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 3174 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 3175 | dependencies: 3176 | prelude-ls "~1.1.2" 3177 | 3178 | type-fest@^0.11.0: 3179 | version "0.11.0" 3180 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" 3181 | integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== 3182 | 3183 | type-fest@^0.20.2: 3184 | version "0.20.2" 3185 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 3186 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 3187 | 3188 | type-fest@^0.8.1: 3189 | version "0.8.1" 3190 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 3191 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 3192 | 3193 | type-is@~1.6.17, type-is@~1.6.18: 3194 | version "1.6.18" 3195 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 3196 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 3197 | dependencies: 3198 | media-typer "0.3.0" 3199 | mime-types "~2.1.24" 3200 | 3201 | typedarray-to-buffer@^3.1.5: 3202 | version "3.1.5" 3203 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" 3204 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 3205 | dependencies: 3206 | is-typedarray "^1.0.0" 3207 | 3208 | typedarray@^0.0.6: 3209 | version "0.0.6" 3210 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 3211 | integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= 3212 | 3213 | unbox-primitive@^1.0.0: 3214 | version "1.0.1" 3215 | resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" 3216 | integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== 3217 | dependencies: 3218 | function-bind "^1.1.1" 3219 | has-bigints "^1.0.1" 3220 | has-symbols "^1.0.2" 3221 | which-boxed-primitive "^1.0.2" 3222 | 3223 | unique-string@^2.0.0: 3224 | version "2.0.0" 3225 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" 3226 | integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== 3227 | dependencies: 3228 | crypto-random-string "^2.0.0" 3229 | 3230 | universalify@^0.1.2: 3231 | version "0.1.2" 3232 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 3233 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 3234 | 3235 | unpipe@1.0.0, unpipe@~1.0.0: 3236 | version "1.0.0" 3237 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 3238 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 3239 | 3240 | uri-js@^4.2.2: 3241 | version "4.4.0" 3242 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" 3243 | integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== 3244 | dependencies: 3245 | punycode "^2.1.0" 3246 | 3247 | util-deprecate@^1.0.1, util-deprecate@~1.0.1: 3248 | version "1.0.2" 3249 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3250 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 3251 | 3252 | utils-merge@1.0.1: 3253 | version "1.0.1" 3254 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 3255 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 3256 | 3257 | uuid@^8.0.0, uuid@^8.3.0: 3258 | version "8.3.1" 3259 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" 3260 | integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== 3261 | 3262 | v8-compile-cache@^2.0.3: 3263 | version "2.3.0" 3264 | resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 3265 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 3266 | 3267 | validate-npm-package-license@^3.0.1: 3268 | version "3.0.4" 3269 | resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 3270 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 3271 | dependencies: 3272 | spdx-correct "^3.0.0" 3273 | spdx-expression-parse "^3.0.0" 3274 | 3275 | vary@~1.1.2: 3276 | version "1.1.2" 3277 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 3278 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 3279 | 3280 | w3c-hr-time@^1.0.2: 3281 | version "1.0.2" 3282 | resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" 3283 | integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== 3284 | dependencies: 3285 | browser-process-hrtime "^1.0.0" 3286 | 3287 | w3c-xmlserializer@^2.0.0: 3288 | version "2.0.0" 3289 | resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" 3290 | integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== 3291 | dependencies: 3292 | xml-name-validator "^3.0.0" 3293 | 3294 | webidl-conversions@^5.0.0: 3295 | version "5.0.0" 3296 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" 3297 | integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== 3298 | 3299 | webidl-conversions@^6.1.0: 3300 | version "6.1.0" 3301 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" 3302 | integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== 3303 | 3304 | websocket-driver@>=0.5.1: 3305 | version "0.7.4" 3306 | resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" 3307 | integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== 3308 | dependencies: 3309 | http-parser-js ">=0.5.1" 3310 | safe-buffer ">=5.1.0" 3311 | websocket-extensions ">=0.1.1" 3312 | 3313 | websocket-extensions@>=0.1.1: 3314 | version "0.1.4" 3315 | resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" 3316 | integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== 3317 | 3318 | whatwg-encoding@^1.0.5: 3319 | version "1.0.5" 3320 | resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" 3321 | integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== 3322 | dependencies: 3323 | iconv-lite "0.4.24" 3324 | 3325 | whatwg-mimetype@^2.3.0: 3326 | version "2.3.0" 3327 | resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" 3328 | integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== 3329 | 3330 | whatwg-url@^8.0.0: 3331 | version "8.4.0" 3332 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" 3333 | integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== 3334 | dependencies: 3335 | lodash.sortby "^4.7.0" 3336 | tr46 "^2.0.2" 3337 | webidl-conversions "^6.1.0" 3338 | 3339 | whatwg-url@^8.5.0: 3340 | version "8.5.0" 3341 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3" 3342 | integrity sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg== 3343 | dependencies: 3344 | lodash "^4.7.0" 3345 | tr46 "^2.0.2" 3346 | webidl-conversions "^6.1.0" 3347 | 3348 | which-boxed-primitive@^1.0.2: 3349 | version "1.0.2" 3350 | resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 3351 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 3352 | dependencies: 3353 | is-bigint "^1.0.1" 3354 | is-boolean-object "^1.1.0" 3355 | is-number-object "^1.0.4" 3356 | is-string "^1.0.5" 3357 | is-symbol "^1.0.3" 3358 | 3359 | which-module@^2.0.0: 3360 | version "2.0.0" 3361 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 3362 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 3363 | 3364 | which@^2.0.1: 3365 | version "2.0.2" 3366 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 3367 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 3368 | dependencies: 3369 | isexe "^2.0.0" 3370 | 3371 | word-wrap@^1.2.3, word-wrap@~1.2.3: 3372 | version "1.2.3" 3373 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 3374 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 3375 | 3376 | wrap-ansi@^6.2.0: 3377 | version "6.2.0" 3378 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" 3379 | integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== 3380 | dependencies: 3381 | ansi-styles "^4.0.0" 3382 | string-width "^4.1.0" 3383 | strip-ansi "^6.0.0" 3384 | 3385 | wrappy@1: 3386 | version "1.0.2" 3387 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3388 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 3389 | 3390 | write-file-atomic@^3.0.0: 3391 | version "3.0.3" 3392 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" 3393 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== 3394 | dependencies: 3395 | imurmurhash "^0.1.4" 3396 | is-typedarray "^1.0.0" 3397 | signal-exit "^3.0.2" 3398 | typedarray-to-buffer "^3.1.5" 3399 | 3400 | ws@^7.4.5: 3401 | version "7.4.6" 3402 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" 3403 | integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== 3404 | 3405 | xdg-basedir@^4.0.0: 3406 | version "4.0.0" 3407 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" 3408 | integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== 3409 | 3410 | xml-name-validator@^3.0.0: 3411 | version "3.0.0" 3412 | resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" 3413 | integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== 3414 | 3415 | xmlchars@^2.2.0: 3416 | version "2.2.0" 3417 | resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" 3418 | integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== 3419 | 3420 | xtend@^4.0.0: 3421 | version "4.0.2" 3422 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 3423 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 3424 | 3425 | xxhashjs@^0.2.2: 3426 | version "0.2.2" 3427 | resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" 3428 | integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== 3429 | dependencies: 3430 | cuint "^0.2.2" 3431 | 3432 | y18n@^4.0.0: 3433 | version "4.0.0" 3434 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 3435 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== 3436 | 3437 | yallist@^4.0.0: 3438 | version "4.0.0" 3439 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 3440 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 3441 | 3442 | yargs-parser@^18.1.2: 3443 | version "18.1.3" 3444 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" 3445 | integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== 3446 | dependencies: 3447 | camelcase "^5.0.0" 3448 | decamelize "^1.2.0" 3449 | 3450 | yargs@^15.3.1: 3451 | version "15.4.1" 3452 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" 3453 | integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== 3454 | dependencies: 3455 | cliui "^6.0.0" 3456 | decamelize "^1.2.0" 3457 | find-up "^4.1.0" 3458 | get-caller-file "^2.0.1" 3459 | require-directory "^2.1.1" 3460 | require-main-filename "^2.0.0" 3461 | set-blocking "^2.0.0" 3462 | string-width "^4.2.0" 3463 | which-module "^2.0.0" 3464 | y18n "^4.0.0" 3465 | yargs-parser "^18.1.2" 3466 | --------------------------------------------------------------------------------