diff --git a/.env.example b/.env.example deleted file mode 100644 index 0f999ab5..00000000 --- a/.env.example +++ /dev/null @@ -1,44 +0,0 @@ -# ================================== -# SECURITY CONFIGURATION -# ================================== -TOKEN=RANDOM_STRING_HERE -PROTECT_ROUTES=false - -# ================================== -# APPLICATION CONFIGURATION -# ================================== -PORT=3333 -RESTORE_SESSIONS_ON_START_UP=false -APP_URL=http://localhost:3333 -LOG_LEVEL=silent - -# ================================== -# BROWSER CONFIGURATION -# ================================== -CLIENT_PLATFORM='Whatsapp MD' -CLIENT_BROWSER='Chrome' -CLIENT_VERSION='4.0.0' - -# ================================== -# INSTANCE CONFIGURATION -# ================================== -INSTANCE_MAX_RETRY_QR=2 - -# ================================== -# DATABASE CONFIGURATION -# ================================== -MONGODB_ENABLED=false -MONGODB_URL=mongodb://127.0.0.1:27017/whatsapp_api - -# ================================== -# WEBHOOK CONFIGURATION -# ================================== -WEBHOOK_ENABLED=false -WEBHOOK_URL=https://webhook.site/d0122a66-18a3-432d-b63f-4772b190dd72 -WEBHOOK_BASE64=false -WEBHOOK_ALLOWED_EVENTS= - -# ================================== -# MESSAGE CONFIGURATION -# ================================== -MARK_MESSAGES_READ=false \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 60c32107..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "root": true, - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module" - }, - "extends": ["eslint:recommended", "prettier"], - "env": { - "es2021": true, - "node": true - }, - "rules": { - "no-console": "warn", - "no-undefined": "warn", - "no-unused-vars": "warn" - }, - "globals": { - "WhatsAppInstances": true, - "describe": true, - "it": true - } -} diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 26220b75..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -github: salman0ansari -custom: https://www.buymeacoffee.com/salman0ansari diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 4ed6724a..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "npm" - directory: "/" # Location of package manifests - schedule: - interval: "weekly" diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 02daea97..00000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,71 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: 'CodeQL' - -on: - push: - branches: ['main'] - pull_request: - # The branches below must be a subset of the branches above - branches: ['main'] - schedule: - - cron: '15 23 * * 4' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: ['javascript'] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - - # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v2 - - # ℹī¸ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - # If the Autobuild fails above, remove it and uncomment the following three lines. - # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. - - # - run: | - # echo "Run, Build Application using script" - # ./location_of_script_within_repo/buildscript.sh - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml deleted file mode 100644 index 6a40a62b..00000000 --- a/.github/workflows/format.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Prettier -on: - pull_request: - push: - branches: - - main - -jobs: - format: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - token: ${{ secrets.TOKEN }} - ref: ${{ github.head_ref }} - - - uses: actions/setup-node@v1 - with: - node-version: '16.x' - - run: npm i prettier -g - - run: npm run format:write - - - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4 - with: - branch: main - commit_message: 'CI: fix formatting' diff --git a/.github/workflows/node.js-test.yml b/.github/workflows/node.js-test.yml deleted file mode 100644 index 63982997..00000000 --- a/.github/workflows/node.js-test.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: 💉 Node.js CI - -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [16.x] - - steps: - - uses: actions/checkout@v3 - - name: 👨‍đŸ’ģī¸ Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - name: đŸ“Ĩ Installing packages - run: yarn - - name: 📝 Running test - run: yarn test - env: - TOKEN: ${{ secrets.TOKEN }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index b157a9fb..00000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Mark stale issues and pull requests - -on: - schedule: - - cron: '30 1 * * *' - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v3 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-issue-message: 'This issue is stale because it has been open 6 days with no activity. Remove the stale label or comment or this will be closed in 2 days' - stale-pr-message: 'This PR is stale because it has been open 6 days with no activity. Remove the stale label or comment or this will be closed in 2 days' - days-before-stale: 6 - days-before-close: 2 diff --git a/.gitignore b/.gitignore index 6f5c332c..18edcd46 100644 --- a/.gitignore +++ b/.gitignore @@ -2,11 +2,12 @@ node_modules package-lock.json yarn.lock +dist # APPLICATION .env -sessiondata # IDEs -.vscode/settings.json +.vscode .idea +*.sqlite \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index cf0c46b9..00000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npx --no-install lint-staged diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index a3a82662..00000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -whatsapp-api-nodejs.postman_collection.json diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index e74ed9ff..00000000 --- a/.prettierrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "trailingComma": "es5", - "tabWidth": 4, - "semi": false, - "singleQuote": true -} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index cd996b40..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,25 +0,0 @@ -We're really glad you're reading this, because we need developers to help this project. 👏 - -## If you would like to contribute, here are a few starters: - -- Bug Hunts. -- Add sorts of examples. -- Refactor Code. -- Additional features/ More integrations. -- TS support. - -## Instructions - -These steps will guide you through contributing to this project: - -- Create an issue to discuss about the changes you want to do before starting to code. -- Fork the repo -- Clone it and install dependencies - - $ git clone https://github.com/https://github.com/salman0ansari/whatsapp-api-nodejs - - $ npm install - -- Make changes - -- Send a [GitHub Pull Request](https://github.com/salman0ansari/whatsapp-api-nodejs/compare?expand=1) with a clear list of what you've done (read more [about pull requests](https://help.github.com/articles/about-pull-requests/)). Make sure all of your commits are atomic (one feature per commit). diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 4bfe58cd..00000000 --- a/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM node:19-alpine - -RUN apk add git - -COPY . /home/node/app - -WORKDIR /home/node/app - -RUN yarn install - -CMD yarn start diff --git a/Procfile b/Procfile deleted file mode 100644 index 28fe750b..00000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: npm run start diff --git a/README.md b/README.md index 70e40d70..17e24b53 100644 --- a/README.md +++ b/README.md @@ -1,176 +1,4 @@ -

whatsapp-api-nodejs Multi Device

-
-

- -

-

- -

- - - - -

+# whatsapp-api-nodejs +RESTful WhatsApp API with Multiple Device Support - -

-Buy Me A Coffee -
- ---- - -An implementation of [Baileys](https://github.com/adiwajshing/Baileys/) as a simple RESTful API service with multi device support just `download`, `install`, and `start` using, `simple` as that. - -# Libraries Used - -- [Baileys](https://github.com/adiwajshing/Baileys/) -- [Express](https://github.com/expressjs/express) - -# Installation - -1. Download or clone this repo. -2. Enter to the project directory. -3. Execute `yarn install` to install the dependencies. -4. Copy `.env.example` to `.env` and set the environment variables. - -# Docker Compose - -1. Follow the [Installation](#installation) procedure. -2. Update `.env` and set - -``` -MONGODB_ENABLED=true -MONGODB_URL=mongodb://mongodb:27017/whatsapp_api -``` - -3. Set your `TOKEN=` to a random string. -4. Execute - -``` -docker-compose up -d -``` - -# Configuration - -Edit environment variables on `.env` - -```a -Important: You must set TOKEN= to a random string to protect the route. -``` - -```env -# ================================== -# SECURITY CONFIGURATION -# ================================== -TOKEN=RANDOM_STRING_HERE -``` - -# Usage - -1. `DEVELOPMENT:` Execute `yarn dev` -2. `PRODUCTION:` Execute `yarn start` - -## Generate basic instance using random key. - -To generate an Instance Key -Using the route: - -```bash -curl --location --request GET 'localhost:3333/instance/init' \ ---data-raw '' -``` - -Response: - -```json -{ - "error": false, - "message": "Initializing successfull", - "key": "d7e2abff-3ac8-44a9-a738-1b28e0fca8a5" -} -``` -## WEBHOOK_ALLOWED_EVENTS -You can set which events you want to send to webhook by setting the environment variable `WEBHOOK_ALLOWED_EVENTS` - -Set a comma seperated list of events you want to get notified about. - -Default value is `all` which will forward all events. - -Allowed values: -- `connection` - receive all connection events -- `connection:open` - receive open connection events -- `connection:close` - receive close connection events -- `presense` - receive presence events -- `messages` - receive all messages event -- `call` - receive all events related to calls -- `call:terminate` - receive call terminate events -- `call:offer` - receive call terminate event -- `groups` - receive all events related to groups -- `group_participants` - receive all events related to group participants - -You can also use the Baileys event format example: `messages.upsert` - -## Generate custom instance with custom key and custom webhook. - -To generate a Custom Instance -Using the route: - -```bash -curl --location --request GET 'localhost:3333/instance/init?key=CUSTOM_INSTANCE_KEY_HERE&webhook=true&webhookUrl=https://webhook.site/d7114704-97f6-4562-9a47-dcf66b07266d' \ ---data-raw '' -``` - -Response: - -```json -{ - "error": false, - "message": "Initializing successfull", - "key": "CUSTOM_INSTANCE_KEY_HERE" -} -``` - -# Using Key - -Save the value of the `key` from response. Then use this value to call all the routes. - -## Postman Docs - -All routes are available as a postman collection. - -- https://documenter.getpostman.com/view/12514774/UVsPQkBq - -## QR Code - -Visit [http://localhost:3333/instance/qr?key=INSTANCE_KEY_HERE](http://localhost:3333/instance/qr?key=INSTANCE_KEY_HERE) to view the QR Code and scan with your device. If you take too long to scan the QR Code, you will have to refresh the page. - -## Send Message - -```sh -# /message/text?key=INSTANCE_KEY_HERE&id=PHONE-NUMBER-WITH-COUNTRY-CODE&message=MESSAGE - -curl --location --request POST 'localhost:3333/message/text?key=INSTANCE_KEY_HERE' \ ---header 'Content-Type: application/x-www-form-urlencoded' \ ---data-urlencode 'id=919999999999' \ ---data-urlencode 'message=Hello World' -``` -## Routes -| Route | Source File | -| ------------- | ------------- | -| Instance Routes | [instance.route.js](https://github.com/salman0ansari/whatsapp-api-nodejs/blob/main/src/api/routes/instance.route.js) | -| Message Routes | [message.route.js](https://github.com/salman0ansari/whatsapp-api-nodejs/blob/main/src/api/routes/message.route.js) | -| Group Routes | [group.route.js](https://github.com/salman0ansari/whatsapp-api-nodejs/blob/main/src/api/routes/group.route.js) | -| Miscellaneous Routes | [misc.route.js](https://github.com/salman0ansari/whatsapp-api-nodejs/blob/main/src/api/routes/misc.route.js) | - -See all routes here [src/api/routes](https://github.com/salman0ansari/whatsapp-api-nodejs/tree/main/src/api/routes) - -# Note - -I can't guarantee or can be held responsible if you get blocked or banned by using this software. WhatsApp does not allow bots using unofficial methods on their platform, so this shouldn't be considered totally safe. - -# Legal - -- This code is in no way affiliated, authorized, maintained, sponsored or endorsed by WA (WhatsApp) or any of its affiliates or subsidiaries. -- The official WhatsApp website can be found at https://whatsapp.com. "WhatsApp" as well as related names, marks, emblems and images are registered trademarks of their respective owners. -- This is an independent and unofficial software Use at your own risk. -- Do not spam people with this. +# WIP diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 0afbfc64..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: '3.8' - -services: - mongodb: - container_name: mongodb - image: mongo:latest - restart: unless-stopped - ports: - - 27017:27017 - volumes: - - db:/data/db - app: - container_name: api - depends_on: - - mongodb - user: 'node' - restart: unless-stopped - env_file: .env - command: 'npm start' - ports: - - ${PORT}:${PORT} - environment: - - TOKEN=${TOKEN} - - PORT=${PORT} - - MONGODB_ENABLED=${MONGODB_ENABLED} - - MONGODB_URL=mongodb://mongodb:27017 - - WEBHOOK_ENABLED=${WEBHOOK_ENABLED} - - WEBHOOK_URL=${WEBHOOK_URL} - - WEBHOOK_BASE64=${WEBHOOK_BASE64} - volumes: - - ./:/home/node/app - working_dir: /home/node/app - image: node:17.2.0-alpine - -volumes: - db: diff --git a/nodemon.json b/nodemon.json deleted file mode 100644 index f935e1c7..00000000 --- a/nodemon.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "watch": ["src", ".env"], - "ignore": [], - "ext": "js", - "exec": "node src/server.js" -} diff --git a/package.json b/package.json index 5964e3c6..775311fd 100644 --- a/package.json +++ b/package.json @@ -1,60 +1,32 @@ { - "name": "whatsapp-api-nodejs", - "version": "3.0.8", - "description": "whatsapp-api-nodejs is builton top of Baileys-MD.", - "main": "server.js", - "scripts": { - "start": "node src/server.js", - "dev": "./node_modules/nodemon/bin/nodemon.js", - "format:check": "prettier --check .", - "format:write": "prettier --write .", - "lint:check": "eslint .", - "lint:fix": "eslint --fix .", - "test": "mocha tests/*.test.js --exit", - "configure-husky": "npx husky install && npx husky add .husky/pre-commit \"npx --no-install lint-staged\"" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.{js,jsx}": [ - "prettier --write", - "git add" - ], - "*.{html,css,less,ejs}": [ - "prettier --write", - "git add" - ] - }, - "repository": "git@github.com:salman0ansari/whatsapp-api-nodejs.git", - "author": "Mohd Salman Ansari ", - "license": "MIT", - "dependencies": { - "@adiwajshing/baileys": "^5.0.0", - "axios": "^1.1.3", - "dotenv": "^16.0.3", - "ejs": "^3.1.7", - "express": "^4.18.2", - "express-exception-handler": "^1.3.23", - "link-preview-js": "^2.1.13", - "mongodb": "^4.12.1", - "mongoose": "^6.7.4", - "multer": "^1.4.5-lts.1", - "pino": "^8.7.0", - "qrcode": "^1.5.1", - "sharp": "^0.30.5", - "uuid": "^9.0.0" - }, - "devDependencies": { - "eslint": "^8.28.0", - "eslint-config-prettier": "^8.5.0", - "husky": "^8.0.2", - "lint-staged": "^13.0.4", - "mocha": "^10.1.0", - "nodemon": "^2.0.20", - "prettier": "^2.8.0", - "supertest": "^6.3.1" - } + "name": "whatsapp-api-nodejs", + "version": "4.0.0", + "description": "whatsapp-api-nodejs is built on top of Baileys-MD.", + "main": "server.js", + "repository": "git@github.com:salman0ansari/whatsapp-api-nodejs.git", + "author": "Mohd Salman Ansari ", + "type": "module", + "license": "MIT", + "scripts": { + "start": "node dist/server.js", + "build": "tsc", + "build:run": "tsc && node dist/server.js" + }, + "dependencies": { + "@adiwajshing/baileys": "@adiwajshing/baileys@^5.0.0", + "baileys-bottle": "^2.1.2", + "express": "^4.18.2", + "express-validator": "^6.15.0", + "typeorm": "^0.3.12" + }, + "devDependencies": { + "@adiwajshing/keyed-db": "^0.2.4", + "@types/express": "^4.17.17", + "@types/node": "^18.14.4", + "@types/qrcode": "^1.5.0", + "@types/ws": "^8.5.4", + "pino-pretty": "^9.4.0", + "qrcode": "^1.5.1", + "sqlite3": "^5.1.4" + } } diff --git a/src/api/class/instance.js b/src/api/class/instance.js deleted file mode 100644 index 426bced5..00000000 --- a/src/api/class/instance.js +++ /dev/null @@ -1,932 +0,0 @@ -/* eslint-disable no-unsafe-optional-chaining */ -const QRCode = require('qrcode') -const pino = require('pino') -const { - default: makeWASocket, - DisconnectReason, -} = require('@adiwajshing/baileys') -const { unlinkSync } = require('fs') -const { v4: uuidv4 } = require('uuid') -const path = require('path') -const processButton = require('../helper/processbtn') -const generateVC = require('../helper/genVc') -const Chat = require('../models/chat.model') -const axios = require('axios') -const config = require('../../config/config') -const downloadMessage = require('../helper/downloadMsg') -const logger = require('pino')() -const useMongoDBAuthState = require('../helper/mongoAuthState') - -class WhatsAppInstance { - socketConfig = { - defaultQueryTimeoutMs: undefined, - printQRInTerminal: false, - logger: pino({ - level: config.log.level, - }), - } - key = '' - authState - allowWebhook = undefined - webhook = undefined - - instance = { - key: this.key, - chats: [], - qr: '', - messages: [], - qrRetry: 0, - customWebhook: '', - } - - axiosInstance = axios.create({ - baseURL: config.webhookUrl, - }) - - constructor(key, allowWebhook, webhook) { - this.key = key ? key : uuidv4() - this.instance.customWebhook = this.webhook ? this.webhook : webhook - this.allowWebhook = config.webhookEnabled - ? config.webhookEnabled - : allowWebhook - if (this.allowWebhook && this.instance.customWebhook !== null) { - this.allowWebhook = true - this.instance.customWebhook = webhook - this.axiosInstance = axios.create({ - baseURL: webhook, - }) - } - } - - async SendWebhook(type, body, key) { - if (!this.allowWebhook) return - this.axiosInstance - .post('', { - type, - body, - instanceKey: key, - }) - .catch(() => { }) - } - - async init() { - this.collection = mongoClient.db('whatsapp-api').collection(this.key) - const { state, saveCreds } = await useMongoDBAuthState(this.collection) - this.authState = { state: state, saveCreds: saveCreds } - this.socketConfig.auth = this.authState.state - this.socketConfig.browser = Object.values(config.browser) - this.instance.sock = makeWASocket(this.socketConfig) - this.setHandler() - return this - } - - setHandler() { - const sock = this.instance.sock - // on credentials update save state - sock?.ev.on('creds.update', this.authState.saveCreds) - - // on socket closed, opened, connecting - sock?.ev.on('connection.update', async (update) => { - const { connection, lastDisconnect, qr } = update - - if (connection === 'connecting') return - - if (connection === 'close') { - // reconnect if not logged out - if ( - lastDisconnect?.error?.output?.statusCode !== - DisconnectReason.loggedOut - ) { - await this.init() - } else { - await this.collection.drop().then((r) => { - logger.info('STATE: Droped collection') - }) - this.instance.online = false - } - - if (['all', 'connection', 'connection.update', 'connection:close'].some((e) => config.webhookAllowedEvents.includes(e))) - await this.SendWebhook('connection', { - connection: connection, - }, this.key) - } else if (connection === 'open') { - if (config.mongoose.enabled) { - let alreadyThere = await Chat.findOne({ - key: this.key, - }).exec() - if (!alreadyThere) { - const saveChat = new Chat({ key: this.key }) - await saveChat.save() - } - } - this.instance.online = true - if (['all', 'connection', 'connection.update', 'connection:open'].some((e) => config.webhookAllowedEvents.includes(e))) - await this.SendWebhook('connection', { - connection: connection, - }, this.key) - } - - if (qr) { - QRCode.toDataURL(qr).then((url) => { - this.instance.qr = url - this.instance.qrRetry++ - if (this.instance.qrRetry >= config.instance.maxRetryQr) { - // close WebSocket connection - this.instance.sock.ws.close() - // remove all events - this.instance.sock.ev.removeAllListeners() - this.instance.qr = ' ' - logger.info('socket connection terminated') - } - }) - } - }) - - // sending presence - sock?.ev.on('presence.update', async (json) => { - if (['all', 'presence', 'presence.update'].some((e) => config.webhookAllowedEvents.includes(e))) - await this.SendWebhook('presence', json, this.key) - }) - - // on receive all chats - sock?.ev.on('chats.set', async ({ chats }) => { - this.instance.chats = [] - const recivedChats = chats.map((chat) => { - return { - ...chat, - messages: [], - } - }) - this.instance.chats.push(...recivedChats) - await this.updateDb(this.instance.chats) - await this.updateDbGroupsParticipants() - }) - - // on recive new chat - sock?.ev.on('chats.upsert', (newChat) => { - //console.log('chats.upsert') - //console.log(newChat) - const chats = newChat.map((chat) => { - return { - ...chat, - messages: [], - } - }) - this.instance.chats.push(...chats) - }) - - // on chat change - sock?.ev.on('chats.update', (changedChat) => { - //console.log('chats.update') - //console.log(changedChat) - changedChat.map((chat) => { - const index = this.instance.chats.findIndex( - (pc) => pc.id === chat.id - ) - const PrevChat = this.instance.chats[index] - this.instance.chats[index] = { - ...PrevChat, - ...chat, - } - }) - }) - - // on chat delete - sock?.ev.on('chats.delete', (deletedChats) => { - //console.log('chats.delete') - //console.log(deletedChats) - deletedChats.map((chat) => { - const index = this.instance.chats.findIndex( - (c) => c.id === chat - ) - this.instance.chats.splice(index, 1) - }) - }) - - // on new mssage - sock?.ev.on('messages.upsert', async (m) => { - //console.log('messages.upsert') - //console.log(m) - if (m.type === 'prepend') - this.instance.messages.unshift(...m.messages) - if (m.type !== 'notify') return - - // https://adiwajshing.github.io/Baileys/#reading-messages - if (config.markMessagesRead) { - const unreadMessages = m.messages.map(msg => { - return { - remoteJid: msg.key.remoteJid, - id: msg.key.id, - participant: msg.key?.participant - } - }) - await sock.readMessages(unreadMessages) - } - - this.instance.messages.unshift(...m.messages) - - m.messages.map(async (msg) => { - if (!msg.message) return - - const messageType = Object.keys(msg.message)[0] - if ( - [ - 'protocolMessage', - 'senderKeyDistributionMessage', - ].includes(messageType) - ) - return - - const webhookData = { - key: this.key, - ...msg, - } - - if (messageType === 'conversation') { - webhookData['text'] = m - } - if (config.webhookBase64) { - switch (messageType) { - case 'imageMessage': - webhookData['msgContent'] = await downloadMessage( - msg.message.imageMessage, - 'image' - ) - break - case 'videoMessage': - webhookData['msgContent'] = await downloadMessage( - msg.message.videoMessage, - 'video' - ) - break - case 'audioMessage': - webhookData['msgContent'] = await downloadMessage( - msg.message.audioMessage, - 'audio' - ) - break - default: - webhookData['msgContent'] = '' - break - } - } - if (['all', 'messages', 'messages.upsert'].some((e) => config.webhookAllowedEvents.includes(e))) - await this.SendWebhook('message', webhookData, this.key) - }) - }) - - sock?.ev.on('messages.update', async (messages) => { - //console.log('messages.update') - //console.dir(messages); - }) - sock?.ws.on('CB:call', async (data) => { - if (data.content) { - if (data.content.find((e) => e.tag === 'offer')) { - const content = data.content.find((e) => e.tag === 'offer') - if (['all', 'call', 'CB:call', 'call:offer'].some((e) => config.webhookAllowedEvents.includes(e))) - await this.SendWebhook('call_offer', { - id: content.attrs['call-id'], - timestamp: parseInt(data.attrs.t), - user: { - id: data.attrs.from, - platform: data.attrs.platform, - platform_version: data.attrs.version, - }, - }, this.key) - } else if (data.content.find((e) => e.tag === 'terminate')) { - const content = data.content.find( - (e) => e.tag === 'terminate' - ) - - if (['all', 'call', 'call:terminate'].some((e) => config.webhookAllowedEvents.includes(e))) - await this.SendWebhook('call_terminate', { - id: content.attrs['call-id'], - user: { - id: data.attrs.from, - }, - timestamp: parseInt(data.attrs.t), - reason: data.content[0].attrs.reason, - }, this.key) - } - } - }) - - sock?.ev.on('groups.upsert', async (newChat) => { - //console.log('groups.upsert') - //console.log(newChat) - this.createGroupByApp(newChat) - if (['all', 'groups', 'groups.upsert'].some((e) => config.webhookAllowedEvents.includes(e))) - await this.SendWebhook('group_created', { - data: newChat, - }, this.key) - }) - - sock?.ev.on('groups.update', async (newChat) => { - //console.log('groups.update') - //console.log(newChat) - this.updateGroupSubjectByApp(newChat) - if (['all', 'groups', 'groups.update'].some((e) => config.webhookAllowedEvents.includes(e))) - await this.SendWebhook('group_updated', { - data: newChat, - }, this.key) - }) - - sock?.ev.on('group-participants.update', async (newChat) => { - //console.log('group-participants.update') - //console.log(newChat) - this.updateGroupParticipantsByApp(newChat) - if (['all', 'groups', 'group_participants', 'group-participants.update'].some((e) => config.webhookAllowedEvents.includes(e))) - await this.SendWebhook('group_participants_updated', { - data: newChat, - }, this.key) - }) - } - - async deleteInstance(key) { - try { - await Chat.findOneAndDelete({ key: key }) - } catch (e) { - logger.error('Error updating document failed') - } - } - - async getInstanceDetail(key) { - return { - instance_key: key, - phone_connected: this.instance?.online, - webhookUrl: this.instance.customWebhook, - user: this.instance?.online ? this.instance.sock?.user : {}, - } - } - - getWhatsAppId(id) { - if (id.includes('@g.us') || id.includes('@s.whatsapp.net')) return id - return id.includes('-') ? `${id}@g.us` : `${id}@s.whatsapp.net` - } - - async verifyId(id) { - if (id.includes('@g.us')) return true - const [result] = await this.instance.sock?.onWhatsApp(id) - if (result?.exists) return true - throw new Error('no account exists') - } - - async sendTextMessage(to, message) { - await this.verifyId(this.getWhatsAppId(to)) - const data = await this.instance.sock?.sendMessage( - this.getWhatsAppId(to), - { text: message } - ) - return data - } - - async sendMediaFile(to, file, type, caption = '', filename) { - await this.verifyId(this.getWhatsAppId(to)) - const data = await this.instance.sock?.sendMessage( - this.getWhatsAppId(to), - { - mimetype: file.mimetype, - [type]: file.buffer, - caption: caption, - ptt: type === 'audio' ? true : false, - fileName: filename ? filename : file.originalname, - } - ) - return data - } - - async sendUrlMediaFile(to, url, type, mimeType, caption = '') { - await this.verifyId(this.getWhatsAppId(to)) - - const data = await this.instance.sock?.sendMessage( - this.getWhatsAppId(to), - { - [type]: { - url: url, - }, - caption: caption, - mimetype: mimeType, - } - ) - return data - } - - async DownloadProfile(of) { - await this.verifyId(this.getWhatsAppId(of)) - const ppUrl = await this.instance.sock?.profilePictureUrl( - this.getWhatsAppId(of), - 'image' - ) - return ppUrl - } - - async getUserStatus(of) { - await this.verifyId(this.getWhatsAppId(of)) - const status = await this.instance.sock?.fetchStatus( - this.getWhatsAppId(of) - ) - return status - } - - async blockUnblock(to, data) { - await this.verifyId(this.getWhatsAppId(to)) - const status = await this.instance.sock?.updateBlockStatus( - this.getWhatsAppId(to), - data - ) - return status - } - - async sendButtonMessage(to, data) { - await this.verifyId(this.getWhatsAppId(to)) - const result = await this.instance.sock?.sendMessage( - this.getWhatsAppId(to), - { - templateButtons: processButton(data.buttons), - text: data.text ?? '', - footer: data.footerText ?? '', - viewOnce: true - } - ) - return result - } - - async sendContactMessage(to, data) { - await this.verifyId(this.getWhatsAppId(to)) - const vcard = generateVC(data) - const result = await this.instance.sock?.sendMessage( - await this.getWhatsAppId(to), - { - contacts: { - displayName: data.fullName, - contacts: [{ displayName: data.fullName, vcard }], - }, - } - ) - return result - } - - async sendListMessage(to, data) { - await this.verifyId(this.getWhatsAppId(to)) - const result = await this.instance.sock?.sendMessage( - this.getWhatsAppId(to), - { - text: data.text, - sections: data.sections, - buttonText: data.buttonText, - footer: data.description, - title: data.title, - viewOnce: true - } - ) - return result - } - - async sendMediaButtonMessage(to, data) { - await this.verifyId(this.getWhatsAppId(to)) - - const result = await this.instance.sock?.sendMessage( - this.getWhatsAppId(to), - { - [data.mediaType]: { - url: data.image, - }, - footer: data.footerText ?? '', - caption: data.text, - templateButtons: processButton(data.buttons), - mimetype: data.mimeType, - viewOnce: true - } - ) - return result - } - - async setStatus(status, to) { - await this.verifyId(this.getWhatsAppId(to)) - - const result = await this.instance.sock?.sendPresenceUpdate(status, to) - return result - } - - // change your display picture or a group's - async updateProfilePicture(id, url) { - try { - const img = await axios.get(url, { responseType: 'arraybuffer' }) - const res = await this.instance.sock?.updateProfilePicture( - id, - img.data - ) - return res - } catch (e) { - //console.log(e) - return { - error: true, - message: 'Unable to update profile picture', - } - } - } - - // get user or group object from db by id - async getUserOrGroupById(id) { - try { - let Chats = await this.getChat() - const group = Chats.find((c) => c.id === this.getWhatsAppId(id)) - if (!group) - throw new Error( - 'unable to get group, check if the group exists' - ) - return group - } catch (e) { - logger.error(e) - logger.error('Error get group failed') - } - } - - // Group Methods - parseParticipants(users) { - return users.map((users) => this.getWhatsAppId(users)) - } - - async updateDbGroupsParticipants() { - try { - let groups = await this.groupFetchAllParticipating() - let Chats = await this.getChat() - if (groups && Chats) { - for (const [key, value] of Object.entries(groups)) { - let group = Chats.find((c) => c.id === value.id) - if (group) { - let participants = [] - for (const [ - key_participant, - participant, - ] of Object.entries(value.participants)) { - participants.push(participant) - } - group.participant = participants - if (value.creation) { - group.creation = value.creation - } - if (value.subjectOwner) { - group.subjectOwner = value.subjectOwner - } - Chats.filter((c) => c.id === value.id)[0] = group - } - } - await this.updateDb(Chats) - } - } catch (e) { - logger.error(e) - logger.error('Error updating groups failed') - } - } - - async createNewGroup(name, users) { - try { - const group = await this.instance.sock?.groupCreate( - name, - users.map(this.getWhatsAppId) - ) - return group - } catch (e) { - logger.error(e) - logger.error('Error create new group failed') - } - } - - async addNewParticipant(id, users) { - try { - const res = await this.instance.sock?.groupAdd( - this.getWhatsAppId(id), - this.parseParticipants(users) - ) - return res - } catch { - return { - error: true, - message: - 'Unable to add participant, you must be an admin in this group', - } - } - } - - async makeAdmin(id, users) { - try { - const res = await this.instance.sock?.groupMakeAdmin( - this.getWhatsAppId(id), - this.parseParticipants(users) - ) - return res - } catch { - return { - error: true, - message: - 'unable to promote some participants, check if you are admin in group or participants exists', - } - } - } - - async demoteAdmin(id, users) { - try { - const res = await this.instance.sock?.groupDemoteAdmin( - this.getWhatsAppId(id), - this.parseParticipants(users) - ) - return res - } catch { - return { - error: true, - message: - 'unable to demote some participants, check if you are admin in group or participants exists', - } - } - } - - async getAllGroups() { - let Chats = await this.getChat() - return Chats.filter((c) => c.id.includes('@g.us')).map((data, i) => { - return { - index: i, - name: data.name, - jid: data.id, - participant: data.participant, - creation: data.creation, - subjectOwner: data.subjectOwner, - } - }) - } - - async leaveGroup(id) { - try { - let Chats = await this.getChat() - const group = Chats.find((c) => c.id === id) - if (!group) throw new Error('no group exists') - return await this.instance.sock?.groupLeave(id) - } catch (e) { - logger.error(e) - logger.error('Error leave group failed') - } - } - - async getInviteCodeGroup(id) { - try { - let Chats = await this.getChat() - const group = Chats.find((c) => c.id === id) - if (!group) - throw new Error( - 'unable to get invite code, check if the group exists' - ) - return await this.instance.sock?.groupInviteCode(id) - } catch (e) { - logger.error(e) - logger.error('Error get invite group failed') - } - } - - async getInstanceInviteCodeGroup(id) { - try { - return await this.instance.sock?.groupInviteCode(id) - } catch (e) { - logger.error(e) - logger.error('Error get invite group failed') - } - } - - // get Chat object from db - async getChat(key = this.key) { - let dbResult = await Chat.findOne({ key: key }).exec() - let ChatObj = dbResult.chat - return ChatObj - } - - // create new group by application - async createGroupByApp(newChat) { - try { - let Chats = await this.getChat() - let group = { - id: newChat[0].id, - name: newChat[0].subject, - participant: newChat[0].participants, - messages: [], - creation: newChat[0].creation, - subjectOwner: newChat[0].subjectOwner, - } - Chats.push(group) - await this.updateDb(Chats) - } catch (e) { - logger.error(e) - logger.error('Error updating document failed') - } - } - - async updateGroupSubjectByApp(newChat) { - //console.log(newChat) - try { - if (newChat[0] && newChat[0].subject) { - let Chats = await this.getChat() - Chats.find((c) => c.id === newChat[0].id).name = - newChat[0].subject - await this.updateDb(Chats) - } - } catch (e) { - logger.error(e) - logger.error('Error updating document failed') - } - } - - async updateGroupParticipantsByApp(newChat) { - //console.log(newChat) - try { - if (newChat && newChat.id) { - let Chats = await this.getChat() - let chat = Chats.find((c) => c.id === newChat.id) - let is_owner = false - if (chat) { - if (chat.participant == undefined) { - chat.participant = [] - } - if (chat.participant && newChat.action == 'add') { - for (const participant of newChat.participants) { - chat.participant.push({ - id: participant, - admin: null, - }) - } - } - if (chat.participant && newChat.action == 'remove') { - for (const participant of newChat.participants) { - // remove group if they are owner - if (chat.subjectOwner == participant) { - is_owner = true - } - chat.participant = chat.participant.filter( - (p) => p.id != participant - ) - } - } - if (chat.participant && newChat.action == 'demote') { - for (const participant of newChat.participants) { - if ( - chat.participant.filter( - (p) => p.id == participant - )[0] - ) { - chat.participant.filter( - (p) => p.id == participant - )[0].admin = null - } - } - } - if (chat.participant && newChat.action == 'promote') { - for (const participant of newChat.participants) { - if ( - chat.participant.filter( - (p) => p.id == participant - )[0] - ) { - chat.participant.filter( - (p) => p.id == participant - )[0].admin = 'superadmin' - } - } - } - if (is_owner) { - Chats = Chats.filter((c) => c.id !== newChat.id) - } else { - Chats.filter((c) => c.id === newChat.id)[0] = chat - } - await this.updateDb(Chats) - } - } - } catch (e) { - logger.error(e) - logger.error('Error updating document failed') - } - } - - async groupFetchAllParticipating() { - try { - const result = - await this.instance.sock?.groupFetchAllParticipating() - return result - } catch (e) { - logger.error('Error group fetch all participating failed') - } - } - - // update promote demote remove - async groupParticipantsUpdate(id, users, action) { - try { - const res = await this.instance.sock?.groupParticipantsUpdate( - this.getWhatsAppId(id), - this.parseParticipants(users), - action - ) - return res - } catch (e) { - //console.log(e) - return { - error: true, - message: - 'unable to ' + - action + - ' some participants, check if you are admin in group or participants exists', - } - } - } - - // update group settings like - // only allow admins to send messages - async groupSettingUpdate(id, action) { - try { - const res = await this.instance.sock?.groupSettingUpdate( - this.getWhatsAppId(id), - action - ) - return res - } catch (e) { - //console.log(e) - return { - error: true, - message: - 'unable to ' + action + ' check if you are admin in group', - } - } - } - - async groupUpdateSubject(id, subject) { - try { - const res = await this.instance.sock?.groupUpdateSubject( - this.getWhatsAppId(id), - subject - ) - return res - } catch (e) { - //console.log(e) - return { - error: true, - message: - 'unable to update subject check if you are admin in group', - } - } - } - - async groupUpdateDescription(id, description) { - try { - const res = await this.instance.sock?.groupUpdateDescription( - this.getWhatsAppId(id), - description - ) - return res - } catch (e) { - //console.log(e) - return { - error: true, - message: - 'unable to update description check if you are admin in group', - } - } - } - - // update db document -> chat - async updateDb(object) { - try { - await Chat.updateOne({ key: this.key }, { chat: object }) - } catch (e) { - logger.error('Error updating document failed') - } - } - - async readMessage(msgObj) { - try { - const key = { - remoteJid: msgObj.remoteJid, - id: msgObj.id, - participant: msgObj?.participant // required when reading a msg from group - } - const res = await this.instance.sock?.readMessages([key]) - return res - } catch (e) { - logger.error('Error read message failed') - } - } - - async reactMessage(id, key, emoji) { - try { - const reactionMessage = { - react: { - text: emoji, // use an empty string to remove the reaction - key: key - } - } - const res = await this.instance.sock?.sendMessage( - this.getWhatsAppId(id), - reactionMessage - ) - return res - } catch (e) { - logger.error('Error react message failed') - } - } -} - -exports.WhatsAppInstance = WhatsAppInstance diff --git a/src/api/class/session.js b/src/api/class/session.js deleted file mode 100644 index 9e93fe14..00000000 --- a/src/api/class/session.js +++ /dev/null @@ -1,47 +0,0 @@ -/* eslint-disable no-unsafe-optional-chaining */ -const { WhatsAppInstance } = require('../class/instance') -const logger = require('pino')() -const config = require('../../config/config') - -class Session { - async restoreSessions() { - let restoredSessions = new Array() - let allCollections = [] - try { - const db = mongoClient.db('whatsapp-api') - const result = await db.listCollections().toArray() - result.forEach((collection) => { - allCollections.push(collection.name) - }) - - allCollections.map((key) => { - const query = {} - db.collection(key) - .find(query) - .toArray(async (err, result) => { - if (err) throw err - const webhook = !config.webhookEnabled - ? undefined - : config.webhookEnabled - const webhookUrl = !config.webhookUrl - ? undefined - : config.webhookUrl - const instance = new WhatsAppInstance( - key, - webhook, - webhookUrl - ) - await instance.init() - WhatsAppInstances[key] = instance - }) - restoredSessions.push(key) - }) - } catch (e) { - logger.error('Error restoring sessions') - logger.error(e) - } - return restoredSessions - } -} - -exports.Session = Session diff --git a/src/api/controllers/group.controller.js b/src/api/controllers/group.controller.js deleted file mode 100644 index a1a9ca91..00000000 --- a/src/api/controllers/group.controller.js +++ /dev/null @@ -1,123 +0,0 @@ -exports.create = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].createNewGroup( - req.body.name, - req.body.users - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.addNewParticipant = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].addNewParticipant( - req.body.id, - req.body.users - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.makeAdmin = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].makeAdmin( - req.body.id, - req.body.users - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.demoteAdmin = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].demoteAdmin( - req.body.id, - req.body.users - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.listAll = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].getAllGroups( - req.query.key - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.leaveGroup = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].leaveGroup(req.query.id) - return res.status(201).json({ error: false, data: data }) -} - -exports.getInviteCodeGroup = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].getInviteCodeGroup( - req.query.id - ) - return res - .status(201) - .json({ error: false, link: 'https://chat.whatsapp.com/' + data }) -} - -exports.getInstanceInviteCodeGroup = async (req, res) => { - const data = await WhatsAppInstances[ - req.query.key - ].getInstanceInviteCodeGroup(req.query.id) - return res - .status(201) - .json({ error: false, link: 'https://chat.whatsapp.com/' + data }) -} - -exports.getAllGroups = async (req, res) => { - const instance = WhatsAppInstances[req.query.key] - let data - try { - data = await instance.groupFetchAllParticipating() - } catch (error) { - data = {} - } - return res.json({ - error: false, - message: 'Instance fetched successfully', - instance_data: data, - }) -} - -exports.groupParticipantsUpdate = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].groupParticipantsUpdate( - req.body.id, - req.body.users, - req.body.action - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.groupSettingUpdate = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].groupSettingUpdate( - req.body.id, - req.body.action - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.groupUpdateSubject = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].groupUpdateSubject( - req.body.id, - req.body.subject - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.groupUpdateDescription = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].groupUpdateDescription( - req.body.id, - req.body.description - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.groupInviteInfo = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].groupGetInviteInfo( - req.body.code - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.groupJoin = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].groupAcceptInvite( - req.body.code - ) - return res.status(201).json({ error: false, data: data }) -} diff --git a/src/api/controllers/instance.controller.js b/src/api/controllers/instance.controller.js deleted file mode 100644 index 24550ede..00000000 --- a/src/api/controllers/instance.controller.js +++ /dev/null @@ -1,141 +0,0 @@ -const { WhatsAppInstance } = require('../class/instance') -const fs = require('fs') -const path = require('path') -const config = require('../../config/config') -const { Session } = require('../class/session') - -exports.init = async (req, res) => { - const key = req.query.key - const webhook = !req.query.webhook ? false : req.query.webhook - const webhookUrl = !req.query.webhookUrl ? null : req.query.webhookUrl - const appUrl = config.appUrl || req.protocol + '://' + req.headers.host - const instance = new WhatsAppInstance(key, webhook, webhookUrl) - const data = await instance.init() - WhatsAppInstances[data.key] = instance - res.json({ - error: false, - message: 'Initializing successfully', - key: data.key, - webhook: { - enabled: webhook, - webhookUrl: webhookUrl, - }, - qrcode: { - url: appUrl + '/instance/qr?key=' + data.key, - }, - browser: config.browser, - }) -} - -exports.qr = async (req, res) => { - try { - const qrcode = await WhatsAppInstances[req.query.key]?.instance.qr - res.render('qrcode', { - qrcode: qrcode, - }) - } catch { - res.json({ - qrcode: '', - }) - } -} - -exports.qrbase64 = async (req, res) => { - try { - const qrcode = await WhatsAppInstances[req.query.key]?.instance.qr - res.json({ - error: false, - message: 'QR Base64 fetched successfully', - qrcode: qrcode, - }) - } catch { - res.json({ - qrcode: '', - }) - } -} - -exports.info = async (req, res) => { - const instance = WhatsAppInstances[req.query.key] - let data - try { - data = await instance.getInstanceDetail(req.query.key) - } catch (error) { - data = {} - } - return res.json({ - error: false, - message: 'Instance fetched successfully', - instance_data: data, - }) -} - -exports.restore = async (req, res, next) => { - try { - const session = new Session() - let restoredSessions = await session.restoreSessions() - return res.json({ - error: false, - message: 'All instances restored', - data: restoredSessions, - }) - } catch (error) { - next(error) - } -} - -exports.logout = async (req, res) => { - let errormsg - try { - await WhatsAppInstances[req.query.key].instance?.sock?.logout() - } catch (error) { - errormsg = error - } - return res.json({ - error: false, - message: 'logout successfull', - errormsg: errormsg ? errormsg : null, - }) -} - -exports.delete = async (req, res) => { - let errormsg - try { - await WhatsAppInstances[key].deleteInstance(req.query.key) - delete WhatsAppInstances[req.query.key] - } catch (error) { - errormsg = error - } - return res.json({ - error: false, - message: 'Instance deleted successfully', - data: errormsg ? errormsg : null, - }) -} - -exports.list = async (req, res) => { - if (req.query.active) { - let instance = Object.keys(WhatsAppInstances).map(async (key) => - WhatsAppInstances[key].getInstanceDetail(key) - ) - let data = await Promise.all(instance) - return res.json({ - error: false, - message: 'All active instance', - data: data, - }) - } else { - let instance = [] - const db = mongoClient.db('whatsapp-api') - const result = await db.listCollections().toArray() - result.forEach((collection) => { - instance.push(collection.name) - }) - - return res.json({ - error: false, - message: 'All instance listed', - data: instance, - }) - } -} diff --git a/src/api/controllers/message.controller.js b/src/api/controllers/message.controller.js deleted file mode 100644 index b11da33f..00000000 --- a/src/api/controllers/message.controller.js +++ /dev/null @@ -1,124 +0,0 @@ -exports.Text = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].sendTextMessage( - req.body.id, - req.body.message - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.Image = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].sendMediaFile( - req.body.id, - req.file, - 'image', - req.body?.caption - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.Video = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].sendMediaFile( - req.body.id, - req.file, - 'video', - req.body?.caption - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.Audio = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].sendMediaFile( - req.body.id, - req.file, - 'audio' - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.Document = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].sendMediaFile( - req.body.id, - req.file, - 'document', - '', - req.body.filename - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.Mediaurl = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].sendUrlMediaFile( - req.body.id, - req.body.url, - req.body.type, // Types are [image, video, audio, document] - req.body.mimetype, // mimeType of mediaFile / Check Common mimetypes in `https://mzl.la/3si3and` - req.body.caption - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.Button = async (req, res) => { - // console.log(res.body) - const data = await WhatsAppInstances[req.query.key].sendButtonMessage( - req.body.id, - req.body.btndata - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.Contact = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].sendContactMessage( - req.body.id, - req.body.vcard - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.List = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].sendListMessage( - req.body.id, - req.body.msgdata - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.MediaButton = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].sendMediaButtonMessage( - req.body.id, - req.body.btndata - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.SetStatus = async (req, res) => { - const presenceList = [ - 'unavailable', - 'available', - 'composing', - 'recording', - 'paused', - ] - if (presenceList.indexOf(req.body.status) === -1) { - return res.status(400).json({ - error: true, - message: - 'status parameter must be one of ' + presenceList.join(', '), - }) - } - - const data = await WhatsAppInstances[req.query.key]?.setStatus( - req.body.status, - req.body.id - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.Read = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].readMessage(req.body.msg) - return res.status(201).json({ error: false, data: data }) -} - -exports.React = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].reactMessage(req.body.id, req.body.key, req.body.emoji) - return res.status(201).json({ error: false, data: data }) -} diff --git a/src/api/controllers/misc.controller.js b/src/api/controllers/misc.controller.js deleted file mode 100644 index 2efca0a0..00000000 --- a/src/api/controllers/misc.controller.js +++ /dev/null @@ -1,51 +0,0 @@ -exports.onWhatsapp = async (req, res) => { - // eslint-disable-next-line no-unsafe-optional-chaining - const data = await WhatsAppInstances[req.query.key]?.verifyId( - WhatsAppInstances[req.query.key]?.getWhatsAppId(req.query.id) - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.downProfile = async (req, res) => { - const data = await WhatsAppInstances[req.query.key]?.DownloadProfile( - req.query.id - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.getStatus = async (req, res) => { - const data = await WhatsAppInstances[req.query.key]?.getUserStatus( - req.query.id - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.blockUser = async (req, res) => { - const data = await WhatsAppInstances[req.query.key]?.blockUnblock( - req.query.id, - req.query.block_status - ) - if (req.query.block_status == 'block') { - return res - .status(201) - .json({ error: false, message: 'Contact Blocked' }) - } else - return res - .status(201) - .json({ error: false, message: 'Contact Unblocked' }) -} - -exports.updateProfilePicture = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].updateProfilePicture( - req.body.id, - req.body.url - ) - return res.status(201).json({ error: false, data: data }) -} - -exports.getUserOrGroupById = async (req, res) => { - const data = await WhatsAppInstances[req.query.key].getUserOrGroupById( - req.query.id - ) - return res.status(201).json({ error: false, data: data }) -} diff --git a/src/api/errors/api.error.js b/src/api/errors/api.error.js deleted file mode 100644 index d684e0a9..00000000 --- a/src/api/errors/api.error.js +++ /dev/null @@ -1,13 +0,0 @@ -const ExtendableError = require('../errors/extendable.error') - -class APIError extends ExtendableError { - constructor({ message, errors, status = 500 }) { - super({ - message, - errors, - status, - }) - } -} - -module.exports = APIError diff --git a/src/api/errors/extendable.error.js b/src/api/errors/extendable.error.js deleted file mode 100644 index 3ca85e1c..00000000 --- a/src/api/errors/extendable.error.js +++ /dev/null @@ -1,11 +0,0 @@ -class ExtendableError extends Error { - constructor({ message, errors, status }) { - super(message) - this.name = this.constructor.name - this.message = message - this.errors = errors - this.status = status - } -} - -module.exports = ExtendableError diff --git a/src/api/helper/connectMongoClient.js b/src/api/helper/connectMongoClient.js deleted file mode 100644 index e45375e9..00000000 --- a/src/api/helper/connectMongoClient.js +++ /dev/null @@ -1,20 +0,0 @@ -const { MongoClient } = require('mongodb') -const logger = require('pino')() - -module.exports = async function connectToCluster(uri) { - let mongoClient - - try { - mongoClient = new MongoClient(uri, { - useNewUrlParser: true, - useUnifiedTopology: true, - }) - logger.info('STATE: Connecting to MongoDB') - await mongoClient.connect() - logger.info('STATE: Successfully connected to MongoDB') - return mongoClient - } catch (error) { - logger.error('STATE: Connection to MongoDB failed!', error) - process.exit() - } -} diff --git a/src/api/helper/downloadMsg.js b/src/api/helper/downloadMsg.js deleted file mode 100644 index 44fa9aa7..00000000 --- a/src/api/helper/downloadMsg.js +++ /dev/null @@ -1,14 +0,0 @@ -const { downloadContentFromMessage } = require('@adiwajshing/baileys') - -module.exports = async function downloadMessage(msg, msgType) { - let buffer = Buffer.from([]) - try { - const stream = await downloadContentFromMessage(msg, msgType) - for await (const chunk of stream) { - buffer = Buffer.concat([buffer, chunk]) - } - } catch { - return console.log('error downloading file-message') - } - return buffer.toString('base64') -} diff --git a/src/api/helper/genVc.js b/src/api/helper/genVc.js deleted file mode 100644 index e0e24c11..00000000 --- a/src/api/helper/genVc.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = function generateVC(data) { - const result = - 'BEGIN:VCARD\n' + - 'VERSION:3.0\n' + - `FN:${data.fullName}\n` + - `ORG:${data.organization};\n` + - `TEL;type=CELL;type=VOICE;waid=${data.phoneNumber}:${data.phoneNumber}\n` + - 'END:VCARD' - - return result -} diff --git a/src/api/helper/mongoAuthState.js b/src/api/helper/mongoAuthState.js deleted file mode 100644 index 9d95512b..00000000 --- a/src/api/helper/mongoAuthState.js +++ /dev/null @@ -1,119 +0,0 @@ -const { proto } = require('@adiwajshing/baileys/WAProto') -const { - Curve, - signedKeyPair, -} = require('@adiwajshing/baileys/lib/Utils/crypto') -const { - generateRegistrationId, -} = require('@adiwajshing/baileys/lib/Utils/generics') -const { randomBytes } = require('crypto') - -const initAuthCreds = () => { - const identityKey = Curve.generateKeyPair() - return { - noiseKey: Curve.generateKeyPair(), - signedIdentityKey: identityKey, - signedPreKey: signedKeyPair(identityKey, 1), - registrationId: generateRegistrationId(), - advSecretKey: randomBytes(32).toString('base64'), - processedHistoryMessages: [], - nextPreKeyId: 1, - firstUnuploadedPreKeyId: 1, - accountSettings: { - unarchiveChats: false, - }, - } -} - -const BufferJSON = { - replacer: (k, value) => { - if ( - Buffer.isBuffer(value) || - value instanceof Uint8Array || - value?.type === 'Buffer' - ) { - return { - type: 'Buffer', - data: Buffer.from(value?.data || value).toString('base64'), - } - } - - return value - }, - - reviver: (_, value) => { - if ( - typeof value === 'object' && - !!value && - (value.buffer === true || value.type === 'Buffer') - ) { - const val = value.data || value.value - return typeof val === 'string' - ? Buffer.from(val, 'base64') - : Buffer.from(val || []) - } - - return value - }, -} - -module.exports = useMongoDBAuthState = async (collection) => { - const writeData = (data, id) => { - return collection.replaceOne( - { _id: id }, - JSON.parse(JSON.stringify(data, BufferJSON.replacer)), - { upsert: true } - ) - } - const readData = async (id) => { - try { - const data = JSON.stringify(await collection.findOne({ _id: id })) - return JSON.parse(data, BufferJSON.reviver) - } catch (error) { - return null - } - } - const removeData = async (id) => { - try { - await collection.deleteOne({ _id: id }) - } catch (_a) {} - } - const creds = (await readData('creds')) || (0, initAuthCreds)() - return { - state: { - creds, - keys: { - get: async (type, ids) => { - const data = {} - await Promise.all( - ids.map(async (id) => { - let value = await readData(`${type}-${id}`) - if (type === 'app-state-sync-key') { - value = - proto.Message.AppStateSyncKeyData.fromObject(data) - } - data[id] = value - }) - ) - return data - }, - set: async (data) => { - const tasks = [] - for (const category of Object.keys(data)) { - for (const id of Object.keys(data[category])) { - const value = data[category][id] - const key = `${category}-${id}` - tasks.push( - value ? writeData(value, key) : removeData(key) - ) - } - } - await Promise.all(tasks) - }, - }, - }, - saveCreds: () => { - return writeData(creds, 'creds') - }, - } -} diff --git a/src/api/helper/processbtn.js b/src/api/helper/processbtn.js deleted file mode 100644 index 191cddab..00000000 --- a/src/api/helper/processbtn.js +++ /dev/null @@ -1,31 +0,0 @@ -module.exports = function processButton(buttons) { - const preparedButtons = [] - - buttons.map((button) => { - if (button.type == 'replyButton') { - preparedButtons.push({ - quickReplyButton: { - displayText: button.title ?? '', - }, - }) - } - - if (button.type == 'callButton') { - preparedButtons.push({ - callButton: { - displayText: button.title ?? '', - phoneNumber: button.payload ?? '', - }, - }) - } - if (button.type == 'urlButton') { - preparedButtons.push({ - urlButton: { - displayText: button.title ?? '', - url: button.payload ?? '', - }, - }) - } - }) - return preparedButtons -} diff --git a/src/api/helper/sleep.js b/src/api/helper/sleep.js deleted file mode 100644 index ed2c4bf1..00000000 --- a/src/api/helper/sleep.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = function sleep(ms) { - return new Promise((resolve) => { - setTimeout(resolve, ms) - }) -} diff --git a/src/api/middlewares/error.js b/src/api/middlewares/error.js deleted file mode 100644 index a7b11a95..00000000 --- a/src/api/middlewares/error.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable no-unused-vars */ -const APIError = require('../../api/errors/api.error') - -const handler = (err, req, res, next) => { - const statusCode = err.statusCode ? err.statusCode : 500 - - res.setHeader('Content-Type', 'application/json') - res.status(statusCode) - res.json({ - error: true, - code: statusCode, - message: err.message, - }) -} - -exports.handler = handler - -exports.notFound = (req, res, next) => { - const err = new APIError({ - message: 'Not found', - status: 404, - }) - return handler(err, req, res) -} diff --git a/src/api/middlewares/keyCheck.js b/src/api/middlewares/keyCheck.js deleted file mode 100644 index c1f8acea..00000000 --- a/src/api/middlewares/keyCheck.js +++ /dev/null @@ -1,17 +0,0 @@ -function keyVerification(req, res, next) { - const key = req.query['key']?.toString() - if (!key) { - return res - .status(403) - .send({ error: true, message: 'no key query was present' }) - } - const instance = WhatsAppInstances[key] - if (!instance) { - return res - .status(403) - .send({ error: true, message: 'invalid key supplied' }) - } - next() -} - -module.exports = keyVerification diff --git a/src/api/middlewares/loginCheck.js b/src/api/middlewares/loginCheck.js deleted file mode 100644 index ae40cfe5..00000000 --- a/src/api/middlewares/loginCheck.js +++ /dev/null @@ -1,17 +0,0 @@ -function loginVerification(req, res, next) { - const key = req.query['key']?.toString() - if (!key) { - return res - .status(403) - .send({ error: true, message: 'no key query was present' }) - } - const instance = WhatsAppInstances[key] - if (!instance.instance?.online) { - return res - .status(401) - .send({ error: true, message: "phone isn't connected" }) - } - next() -} - -module.exports = loginVerification diff --git a/src/api/middlewares/tokenCheck.js b/src/api/middlewares/tokenCheck.js deleted file mode 100644 index 6e70cae0..00000000 --- a/src/api/middlewares/tokenCheck.js +++ /dev/null @@ -1,21 +0,0 @@ -const config = require('../../config/config') - -function tokenVerification(req, res, next) { - const bearer = req.headers.authorization - const token = bearer?.slice(7)?.toString() - if (!token) { - return res.status(403).send({ - error: true, - message: 'no bearer token header was present', - }) - } - - if (config.token !== token) { - return res - .status(403) - .send({ error: true, message: 'invalid bearer token supplied' }) - } - next() -} - -module.exports = tokenVerification diff --git a/src/api/models/chat.model.js b/src/api/models/chat.model.js deleted file mode 100644 index 5e11760b..00000000 --- a/src/api/models/chat.model.js +++ /dev/null @@ -1,16 +0,0 @@ -const mongoose = require('mongoose') - -const chatSchema = new mongoose.Schema({ - key: { - type: String, - required: [true, 'key is missing'], - unique: true, - }, - chat: { - type: Array, - }, -}) - -const Chat = mongoose.model('Chat', chatSchema) - -module.exports = Chat diff --git a/src/api/routes/group.route.js b/src/api/routes/group.route.js deleted file mode 100644 index 88aa25fc..00000000 --- a/src/api/routes/group.route.js +++ /dev/null @@ -1,44 +0,0 @@ -const express = require('express') -const controller = require('../controllers/group.controller') -const keyVerify = require('../middlewares/keyCheck') -const loginVerify = require('../middlewares/loginCheck') - -const router = express.Router() - -router.route('/create').post(keyVerify, loginVerify, controller.create) -router.route('/listall').get(keyVerify, loginVerify, controller.listAll) -router.route('/leave').get(keyVerify, loginVerify, controller.leaveGroup) - -router - .route('/inviteuser') - .post(keyVerify, loginVerify, controller.addNewParticipant) -router.route('/makeadmin').post(keyVerify, loginVerify, controller.makeAdmin) -router - .route('/demoteadmin') - .post(keyVerify, loginVerify, controller.demoteAdmin) -router - .route('/getinvitecode') - .get(keyVerify, loginVerify, controller.getInviteCodeGroup) -router - .route('/getinstanceinvitecode') - .get(keyVerify, loginVerify, controller.getInstanceInviteCodeGroup) -router - .route('/getallgroups') - .get(keyVerify, loginVerify, controller.getAllGroups) -router - .route('/participantsupdate') - .post(keyVerify, loginVerify, controller.groupParticipantsUpdate) -router - .route('/settingsupdate') - .post(keyVerify, loginVerify, controller.groupSettingUpdate) -router - .route('/updatesubject') - .post(keyVerify, loginVerify, controller.groupUpdateSubject) -router - .route('/updatedescription') - .post(keyVerify, loginVerify, controller.groupUpdateDescription) -router - .route('/inviteinfo') - .post(keyVerify, loginVerify, controller.groupInviteInfo) -router.route('/groupjoin').post(keyVerify, loginVerify, controller.groupJoin) -module.exports = router diff --git a/src/api/routes/index.js b/src/api/routes/index.js deleted file mode 100644 index 3f3acac2..00000000 --- a/src/api/routes/index.js +++ /dev/null @@ -1,14 +0,0 @@ -const express = require('express') -const router = express.Router() -const instanceRoutes = require('./instance.route') -const messageRoutes = require('./message.route') -const miscRoutes = require('./misc.route') -const groupRoutes = require('./group.route') - -router.get('/status', (req, res) => res.send('OK')) -router.use('/instance', instanceRoutes) -router.use('/message', messageRoutes) -router.use('/group', groupRoutes) -router.use('/misc', miscRoutes) - -module.exports = router diff --git a/src/api/routes/instance.route.js b/src/api/routes/instance.route.js deleted file mode 100644 index e357b1de..00000000 --- a/src/api/routes/instance.route.js +++ /dev/null @@ -1,16 +0,0 @@ -const express = require('express') -const controller = require('../controllers/instance.controller') -const keyVerify = require('../middlewares/keyCheck') -const loginVerify = require('../middlewares/loginCheck') - -const router = express.Router() -router.route('/init').get(controller.init) -router.route('/qr').get(keyVerify, controller.qr) -router.route('/qrbase64').get(keyVerify, controller.qrbase64) -router.route('/info').get(keyVerify, controller.info) -router.route('/restore').get(controller.restore) -router.route('/logout').delete(keyVerify, loginVerify, controller.logout) -router.route('/delete').delete(keyVerify, controller.delete) -router.route('/list').get(controller.list) - -module.exports = router diff --git a/src/api/routes/message.route.js b/src/api/routes/message.route.js deleted file mode 100644 index 62bbdba5..00000000 --- a/src/api/routes/message.route.js +++ /dev/null @@ -1,27 +0,0 @@ -const express = require('express') -const controller = require('../controllers/message.controller') -const keyVerify = require('../middlewares/keyCheck') -const loginVerify = require('../middlewares/loginCheck') -const multer = require('multer') - -const router = express.Router() -const storage = multer.memoryStorage() -const upload = multer({ storage: storage, inMemory: true }).single('file') - -router.route('/text').post(keyVerify, loginVerify, controller.Text) -router.route('/image').post(keyVerify, loginVerify, upload, controller.Image) -router.route('/video').post(keyVerify, loginVerify, upload, controller.Video) -router.route('/audio').post(keyVerify, loginVerify, upload, controller.Audio) -router.route('/doc').post(keyVerify, loginVerify, upload, controller.Document) -router.route('/mediaurl').post(keyVerify, loginVerify, controller.Mediaurl) -router.route('/button').post(keyVerify, loginVerify, controller.Button) -router.route('/contact').post(keyVerify, loginVerify, controller.Contact) -router.route('/list').post(keyVerify, loginVerify, controller.List) -router.route('/setstatus').put(keyVerify, loginVerify, controller.SetStatus) -router - .route('/mediabutton') - .post(keyVerify, loginVerify, controller.MediaButton) -router.route("/read").post(keyVerify, loginVerify, controller.Read) -router.route("/react").post(keyVerify, loginVerify, controller.React) - -module.exports = router diff --git a/src/api/routes/misc.route.js b/src/api/routes/misc.route.js deleted file mode 100644 index 56669a53..00000000 --- a/src/api/routes/misc.route.js +++ /dev/null @@ -1,18 +0,0 @@ -const express = require('express') -const controller = require('../controllers/misc.controller') -const keyVerify = require('../middlewares/keyCheck') -const loginVerify = require('../middlewares/loginCheck') - -const router = express.Router() - -router.route('/onwhatsapp').get(keyVerify, loginVerify, controller.onWhatsapp) -router.route('/downProfile').get(keyVerify, loginVerify, controller.downProfile) -router.route('/getStatus').get(keyVerify, loginVerify, controller.getStatus) -router.route('/blockUser').get(keyVerify, loginVerify, controller.blockUser) -router - .route('/updateProfilePicture') - .post(keyVerify, loginVerify, controller.updateProfilePicture) -router - .route('/getuserorgroupbyid') - .get(keyVerify, loginVerify, controller.getUserOrGroupById) -module.exports = router diff --git a/src/api/sessiondata/.gitkeep b/src/api/sessiondata/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/api/views/qrcode.ejs b/src/api/views/qrcode.ejs deleted file mode 100644 index fb50e7b7..00000000 --- a/src/api/views/qrcode.ejs +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - WhatsApp QrCode - - - -

Scan Code Below Using WhatsApp App

-
- -
- - \ No newline at end of file diff --git a/src/config/config.js b/src/config/config.js deleted file mode 100644 index fcc94d99..00000000 --- a/src/config/config.js +++ /dev/null @@ -1,78 +0,0 @@ -// Port number -const PORT = process.env.PORT || '3333' -const TOKEN = process.env.TOKEN || '' -const PROTECT_ROUTES = !!( - process.env.PROTECT_ROUTES && process.env.PROTECT_ROUTES === 'true' -) - -const RESTORE_SESSIONS_ON_START_UP = !!( - process.env.RESTORE_SESSIONS_ON_START_UP && - process.env.RESTORE_SESSIONS_ON_START_UP === 'true' -) - -const APP_URL = process.env.APP_URL || false - -const LOG_LEVEL = process.env.LOG_LEVEL - -const INSTANCE_MAX_RETRY_QR = process.env.INSTANCE_MAX_RETRY_QR || 2 - -const CLIENT_PLATFORM = process.env.CLIENT_PLATFORM || 'Whatsapp MD' -const CLIENT_BROWSER = process.env.CLIENT_BROWSER || 'Chrome' -const CLIENT_VERSION = process.env.CLIENT_VERSION || '4.0.0' - -// Enable or disable mongodb -const MONGODB_ENABLED = !!( - process.env.MONGODB_ENABLED && process.env.MONGODB_ENABLED === 'true' -) -// URL of the Mongo DB -const MONGODB_URL = - process.env.MONGODB_URL || 'mongodb://127.0.0.1:27017/WhatsAppInstance' -// Enable or disable webhook globally on project -const WEBHOOK_ENABLED = !!( - process.env.WEBHOOK_ENABLED && process.env.WEBHOOK_ENABLED === 'true' -) -// Webhook URL -const WEBHOOK_URL = process.env.WEBHOOK_URL -// Receive message content in webhook (Base64 format) -const WEBHOOK_BASE64 = !!( - process.env.WEBHOOK_BASE64 && process.env.WEBHOOK_BASE64 === 'true' -) -// allowed events which should be sent to webhook -const WEBHOOK_ALLOWED_EVENTS = process.env.WEBHOOK_ALLOWED_EVENTS?.split(',') || ['all'] -// Mark messages as seen -const MARK_MESSAGES_READ = !!( - process.env.MARK_MESSAGES_READ && process.env.MARK_MESSAGES_READ === 'true' -) - -module.exports = { - port: PORT, - token: TOKEN, - restoreSessionsOnStartup: RESTORE_SESSIONS_ON_START_UP, - appUrl: APP_URL, - log: { - level: LOG_LEVEL, - }, - instance: { - maxRetryQr: INSTANCE_MAX_RETRY_QR, - }, - mongoose: { - enabled: MONGODB_ENABLED, - url: MONGODB_URL, - options: { - // useCreateIndex: true, - useNewUrlParser: true, - useUnifiedTopology: true, - }, - }, - browser: { - platform: CLIENT_PLATFORM, - browser: CLIENT_BROWSER, - version: CLIENT_VERSION, - }, - webhookEnabled: WEBHOOK_ENABLED, - webhookUrl: WEBHOOK_URL, - webhookBase64: WEBHOOK_BASE64, - protectRoutes: PROTECT_ROUTES, - markMessagesRead: MARK_MESSAGES_READ, - webhookAllowedEvents: WEBHOOK_ALLOWED_EVENTS -} diff --git a/src/config/express.js b/src/config/express.js deleted file mode 100644 index d8435a2f..00000000 --- a/src/config/express.js +++ /dev/null @@ -1,24 +0,0 @@ -const express = require('express') -const path = require('path') -const exceptionHandler = require('express-exception-handler') -exceptionHandler.handle() -const app = express() -const error = require('../api/middlewares/error') -const tokenCheck = require('../api/middlewares/tokenCheck') -const { protectRoutes } = require('./config') - -app.use(express.json()) -app.use(express.json({ limit: '50mb' })) -app.use(express.urlencoded({ extended: true })) -app.set('view engine', 'ejs') -app.set('views', path.join(__dirname, '../api/views')) -global.WhatsAppInstances = {} - -const routes = require('../api/routes/') -if (protectRoutes) { - app.use(tokenCheck) -} -app.use('/', routes) -app.use(error.handler) - -module.exports = app diff --git a/src/controller/chat.ts b/src/controller/chat.ts new file mode 100644 index 00000000..e2474d58 --- /dev/null +++ b/src/controller/chat.ts @@ -0,0 +1,82 @@ +import { RequestHandler, } from 'express'; +import { body, validationResult } from 'express-validator'; +import { WAMediaUpload } from "@adiwajshing/baileys" + +import { createSession, getSession, sessionExists } from '../session.js'; + +const text: RequestHandler[] = [ + body('sessionid').notEmpty(), + body('to').notEmpty(), + body('text').notEmpty(), + async (req, res) => { + try { + const errors = validationResult(req); + if (!errors.isEmpty()) { + return res.status(400).json({ errors: errors.array() }); + } + + const { sessionid: sessionId, to, text } = req.body; + const sock = getSession(sessionId); + if (!sock) return res.status(400).send({ + error: true, + message: 'session not found' + }) + + const message = await sock.sendMessage(to, { text }); + return res.status(200).send({ + status: 200, + message, + }) + } + catch (e) { + console.log(e) + return res.status(400).send({ error: 'session already exists' }) + } + } +] + +const image: RequestHandler[] = [ + body('sessionid').notEmpty(), + body('to').notEmpty(), + body('image').notEmpty(), + body('caption').optional(), + async (req, res) => { + try { + interface ImageRequestBody { + sessionid: string; + to: string; + image: WAMediaUpload; + caption?: string; + } + + const errors = validationResult(req); + if (!errors.isEmpty()) { + return res.status(400).json({ errors: errors.array() }); + } + + const { sessionid: sessionId, to, image, caption }: ImageRequestBody = req.body; + const sock = getSession(sessionId); + if (!sock) return res.status(400).send({ + error: true, + message: 'session not found' + }) + + const message = await sock.sendMessage(to, { image, caption }); + return res.status(200).send({ + status: 200, + message, + }) + } + catch (e) { + console.log(e) + return res.status(400).send({ + error: true, + message: 'session already exists' + }) + } + } +] + +export { + text +} \ No newline at end of file diff --git a/src/controller/instance.ts b/src/controller/instance.ts new file mode 100644 index 00000000..bdfbeeef --- /dev/null +++ b/src/controller/instance.ts @@ -0,0 +1,96 @@ +import { RequestHandler } from 'express'; +import { createSession, getSession, sessionExists, bottle } from '../session.js'; +import { body, query, validationResult } from 'express-validator'; +import { qrHTML } from '../misc/qrcode.js'; + +const init: RequestHandler[] = [ + body('sessionid').notEmpty(), + body('webhook').optional().isURL(), + async (req, res) => { + try { + const errors = validationResult(req); + if (!errors.isEmpty()) { + return res.status(400).json({ errors: errors.array() }); + } + + const { sessionid: sessionId, webhook = "" } = req.body; + if (sessionExists(sessionId)) return res.send({ error: 'session already exists' }).status(400) + + const sock = new createSession({ sessionId, webhook }); + sock.create() + + return res.status(200).send({ + message: 'session created', + sessionId, + }); + } + catch (e) { + console.log(e) + return res.status(400).send({ error: 'session already exists' }) + } + } +] + +const qr: RequestHandler[] = [ + query('sessionid').notEmpty(), + async (req, res) => { + try { + const errors = validationResult(req); + if (!errors.isEmpty()) { + return res.status(400).json({ errors: errors.array() }); + } + + const sessionId = req.query['sessionid'] as string; + const sock = getSession(sessionId); + if (!sock) return res.status(400).send({ error: 'session not found' }) + + const qr = await sock.getQr() + if (!qr) return res.status(400).send({ error: 'qr not loaded or session invalid' }) + + if (qr === "connected") { + return res.status(200).send({ message: 'connected' }); + } + return res.status(200).send(qrHTML(qr, sessionId)); + } + catch (e) { + console.log(e) + return res.status(400).send({ error: 'session not found' }) + } + } +] + +const restore: RequestHandler[] = [ + query('sessionid').notEmpty(), + query('webhook').optional().isURL(), + async (req, res) => { + try { + const errors = validationResult(req); + if (!errors.isEmpty()) { + return res.status(400).json({ errors: errors.array() }); + } + + const { sessionid: sessionId, webhook = "" } = req.query as any; + if (sessionExists(sessionId)) return res.send({ error: 'session already exists' }).status(400) + + const sock = new createSession({ sessionId, webhook }); + sock.create() + + return res.status(200).send({ + message: 'session created', + sessionId, + }); + } + catch (e) { + console.log(e) + return res.status(400).send({ error: 'session already exists' }) + } + } +] + + + +export { + init, + qr, + restore +} \ No newline at end of file diff --git a/src/misc/extra.entity.ts b/src/misc/extra.entity.ts new file mode 100644 index 00000000..a57652b8 --- /dev/null +++ b/src/misc/extra.entity.ts @@ -0,0 +1,17 @@ +import { Entity, PrimaryGeneratedColumn, Column, Unique } from 'typeorm'; + +@Entity() +@Unique(["DBId", "key"]) +export class Extra { + @PrimaryGeneratedColumn() + DBId: number; + + @Column() + key: string; + + @Column() + qr: string; + + @Column() + webhook: string; +} \ No newline at end of file diff --git a/src/misc/qrcode.ts b/src/misc/qrcode.ts new file mode 100644 index 00000000..e7ec2538 --- /dev/null +++ b/src/misc/qrcode.ts @@ -0,0 +1,60 @@ +export function qrHTML(qrcode: string, session_key: string) { + return ` + + + + + + + + WhatsApp QrCode + + + + +
+
+

Scan Code Below Using WhatsApp App

+

+
+ +
+

+ ${session_key} +

+
+
+
+ + + +` +} \ No newline at end of file diff --git a/src/routes/chat.ts b/src/routes/chat.ts new file mode 100644 index 00000000..fd3bd02b --- /dev/null +++ b/src/routes/chat.ts @@ -0,0 +1,8 @@ +import express from "express"; +import { text } from "../controller/chat.js"; + +const route = express.Router() + +route.post('/text', text) + +export default route as express.Router diff --git a/src/routes/index.ts b/src/routes/index.ts new file mode 100644 index 00000000..f24e77c4 --- /dev/null +++ b/src/routes/index.ts @@ -0,0 +1,12 @@ +import express from "express"; +import chatRouter from "./chat.js" +import instanceRouter from "./instance.js" + +const router = express.Router() + +router.get('/status', (req, res) => res.send('OK')) + +router.use('/chat', chatRouter) +router.use('/instance', instanceRouter) + +export default router as express.Router diff --git a/src/routes/instance.ts b/src/routes/instance.ts new file mode 100644 index 00000000..2178e6d5 --- /dev/null +++ b/src/routes/instance.ts @@ -0,0 +1,10 @@ +import express from "express"; +import { init, qr, restore } from '../controller/instance.js'; + +const route = express.Router() + +route.post('/init', init) +route.get('/qr', qr) +route.get('/restore', restore) + +export default route as express.Router \ No newline at end of file diff --git a/src/server.js b/src/server.js deleted file mode 100644 index d18a0a34..00000000 --- a/src/server.js +++ /dev/null @@ -1,57 +0,0 @@ -const dotenv = require('dotenv') -const mongoose = require('mongoose') -const logger = require('pino')() -dotenv.config() - -const app = require('./config/express') -const config = require('./config/config') - -const { Session } = require('./api/class/session') -const connectToCluster = require('./api/helper/connectMongoClient') - -let server - -if (config.mongoose.enabled) { - mongoose.connect(config.mongoose.url, config.mongoose.options).then(() => { - logger.info('Connected to MongoDB') - }) -} - -server = app.listen(config.port, async () => { - logger.info(`Listening on port ${config.port}`) - global.mongoClient = await connectToCluster(config.mongoose.url) - if (config.restoreSessionsOnStartup) { - logger.info(`Restoring Sessions`) - const session = new Session() - let restoreSessions = await session.restoreSessions() - logger.info(`${restoreSessions.length} Session(s) Restored`) - } -}) - -const exitHandler = () => { - if (server) { - server.close(() => { - logger.info('Server closed') - process.exit(1) - }) - } else { - process.exit(1) - } -} - -const unexpectedErrorHandler = (error) => { - logger.error(error) - exitHandler() -} - -process.on('uncaughtException', unexpectedErrorHandler) -process.on('unhandledRejection', unexpectedErrorHandler) - -process.on('SIGTERM', () => { - logger.info('SIGTERM received') - if (server) { - server.close() - } -}) - -module.exports = server diff --git a/src/server.ts b/src/server.ts new file mode 100644 index 00000000..03cc2b26 --- /dev/null +++ b/src/server.ts @@ -0,0 +1,17 @@ +import express from 'express'; +import router from './routes/index.js'; + +const app = express(); + +app.use(express.json()); +app.use(express.urlencoded({ extended: true })); + +app.get('/', (req, res) => { + res.send('Hello World!'); +}) + +app.use("/", router) + +app.listen(3000, () => { + console.log('Server is running on port 3000'); +}) \ No newline at end of file diff --git a/src/session.ts b/src/session.ts new file mode 100644 index 00000000..af337f0a --- /dev/null +++ b/src/session.ts @@ -0,0 +1,155 @@ + +import +makeWASocket, { + WASocket, ConnectionState, + makeCacheableSignalKeyStore, DisconnectReason +} from '@adiwajshing/baileys' +import { Boom } from '@hapi/boom' +import { toDataURL } from 'qrcode'; +import pino from 'pino'; +import BaileysBottle from "baileys-bottle"; +import { Extra } from './misc/extra.entity.js'; +import { DataSource } from "typeorm"; +import { resolve, dirname } from 'path' + +const SESSION_ID = 'whatsapp-session'; + +type Session = WASocket & { + destroy: () => Promise; + getQr: () => Promise; + connectionState?: Partial + loggedIn?: boolean; +}; + +type createSessionOptions = { + sessionId: string; + webhook?: string | null; +}; + +const sessions = new Map(); +const __dirname = resolve(dirname('')); + +// @ts-ignore +export let bottle = await BaileysBottle.default.init({ + type: "sqlite", + database: "db.sqlite", + entities: [Extra], + synchronize: true, +}) + +export class createSession { + + logger: pino.Logger; + sessionId: string; + webhook: string; + configID: string; + sock!: WASocket | undefined; + _ds: DataSource; + + constructor(options: createSessionOptions) { + const { sessionId, webhook } = options; + this.logger = pino({ prettyPrint: true }); + this.webhook = webhook!; + this.sessionId = sessionId; + this.configID = `${SESSION_ID}-${this.sessionId}`; + } + + getQr = async () => { + const extraEntity = await this._ds.getRepository(Extra).findOne({ + where: { key: this.sessionId }, + }); + return extraEntity?.qr; + } + + destroy = async () => { + await this.sock?.logout() + sessions.delete(this.sessionId); + }; + + create = async () => { + const { auth, store, _ds } = await bottle.createStore(this.sessionId)!; + const { state, saveState } = await auth.useAuthHandle(); + this._ds = _ds; + + const entityExists = await this._ds.getRepository(Extra).findOne({ + where: { key: this.sessionId }, + }); + + if (!entityExists) { + this._ds.getRepository(Extra).insert({ + key: this.sessionId, + qr: '', + webhook: this.webhook, + }) + } + + // @ts-ignore + const sock = makeWASocket.default({ + auth: { + creds: state.creds, + keys: makeCacheableSignalKeyStore(state.keys, this.logger), + }, + logger: this.logger, + }) + this.sock = sock; + sessions.set(this.sessionId, { ...sock, destroy: this.destroy, loggedIn: false, getQr: this.getQr }); + store.bind(sock.ev); + sock.ev.process(async (events: any) => { + + if (events['messages.upsert']) { + const upsert = events['messages.upsert'] + console.log('recv messages ', JSON.stringify(upsert, undefined, 2)) + } + + if (events["creds.update"]) await saveState(); + + if (events["connection.update"]) { + const update = events["connection.update"]; + const { connection, lastDisconnect, qr } = update; + console.log(update) + if (qr) { + const qrData = await toDataURL(qr); + await setExtraDB(this.sessionId, qrData, this.webhook, _ds); + } + + connection === "open" + ? console.log("Connected") + : connection === "close" + ? (lastDisconnect?.error as Boom)?.output?.statusCode !== + DisconnectReason.loggedOut + ? this.create() + : console.log("Connection closed. You are logged out.") + : null; + if (connection === "open") { + sessions.set(this.sessionId, { ...sock, destroy: this.destroy, connectionState: update, loggedIn: true, getQr: this.getQr }); + await setExtraDB(this.sessionId, 'connected', this.webhook, _ds); + } + } + }); + + return this + }; +} + +export function getSession(sessionId: string) { + return sessions.get(sessionId); +} + +export async function deleteSession(sessionId: string) { + return sessions.get(sessionId)?.destroy(); +} + +export function sessionExists(sessionId: string) { + return sessions.has(sessionId); +} + +async function setExtraDB(sessionId: string, qr: string, webhook: string | null, _ds: any) { + const extraEntity = await _ds.getRepository(Extra).findOne({ + where: { key: sessionId }, + }); + if (extraEntity) { + extraEntity.qr = qr; + extraEntity.webhook = webhook; + await _ds.getRepository(Extra).save(extraEntity); + } +} diff --git a/tests/status.route.test.js b/tests/status.route.test.js deleted file mode 100644 index 87bfc7cb..00000000 --- a/tests/status.route.test.js +++ /dev/null @@ -1,43 +0,0 @@ -const request = require('supertest') -const assert = require('assert') -const app = require('../src/server') -const { protectRoutes } = require('../src/config/config') - -if (protectRoutes) { - describe('instance endpoints', () => { - it('should fail with no bearer token is present', (done) => { - request(app) - .get('/status') - .expect(403) - .then((res) => { - assert(res.body.message, 'Initializing successfully') - done() - }) - .catch((err) => done(err)) - }) - - it('should fail with bearer token is mismatch', (done) => { - request(app) - .get('/status') - .set('Authorization', `Bearer ${process.env.TOKEN}wrong`) - .expect(403) - .then((res) => { - assert(res.body.message, 'invalid bearer token supplied') - done() - }) - .catch((err) => done(err)) - }) - - it('should successfully when bearer token is present and matched', (done) => { - request(app) - .get('/status') - .set('Authorization', `Bearer ${process.env.TOKEN}`) - .expect(200) - .then((res) => { - assert(res.body, 'OK') - done() - }) - .catch((err) => done(err)) - }) - }) -} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..bdbbb9e7 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2018", + "module": "ES2022", + "moduleResolution": "Node", + "strict": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "declaration": false, + "experimentalDecorators": true, + "strictPropertyInitialization": false, + "emitDecoratorMetadata": true, + "skipLibCheck": true, + "allowJs": true, + "lib": ["ESNext"], + "outDir": "dist/", + + }, + "include": ["src/**/*.ts"] +} \ No newline at end of file diff --git a/whatsapp-api-nodejs.postman_collection.json b/whatsapp-api-nodejs.postman_collection.json deleted file mode 100644 index d225a172..00000000 --- a/whatsapp-api-nodejs.postman_collection.json +++ /dev/null @@ -1,1429 +0,0 @@ -{ - "info": { - "_postman_id": "9db85f5b-971f-4218-8f0b-7eca66651a01", - "name": "whatsapp-api-nodejs", - "description": "## **API** Documentation\n\n### whatsapp-api-nodejs\n\n[https://github.com/salman0ansari/whatsapp-api-nodejs](https://github.com/salman0ansari/whatsapp-api-nodejs)\n\nAn implementation of [Baileys](https://github.com/adiwajshing/Baileys/) as a simple RESTful API service with multi device support just `download`, `install`, and `start` using, `simple` as that.\n\nBuild with NodeJs + Express\n\n* * *\n\n## Legal Notice\n\n* This code is in no way affiliated, authorized, maintained, sponsored or endorsed by WA(WhatsApp) or any of its affiliates or subsidiaries.\n* The official WhatsApp website can be found at [https://whatsapp.com](https://whatsapp.com). \"WhatsApp\" as well as related names, marks, emblems and images are registered trademarks of their respective owners.\n* This is an independent and unofficial software Use at your own risk.\n* Do not spam people with this.\n \n\n* * *\n\n## Contact\n\nDeveloper: [https://github.com/salman0ansari](https://github.com/salman0ansari)\n\nEmail: salman0ansari@pm.me\n\nTelegram: @salman0ansari", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "Instance", - "item": [ - { - "name": "Init Instance", - "protocolProfileBehavior": { - "disableBodyPruning": true - }, - "request": { - "method": "GET", - "header": [], - "body": { - "mode": "raw", - "raw": "" - }, - "url": { - "raw": "{{baseUrl}}/instance/init?key=123&token=RANDOM_STRING_HERE", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "instance", - "init" - ], - "query": [ - { - "key": "webhook", - "value": "true", - "description": "Allow Webhook\n(Optional) ", - "disabled": true - }, - { - "key": "key", - "value": "123", - "description": "Custom Instance Key\n(Optional)" - }, - { - "key": "token", - "value": "RANDOM_STRING_HERE" - } - ] - }, - "description": "Init a new WhatsApp instance" - }, - "response": [] - }, - { - "name": "Scan QR", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/instance/qr?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "instance", - "qr" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Get an instance QrCode" - }, - "response": [] - }, - { - "name": "Get QR in Base64", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/instance/qrbase64?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "instance", - "qrbase64" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - } - }, - "response": [] - }, - { - "name": "Instance Info", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/instance/info?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "instance", - "info" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Get an instance info" - }, - "response": [] - }, - { - "name": "Restore All Instances", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/instance/restore", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "instance", - "restore" - ] - } - }, - "response": [] - }, - { - "name": "Delete Instance", - "request": { - "method": "DELETE", - "header": [], - "url": { - "raw": "{{baseUrl}}/instance/delete?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "instance", - "delete" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Delete an instance" - }, - "response": [] - }, - { - "name": "Logout Instance", - "request": { - "method": "DELETE", - "header": [], - "url": { - "raw": "{{baseUrl}}/instance/logout?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "instance", - "logout" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Logout WhatsApp session from mobile" - }, - "response": [] - }, - { - "name": "List All Sessions", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/instance/list", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "instance", - "list" - ], - "query": [ - { - "key": "active", - "value": "true", - "description": "List Active Instances\n(Optional) ", - "disabled": true - } - ] - }, - "description": "List all Instances" - }, - "response": [] - } - ] - }, - { - "name": "Message", - "item": [ - { - "name": "Send Text Message", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "urlencoded", - "urlencoded": [ - { - "key": "id", - "value": "", - "description": "Recipient Id or Group Id\n(Required)", - "type": "text" - }, - { - "key": "message", - "value": "", - "description": "Message to Send\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/message/text?key=bot", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "text" - ], - "query": [ - { - "key": "key", - "value": "bot", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Send a text message to WhatsApp User or Group" - }, - "response": [] - }, - { - "name": "Send Image Message", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "file", - "description": "Image you want to send\n(Required) \n", - "type": "file", - "src": [] - }, - { - "key": "id", - "value": "", - "description": "Recipient Id or Group Id\n(Required)", - "type": "text" - }, - { - "key": "caption", - "value": "", - "description": "Message Caption\n(Optional) ", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/message/image?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "image" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "id", - "value": "", - "disabled": true - }, - { - "key": "caption", - "value": "", - "disabled": true - } - ] - }, - "description": "Send an image message to WhatsApp User" - }, - "response": [] - }, - { - "name": "Send Video Message", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "file", - "description": "Video You Want to Send\n(Required)", - "type": "file", - "src": [] - }, - { - "key": "id", - "value": "", - "description": "Recipient Id or Group Id\n(Required)", - "type": "text" - }, - { - "key": "caption", - "value": "", - "description": "Message Caption\n(Optional) ", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/message/video?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "video" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Send a video message to WhatsApp User" - }, - "response": [] - }, - { - "name": "Send Audio Message", - "protocolProfileBehavior": { - "disabledSystemHeaders": {} - }, - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "file", - "description": "Audio You Want to Send\n(Required)", - "type": "file", - "src": [] - }, - { - "key": "id", - "value": "", - "description": "Recipient Id or Group Id\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/message/audio?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "audio" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Send an audio message to WhatsApp User" - }, - "response": [] - }, - { - "name": "Send Document Message", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "file", - "description": "Document You Want to Send\n(Required)", - "type": "file", - "src": [] - }, - { - "key": "id", - "value": "", - "description": "Recipient Id or Group Id\n(Required)", - "type": "text" - }, - { - "key": "filename", - "value": "", - "description": "Custom File Name\n(Optional)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/message/doc?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "doc" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Send a document message to WhatsApp User" - }, - "response": [] - }, - { - "name": "Send File URL", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "urlencoded", - "urlencoded": [ - { - "key": "id", - "value": "", - "description": "Recipient Id or Group Id\n(Required)", - "type": "text" - }, - { - "key": "url", - "value": "", - "description": "Direct URL of Media File\n(Required)", - "type": "text" - }, - { - "key": "type", - "value": "", - "description": "Message Type\n(Required)", - "type": "text" - }, - { - "key": "mimetype", - "value": "", - "description": "Mime Type \n(Sometimes Required)\n(Optional)\n\n", - "type": "text" - }, - { - "key": "caption", - "value": "", - "description": "Message Caption\n(Optional)\n", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/message/mediaurl?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "mediaurl" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Send a media message via a URL\n\n* Image\n* Video\n* Document" - }, - "response": [] - }, - { - "name": "Send Button(Template) Message", - "protocolProfileBehavior": { - "disabledSystemHeaders": { - "content-type": true - } - }, - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{ \n \"id\": \"\",\n \"btndata\": {\n \"text\": \"title Head\",\n \"buttons\": [\n {\n \"type\": \"replyButton\",\n \"title\": \"Reply this text (REPLY)\"\n },\n {\n \"type\": \"urlButton\",\n \"title\": \"Click me (URL)\",\n \"payload\": \"https://google.com\"\n },\n {\n \"type\": \"callButton\",\n \"title\": \"Click to call (CALL)\",\n \"payload\": \"918788889688\"\n }\n ],\n \"footerText\": \"title footer\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/message/button?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "button" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Send an interactive template message to an WhatsApp User" - }, - "response": [] - }, - { - "name": "Send Contact Message", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{ \n \"id\": \"\",\n \"vcard\": {\n \"fullName\": \"john doe\",\n \"displayName\": \"johndoe\",\n \"organization\": \"Men In Black\",\n \"phoneNumber\": \"919999999999\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/message/contact?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "contact" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Send an contact(vcard) message to an WhatsApp User" - }, - "response": [] - }, - { - "name": "Send List Message", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"id\": \"\",\n \"msgdata\": {\n \"buttonText\": \"Button Text\",\n \"text\": \"Middle Text\",\n \"title\": \"Head Title\",\n \"description\": \"Footer Description\",\n \"sections\": [\n {\n \"title\": \"title\",\n \"rows\": [\n {\n \"title\": \"Title Option 1\",\n \"description\": \"Option Description\",\n \"rowId\": \"string\"\n }\n ]\n }\n ],\n \"listType\": 0\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/message/list?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "list" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Send an list button message to WhatsApp User" - }, - "response": [] - }, - { - "name": "Set Status", - "request": { - "method": "PUT", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "status", - "value": "", - "description": "Status Value\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/message/setstatus?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "setstatus" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Send an list button message to WhatsApp User" - }, - "response": [] - }, - { - "name": "Send Button With Media", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"id\": \"\",\n \"btndata\": {\n \"text\": \"Title of Message\",\n \"buttons\": [\n {\n \"type\": \"replyButton\",\n \"title\": \"this button reply\"\n },\n {\n \"type\": \"callButton\",\n \"title\": \"this button calls\",\n \"payload\": \"91999999999\"\n }\n ],\n \"footerText\": \"Footer text\",\n \"image\": \"https://picsum.photos/536/354\",\n \"mediaType\": \"image\",\n \"mimeType\": \"image/jpeg\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/message/MediaButton?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "message", - "MediaButton" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Recipient Id or Group Id\n(Required)" - }, - { - "key": "", - "value": null, - "disabled": true - } - ] - }, - "description": "Send an interactive template message with media to WhatsApp User" - }, - "response": [] - } - ] - }, - { - "name": "Misc", - "item": [ - { - "name": "Is On Whatsapp?", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/misc/onwhatsapp?key={{instance_key}}&id=", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "misc", - "onwhatsapp" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "id", - "value": "", - "description": "User Whatsapp Id\n(Required)" - } - ] - }, - "description": "Check if a number is registered on WhatsApp" - }, - "response": [] - }, - { - "name": "Download Profile Pic", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/misc/downProfile?key={{instance_key}}&id=", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "misc", - "downProfile" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "id", - "value": "", - "description": "User Whatsapp Id\n(Required)" - } - ] - }, - "description": "Download Profile pic of an WhatsApp user" - }, - "response": [] - }, - { - "name": "Get User Status", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/misc/getStatus?key={{instance_key}}&id=", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "misc", - "getStatus" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "id", - "value": "", - "description": "User Id\n(Required)" - } - ] - }, - "description": "Get user status (about)." - }, - "response": [] - }, - { - "name": "Block/Unblock User", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/misc/blockUser?key={{instance_key}}&id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "misc", - "blockUser" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "id", - "value": null, - "description": "User Id\n(Required)" - } - ] - }, - "description": "Block Or Unblock User." - }, - "response": [] - }, - { - "name": "Update Profile Picture", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "id", - "value": "", - "description": "Your Id or Group Id\n(Required)", - "type": "text" - }, - { - "key": "url", - "value": "", - "description": "Direct Image URl\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/misc/updateProfilePicture?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "misc", - "updateProfilePicture" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Block Or Unblock User." - }, - "response": [] - } - ] - }, - { - "name": "Group", - "item": [ - { - "name": "Create Group", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/group/create?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "create" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}" - } - ] - }, - "description": "Create a group" - }, - "response": [] - }, - { - "name": "Leave Group", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/group/leave?key={{instance_key}}&id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "leave" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "id", - "value": null, - "description": "Group Id\n(Required)" - } - ] - }, - "description": "Leave a group by its ID" - }, - "response": [] - }, - { - "name": "Get All Groups", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/group/listall?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "listall" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "List all groups in which you are in" - }, - "response": [] - }, - { - "name": "Invite User", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "urlencoded", - "urlencoded": [ - { - "key": "id", - "value": "", - "description": "Group Id\n(Required)", - "type": "text" - }, - { - "key": "users", - "value": "", - "description": "Users Id\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/group/inviteuser?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "inviteuser" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Invite Users to Group" - }, - "response": [] - }, - { - "name": "Make Admin", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "urlencoded", - "urlencoded": [ - { - "key": "id", - "value": "", - "description": "Group Id\n(Required)", - "type": "text" - }, - { - "key": "users", - "value": "", - "description": "User Id\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/group/makeadmin?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "makeadmin" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Promote group users to admin" - }, - "response": [] - }, - { - "name": "Demote Admin", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "urlencoded", - "urlencoded": [ - { - "key": "id", - "value": "", - "description": "Group Id\n(Required)", - "type": "text" - }, - { - "key": "users", - "value": "", - "description": "User Id\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/group/demoteadmin?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "demoteadmin" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - } - ] - }, - "description": "Demote group admin" - }, - "response": [] - }, - { - "name": "Get Group Invite Code", - "protocolProfileBehavior": { - "disableBodyPruning": true - }, - "request": { - "method": "GET", - "header": [], - "body": { - "mode": "urlencoded", - "urlencoded": [] - }, - "url": { - "raw": "{{baseUrl}}/group/getinvitecode?key={{instance_key}}&id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "getinvitecode" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "id", - "value": null, - "description": "Group Id\n(Required)" - } - ] - }, - "description": "Get invite link of a group" - }, - "response": [] - }, - { - "name": "Get All Groups", - "protocolProfileBehavior": { - "disableBodyPruning": true - }, - "request": { - "method": "GET", - "header": [], - "body": { - "mode": "urlencoded", - "urlencoded": [] - }, - "url": { - "raw": "{{baseUrl}}/group/getallgroups?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "getallgroups" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "", - "value": null, - "disabled": true - } - ] - }, - "description": "Get invite link of a group" - }, - "response": [] - }, - { - "name": "Update Group Participants", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "id", - "value": "", - "description": "Group Id\n(Required)", - "type": "text" - }, - { - "key": "users", - "value": "", - "description": "Users\n(Required)", - "type": "text" - }, - { - "key": "action", - "value": "", - "description": "Action\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/group/participantsupdate?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "participantsupdate" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "", - "value": null, - "disabled": true - } - ] - }, - "description": "Get invite link of a group" - }, - "response": [] - }, - { - "name": "Update Group Setting", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "id", - "value": "", - "description": "Group Id\n(Required)", - "type": "text" - }, - { - "key": "action", - "value": "", - "description": "Action\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/group/settingsupdate?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "settingsupdate" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "", - "value": null, - "disabled": true - } - ] - }, - "description": "Get invite link of a group" - }, - "response": [] - }, - { - "name": "Update Group Subject", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "id", - "value": "", - "description": "Group Id\n(Required)", - "type": "text" - }, - { - "key": "subject", - "value": "", - "description": "Subject\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/group/updatesubject?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "updatesubject" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "", - "value": null, - "disabled": true - } - ] - }, - "description": "Get invite link of a group" - }, - "response": [] - }, - { - "name": "Update Group Description", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "id", - "value": "", - "description": "Group Id\n(Required)", - "type": "text" - }, - { - "key": "description", - "value": "", - "description": "Group Description\n(Required)", - "type": "text" - } - ] - }, - "url": { - "raw": "{{baseUrl}}/group/updatedescription?key={{instance_key}}", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "group", - "updatedescription" - ], - "query": [ - { - "key": "key", - "value": "{{instance_key}}", - "description": "Instance Key\n(Required)" - }, - { - "key": "", - "value": null, - "disabled": true - } - ] - }, - "description": "Get invite link of a group" - }, - "response": [] - } - ] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "variable": [ - { - "key": "baseUrl", - "value": "localhost:3333" - }, - { - "key": "instance_key", - "value": "123" - } - ] -} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 957ee668..00000000 --- a/yarn.lock +++ /dev/null @@ -1,3938 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@adiwajshing/baileys@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@adiwajshing/baileys/-/baileys-5.0.0.tgz#17a3e48dd67d0f684d09d55fb8fb931345803bb6" - integrity sha512-AeNyYLfw1nhCwc7hDlMajU9Zr5DK4zmEO8rdrmxUR1qUbmhSKOL6IzwZpyvPjsXyHvl+oPMbp5k8+PX2p6RlJg== - dependencies: - "@hapi/boom" "^9.1.3" - axios "^0.24.0" - futoin-hkdf "^1.5.1" - libsignal "git+https://github.com/adiwajshing/libsignal-node.git" - music-metadata "^7.12.3" - node-cache "^5.1.2" - pino "^7.0.0" - protobufjs "^6.11.3" - ws "^8.0.0" - -"@aws-crypto/ie11-detection@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz#9c39f4a5558196636031a933ec1b4792de959d6a" - integrity sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw== - dependencies: - tslib "^1.11.1" - -"@aws-crypto/sha256-browser@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz#741c9024df55ec59b51e5b1f5d806a4852699fb5" - integrity sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A== - dependencies: - "@aws-crypto/ie11-detection" "^2.0.0" - "@aws-crypto/sha256-js" "^2.0.0" - "@aws-crypto/supports-web-crypto" "^2.0.0" - "@aws-crypto/util" "^2.0.0" - "@aws-sdk/types" "^3.1.0" - "@aws-sdk/util-locate-window" "^3.0.0" - "@aws-sdk/util-utf8-browser" "^3.0.0" - tslib "^1.11.1" - -"@aws-crypto/sha256-js@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz#f1f936039bdebd0b9e2dd834d65afdc2aac4efcb" - integrity sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig== - dependencies: - "@aws-crypto/util" "^2.0.0" - "@aws-sdk/types" "^3.1.0" - tslib "^1.11.1" - -"@aws-crypto/sha256-js@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.2.tgz#c81e5d378b8a74ff1671b58632779986e50f4c99" - integrity sha512-iXLdKH19qPmIC73fVCrHWCSYjN/sxaAvZ3jNNyw6FclmHyjLKg0f69WlC9KTnyElxCR5MO9SKaG00VwlJwyAkQ== - dependencies: - "@aws-crypto/util" "^2.0.2" - "@aws-sdk/types" "^3.110.0" - tslib "^1.11.1" - -"@aws-crypto/supports-web-crypto@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz#9f02aafad8789cac9c0ab5faaebb1ab8aa841338" - integrity sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ== - dependencies: - tslib "^1.11.1" - -"@aws-crypto/util@^2.0.0", "@aws-crypto/util@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-2.0.2.tgz#adf5ff5dfbc7713082f897f1d01e551ce0edb9c0" - integrity sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA== - dependencies: - "@aws-sdk/types" "^3.110.0" - "@aws-sdk/util-utf8-browser" "^3.0.0" - tslib "^1.11.1" - -"@aws-sdk/abort-controller@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.193.0.tgz#af3ccc95a68ed1bae5918e5ba11ed1c0ab46c6f9" - integrity sha512-MYPBm5PWyKP+Tq37mKs5wDbyAyVMocF5iYmx738LYXBSj8A1V4LTFrvfd4U16BRC/sM0DYB9fBFJUQ9ISFRVYw== - dependencies: - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/client-cognito-identity@3.194.0": - version "3.194.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.194.0.tgz#be6c49ad0317d37c4f412aec2f862a97ff65e306" - integrity sha512-khDgkrrSC/2PFN7Sb8sUsvt6QTsU3s9vcizFULWc8H5OO58tTdzkoKuAa5XMVbSRQnnl6iQ4uv6bBglCC+OfSw== - dependencies: - "@aws-crypto/sha256-browser" "2.0.0" - "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/client-sts" "3.194.0" - "@aws-sdk/config-resolver" "3.193.0" - "@aws-sdk/credential-provider-node" "3.193.0" - "@aws-sdk/fetch-http-handler" "3.193.0" - "@aws-sdk/hash-node" "3.193.0" - "@aws-sdk/invalid-dependency" "3.193.0" - "@aws-sdk/middleware-content-length" "3.193.0" - "@aws-sdk/middleware-host-header" "3.193.0" - "@aws-sdk/middleware-logger" "3.193.0" - "@aws-sdk/middleware-recursion-detection" "3.193.0" - "@aws-sdk/middleware-retry" "3.193.0" - "@aws-sdk/middleware-serde" "3.193.0" - "@aws-sdk/middleware-signing" "3.193.0" - "@aws-sdk/middleware-stack" "3.193.0" - "@aws-sdk/middleware-user-agent" "3.193.0" - "@aws-sdk/node-config-provider" "3.193.0" - "@aws-sdk/node-http-handler" "3.193.0" - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/smithy-client" "3.193.0" - "@aws-sdk/types" "3.193.0" - "@aws-sdk/url-parser" "3.193.0" - "@aws-sdk/util-base64-browser" "3.188.0" - "@aws-sdk/util-base64-node" "3.188.0" - "@aws-sdk/util-body-length-browser" "3.188.0" - "@aws-sdk/util-body-length-node" "3.188.0" - "@aws-sdk/util-defaults-mode-browser" "3.193.0" - "@aws-sdk/util-defaults-mode-node" "3.193.0" - "@aws-sdk/util-user-agent-browser" "3.193.0" - "@aws-sdk/util-user-agent-node" "3.193.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.188.0" - tslib "^2.3.1" - -"@aws-sdk/client-sso@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.193.0.tgz#9ff78591e80a3bcbb10b807ee70dde7aa31f3332" - integrity sha512-NxDckym95mtimYp9uWRA1lcyJHDyS8OZEaDC+dZ/tt5wGyPoc3ftHZNWDLzZM1PUjzgo+XzjMBVkWMvk/SRSYw== - dependencies: - "@aws-crypto/sha256-browser" "2.0.0" - "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/config-resolver" "3.193.0" - "@aws-sdk/fetch-http-handler" "3.193.0" - "@aws-sdk/hash-node" "3.193.0" - "@aws-sdk/invalid-dependency" "3.193.0" - "@aws-sdk/middleware-content-length" "3.193.0" - "@aws-sdk/middleware-host-header" "3.193.0" - "@aws-sdk/middleware-logger" "3.193.0" - "@aws-sdk/middleware-recursion-detection" "3.193.0" - "@aws-sdk/middleware-retry" "3.193.0" - "@aws-sdk/middleware-serde" "3.193.0" - "@aws-sdk/middleware-stack" "3.193.0" - "@aws-sdk/middleware-user-agent" "3.193.0" - "@aws-sdk/node-config-provider" "3.193.0" - "@aws-sdk/node-http-handler" "3.193.0" - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/smithy-client" "3.193.0" - "@aws-sdk/types" "3.193.0" - "@aws-sdk/url-parser" "3.193.0" - "@aws-sdk/util-base64-browser" "3.188.0" - "@aws-sdk/util-base64-node" "3.188.0" - "@aws-sdk/util-body-length-browser" "3.188.0" - "@aws-sdk/util-body-length-node" "3.188.0" - "@aws-sdk/util-defaults-mode-browser" "3.193.0" - "@aws-sdk/util-defaults-mode-node" "3.193.0" - "@aws-sdk/util-user-agent-browser" "3.193.0" - "@aws-sdk/util-user-agent-node" "3.193.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.188.0" - tslib "^2.3.1" - -"@aws-sdk/client-sts@3.194.0": - version "3.194.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.194.0.tgz#ea4295346f9039cfcab5c73ed04808a9935bb060" - integrity sha512-duolI7KLvRLMrL0ZpiVvmhaC5stKcNp5tfJ7gUW24tyf+7ImAmk2odSMIgcq54EWQ3XppTKBhEGCjOJ9th7+Qg== - dependencies: - "@aws-crypto/sha256-browser" "2.0.0" - "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/config-resolver" "3.193.0" - "@aws-sdk/credential-provider-node" "3.193.0" - "@aws-sdk/fetch-http-handler" "3.193.0" - "@aws-sdk/hash-node" "3.193.0" - "@aws-sdk/invalid-dependency" "3.193.0" - "@aws-sdk/middleware-content-length" "3.193.0" - "@aws-sdk/middleware-endpoint" "3.193.0" - "@aws-sdk/middleware-host-header" "3.193.0" - "@aws-sdk/middleware-logger" "3.193.0" - "@aws-sdk/middleware-recursion-detection" "3.193.0" - "@aws-sdk/middleware-retry" "3.193.0" - "@aws-sdk/middleware-sdk-sts" "3.193.0" - "@aws-sdk/middleware-serde" "3.193.0" - "@aws-sdk/middleware-signing" "3.193.0" - "@aws-sdk/middleware-stack" "3.193.0" - "@aws-sdk/middleware-user-agent" "3.193.0" - "@aws-sdk/node-config-provider" "3.193.0" - "@aws-sdk/node-http-handler" "3.193.0" - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/smithy-client" "3.193.0" - "@aws-sdk/types" "3.193.0" - "@aws-sdk/url-parser" "3.193.0" - "@aws-sdk/util-base64-browser" "3.188.0" - "@aws-sdk/util-base64-node" "3.188.0" - "@aws-sdk/util-body-length-browser" "3.188.0" - "@aws-sdk/util-body-length-node" "3.188.0" - "@aws-sdk/util-defaults-mode-browser" "3.193.0" - "@aws-sdk/util-defaults-mode-node" "3.193.0" - "@aws-sdk/util-endpoints" "3.194.0" - "@aws-sdk/util-user-agent-browser" "3.193.0" - "@aws-sdk/util-user-agent-node" "3.193.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.188.0" - fast-xml-parser "4.0.11" - tslib "^2.3.1" - -"@aws-sdk/config-resolver@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.193.0.tgz#57248376671d8c18000388e944b190737c7b606f" - integrity sha512-HIjuv2A1glgkXy9g/A8bfsiz3jTFaRbwGZheoHFZod6iEQQEbbeAsBe3u2AZyzOrVLgs8lOvBtgU8XKSJWjDkw== - dependencies: - "@aws-sdk/signature-v4" "3.193.0" - "@aws-sdk/types" "3.193.0" - "@aws-sdk/util-config-provider" "3.188.0" - "@aws-sdk/util-middleware" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/credential-provider-cognito-identity@3.194.0": - version "3.194.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.194.0.tgz#a3f98b2381b95f372d5cd88a2cbcfe991b3bcc62" - integrity sha512-AAtnTap4SS0aDuLB8NsWuvAkbaCX8kh6QG+S4+hziPq3+OZtYq34QM8j52ojGyB99VU4dhJmxoExMayLOSTIJg== - dependencies: - "@aws-sdk/client-cognito-identity" "3.194.0" - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/credential-provider-env@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.193.0.tgz#73fc7a24aa2c5af5c5d6cdd723892acc85eeba9d" - integrity sha512-pRqZoIaqCdWB4JJdR6DqDn3u+CwKJchwiCPnRtChwC8KXCMkT4njq9J1bWG3imYeTxP/G06O1PDONEuD4pPtNQ== - dependencies: - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/credential-provider-imds@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.193.0.tgz#b06071ca5cc6f2f14de886a7dbff2cd386fc368c" - integrity sha512-jC7uT7uVpO/iitz49toHMGFKXQ2igWQQG2SKirREqDRaz5HSXwEP1V3rcOlNNyGIBPMggDjZnxYgJHqBXSq9Ag== - dependencies: - "@aws-sdk/node-config-provider" "3.193.0" - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/types" "3.193.0" - "@aws-sdk/url-parser" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/credential-provider-ini@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.193.0.tgz#b4f50067c1d34fbba0bc84aa52f7e6575573f429" - integrity sha512-JQ4tyeLjwsa9Jo95yTrLgFFspAP5GwaZDqDJArG98waKDzxhl7FeBs+N32+oux6WB7RKRB0svOK02nnoWnrjVg== - dependencies: - "@aws-sdk/credential-provider-env" "3.193.0" - "@aws-sdk/credential-provider-imds" "3.193.0" - "@aws-sdk/credential-provider-sso" "3.193.0" - "@aws-sdk/credential-provider-web-identity" "3.193.0" - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/shared-ini-file-loader" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/credential-provider-node@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.193.0.tgz#6777fb9b55edba8de752c2afa294f88333bb0b24" - integrity sha512-2E8yWVw1vLb6IumZxA0w4mes759YSCTHLdfp5nMBpn+d+Otz26mczKSe7xr7AaVONq+/sVPUl2GfTFTWM4B0eA== - dependencies: - "@aws-sdk/credential-provider-env" "3.193.0" - "@aws-sdk/credential-provider-imds" "3.193.0" - "@aws-sdk/credential-provider-ini" "3.193.0" - "@aws-sdk/credential-provider-process" "3.193.0" - "@aws-sdk/credential-provider-sso" "3.193.0" - "@aws-sdk/credential-provider-web-identity" "3.193.0" - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/shared-ini-file-loader" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/credential-provider-process@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.193.0.tgz#0093068d0d6770844ea48d0404ad1098d712588f" - integrity sha512-zpXxtQzQqkaUuFqmHW9dSkh9p/1k+XNKlwEkG8FTwAJNUWmy2ZMJv+8NTVn4s4vaRu7xJ1er9chspYr7mvxHlA== - dependencies: - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/shared-ini-file-loader" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/credential-provider-sso@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.193.0.tgz#0aa6f30e1e0766b8aec590fac1aa8121894e8368" - integrity sha512-jBFWreNFZUgnGyCkpxDGf+LrXTuzEfjYkJYti1HnnsUF4vF0PsVZS6/FQi1mDl3pqorrtgknI59ENnAhKVxtBg== - dependencies: - "@aws-sdk/client-sso" "3.193.0" - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/shared-ini-file-loader" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/credential-provider-web-identity@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.193.0.tgz#b11a023c1cf2a3ad8cbf356f186c13963976e95a" - integrity sha512-MIQY9KwLCBnRyIt7an4EtMrFQZz2HC1E8vQDdKVzmeQBBePhW61fnX9XDP9bfc3Ypg1NggLG00KBPEC88twLFg== - dependencies: - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/credential-providers@^3.186.0": - version "3.194.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.194.0.tgz#2bbbe264133731708906bf6e93740f397b54d501" - integrity sha512-pEwhG/W5Y/sEItXu3ulpuq3+nl9M3PDHzgtDfKbtvO8Mfhd8EucmHbTGHIcHdUow44E94tGIbxsnt239e9m/yg== - dependencies: - "@aws-sdk/client-cognito-identity" "3.194.0" - "@aws-sdk/client-sso" "3.193.0" - "@aws-sdk/client-sts" "3.194.0" - "@aws-sdk/credential-provider-cognito-identity" "3.194.0" - "@aws-sdk/credential-provider-env" "3.193.0" - "@aws-sdk/credential-provider-imds" "3.193.0" - "@aws-sdk/credential-provider-ini" "3.193.0" - "@aws-sdk/credential-provider-node" "3.193.0" - "@aws-sdk/credential-provider-process" "3.193.0" - "@aws-sdk/credential-provider-sso" "3.193.0" - "@aws-sdk/credential-provider-web-identity" "3.193.0" - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/shared-ini-file-loader" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/fetch-http-handler@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.193.0.tgz#e9a5d352ffd5d0047e5518d8dd7263ad07154ddd" - integrity sha512-UhIS2LtCK9hqBzYVon6BI8WebJW1KC0GGIL/Gse5bqzU9iAGgFLAe66qg9k+/h3Jjc5LNAYzqXNVizMwn7689Q== - dependencies: - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/querystring-builder" "3.193.0" - "@aws-sdk/types" "3.193.0" - "@aws-sdk/util-base64-browser" "3.188.0" - tslib "^2.3.1" - -"@aws-sdk/hash-node@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.193.0.tgz#38542c8666f386a4c7e97ec14ab35f9ece0a7d65" - integrity sha512-O2SLPVBjrCUo+4ouAdRUoHBYsyurO9LcjNZNYD7YQOotBTbVFA3cx7kTZu+K4B6kX7FDaGbqbE1C/T1/eg/r+w== - dependencies: - "@aws-sdk/types" "3.193.0" - "@aws-sdk/util-buffer-from" "3.188.0" - tslib "^2.3.1" - -"@aws-sdk/invalid-dependency@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.193.0.tgz#8892fb6d97b4270954d63b8c1d9caf561b00d991" - integrity sha512-54DCknekLwJAI1os76XJ8XCzfAH7BGkBGtlWk5WCNkZTfj3rf5RUiXz4uoKUMWE1rZmyMDoDDS1PBo+yTVKW5w== - dependencies: - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/is-array-buffer@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.188.0.tgz#2e969b2e799490e3bbd5008554aa346c58e3a9b6" - integrity sha512-n69N4zJZCNd87Rf4NzufPzhactUeM877Y0Tp/F3KiHqGeTnVjYUa4Lv1vLBjqtfjYb2HWT3NKlYn5yzrhaEwiQ== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/middleware-content-length@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.193.0.tgz#0923ffb330527793f647516e040d36a557f7bfb6" - integrity sha512-em0Sqo7O7DFOcVXU460pbcYuIjblDTZqK2YE62nQ0T+5Nbj+MSjuoite+rRRdRww9VqBkUROGKON45bUNjogtQ== - dependencies: - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/middleware-endpoint@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.193.0.tgz#9f79b42f828e8f8d281d4d3629acf2ceeca3636c" - integrity sha512-Inbpt7jcHGvzF7UOJOCxx9wih0+eAQYERikokidWJa7M405EJpVYq1mGbeOcQUPANU3uWF1AObmUUFhbkriHQw== - dependencies: - "@aws-sdk/middleware-serde" "3.193.0" - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/signature-v4" "3.193.0" - "@aws-sdk/types" "3.193.0" - "@aws-sdk/url-parser" "3.193.0" - "@aws-sdk/util-config-provider" "3.188.0" - "@aws-sdk/util-middleware" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/middleware-host-header@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.193.0.tgz#7da640d08c2ed9e166bb2010e15490448c17fc3d" - integrity sha512-aegzj5oRWd//lmfmkzRmgG2b4l3140v8Ey4QkqCxcowvAEX5a7rh23yuKaGtmiePwv2RQalCKz+tN6JXCm8g6Q== - dependencies: - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/middleware-logger@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.193.0.tgz#505a1905edd9e0417d7ba60bc1e203311c31e7b1" - integrity sha512-D/h1pU5tAcyJpJ8ZeD1Sta0S9QZPcxERYRBiJdEl8VUrYwfy3Cl1WJedVOmd5nG73ZLRSyHeXHewb/ohge3yKQ== - dependencies: - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/middleware-recursion-detection@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.193.0.tgz#ece646efb6af98aa085ca689e644d104c94cfc3d" - integrity sha512-fMWP76Q1GOb/9OzS1arizm6Dbfo02DPZ6xp7OoAN3PS6ybH3Eb47s/gP3jzgBPAITQacFj4St/4a06YWYrN3NA== - dependencies: - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/middleware-retry@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.193.0.tgz#d5efa38d2318b93d4b716c1db44f35feaa0f48ba" - integrity sha512-zTQkHLBQBJi6ns655WYcYLyLPc1tgbEYU080Oc8zlveLUqoDn1ogkcmNhG7XMeQuBvWZBYN7J3/wFaXlDzeCKg== - dependencies: - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/service-error-classification" "3.193.0" - "@aws-sdk/types" "3.193.0" - "@aws-sdk/util-middleware" "3.193.0" - tslib "^2.3.1" - uuid "^8.3.2" - -"@aws-sdk/middleware-sdk-sts@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.193.0.tgz#ddc49171822af6692a0052f01eef5ae6b2677b50" - integrity sha512-TafiDkeflUsnbNa89TLkDnAiRRp1gAaZLDAjt75AzriRKZnhtFfYUXWb+qAuN50T+CkJ/gZI9LHDZL5ogz/HxQ== - dependencies: - "@aws-sdk/middleware-signing" "3.193.0" - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/signature-v4" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/middleware-serde@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.193.0.tgz#b4e2851b11fe091a8ae19f06cbf51a70e9f5e43c" - integrity sha512-dH93EJYVztY+ZDPzSMRi9LfAZfKO+luH62raNy49hlNa4jiyE1Tc/+qwlmOEpfGsrtcZ9TgsON1uFF9sgBXXaA== - dependencies: - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/middleware-signing@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.193.0.tgz#f008b79b16b645cf8ac82d6780b1a591b6718890" - integrity sha512-obBoELGPf5ikvHYZwbzllLeuODiokdDfe92Ve2ufeOa/d8+xsmbqNzNdCTLNNTmr1tEIaEE7ngZVTOiHqAVhyw== - dependencies: - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/signature-v4" "3.193.0" - "@aws-sdk/types" "3.193.0" - "@aws-sdk/util-middleware" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/middleware-stack@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.193.0.tgz#bf1cb39b9f2a2da9c9579a22ff50a58726210bc3" - integrity sha512-Ix5d7gE6bZwFNIVf0dGnjYuymz1gjitNoAZDPpv1nEZlUMek/jcno5lmzWFzUZXY/azpbIyaPwq/wm/c69au5A== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/middleware-user-agent@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.193.0.tgz#c0afaa79341faf0559f94ecb658fd3d41ef9e3ae" - integrity sha512-0vT6F9NwYQK7ARUUJeHTUIUPnupsO3IbmjHSi1+clkssFlJm2UfmSGeafiWe4AYH3anATTvZEtcxX5DZT/ExbA== - dependencies: - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/node-config-provider@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.193.0.tgz#ffe76c0a92ba61f1979593f68260147cbbfd1072" - integrity sha512-5RLdjQLH69ISRG8TX9klSLOpEySXxj+z9E9Em39HRvw0/rDcd8poCTADvjYIOqRVvMka0z/hm+elvUTIVn/DRw== - dependencies: - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/shared-ini-file-loader" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/node-http-handler@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.193.0.tgz#cc7696d83727c4f137dacb8551c4517a8073c7a2" - integrity sha512-DP4BmFw64HOShgpAPEEMZedVnRmKKjHOwMEoXcnNlAkMXnYUFHiKvudYq87Q2AnSlT6OHkyMviB61gEvIk73dA== - dependencies: - "@aws-sdk/abort-controller" "3.193.0" - "@aws-sdk/protocol-http" "3.193.0" - "@aws-sdk/querystring-builder" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/property-provider@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.193.0.tgz#111a759301ff4f84e9462bf9bcb20efb86ea9922" - integrity sha512-IaDR/PdZjKlAeSq2E/6u6nkPsZF9wvhHZckwH7uumq4ocWsWXFzaT+hKpV4YZPHx9n+K2YV4Gn/bDedpz99W1Q== - dependencies: - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/protocol-http@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.193.0.tgz#9c1889ef1448fb462c47a231cad3262d5146bc5f" - integrity sha512-r0wbTwFJyXq0uiImI6giqG3g/RO1N/y4wwPA7qr7OC+KXJ0NkyVxIf6e7Vx8h06aM1ATtngbwJaMP59kVCp85A== - dependencies: - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/querystring-builder@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.193.0.tgz#f7d549ebd07912a2f96c0ab5d390b1941774ff05" - integrity sha512-PRaK6649iw0UO45UjUoiUzFcOKXZb8pMjjFJpqALpEvdZT3twxqhlPXujT7GWPKrSwO4uPLNnyYEtPY82wx2vw== - dependencies: - "@aws-sdk/types" "3.193.0" - "@aws-sdk/util-uri-escape" "3.188.0" - tslib "^2.3.1" - -"@aws-sdk/querystring-parser@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.193.0.tgz#e64805418cf19f391770eeebe5893b5cd6a7feb7" - integrity sha512-dGEPCe8SK4/td5dSpiaEI3SvT5eHXrbJWbLGyD4FL3n7WCGMy2xVWAB/yrgzD0GdLDjDa8L5vLVz6yT1P9i+hA== - dependencies: - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/service-error-classification@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.193.0.tgz#35f1f5c8351f59d937b904ba5d7d144f65fb9e83" - integrity sha512-bPnXVu8ErE1RfWVVQKc2TE7EuoImUi4dSPW9g80fGRzJdQNwXb636C+7OUuWvSDzmFwuBYqZza8GZjVd+rz2zQ== - -"@aws-sdk/shared-ini-file-loader@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.193.0.tgz#fc0e8d88bdebfbb98f39d3d459fd455c644e4272" - integrity sha512-hnvZup8RSpFXfah7Rrn6+lQJnAOCO+OiDJ2R/iMgZQh475GRQpLbu3cPhCOkjB14vVLygJtW8trK/0+zKq93bQ== - dependencies: - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/signature-v4@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.193.0.tgz#4b0fc29020a3e925f0cd8902297a9ccda6ae4e30" - integrity sha512-JEqqOB8wQZz6g1ERNUOIBFDFt8OJtz5G5Uh1CdkS5W66gyWnJEz/dE1hA2VTqqQwHGGEsIEV/hlzruU1lXsvFA== - dependencies: - "@aws-sdk/is-array-buffer" "3.188.0" - "@aws-sdk/types" "3.193.0" - "@aws-sdk/util-hex-encoding" "3.188.0" - "@aws-sdk/util-middleware" "3.193.0" - "@aws-sdk/util-uri-escape" "3.188.0" - tslib "^2.3.1" - -"@aws-sdk/smithy-client@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.193.0.tgz#0c89a5531652aca09ebca957d049b8b4c08745f1" - integrity sha512-BY0jhfW76vyXr7ODMaKO3eyS98RSrZgOMl6DTQV9sk7eFP/MPVlG7p7nfX/CDIgPBIO1z0A0i2CVIzYur9uGgQ== - dependencies: - "@aws-sdk/middleware-stack" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/types@3.193.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.193.0.tgz#a2079ccda7312c7ba535b4379c97980141948fd9" - integrity sha512-LV/wcPolRZKORrcHwkH59QMCkiDR5sM+9ZtuTxvyUGG2QFW/kjoxs08fUF10OWNJMrotBI+czDc5QJRgN8BlAw== - -"@aws-sdk/url-parser@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.193.0.tgz#0a833c2e0648d699abf7133ee5564e8fee9ead35" - integrity sha512-hwD1koJlOu2a6GvaSbNbdo7I6a3tmrsNTZr8bCjAcbqpc5pDThcpnl/Uaz3zHmMPs92U8I6BvWoK6pH8By06qw== - dependencies: - "@aws-sdk/querystring-parser" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/util-base64-browser@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-browser/-/util-base64-browser-3.188.0.tgz#581c85dc157aff88ca81e42d9c79d87c95db8d03" - integrity sha512-qlH+5NZBLiyKziL335BEPedYxX6j+p7KFRWXvDQox9S+s+gLCayednpK+fteOhBenCcR9fUZOVuAPScy1I8qCg== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/util-base64-node@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-node/-/util-base64-node-3.188.0.tgz#1d2413f68c8ad1cca0903fc11d92af88ba70e14d" - integrity sha512-r1dccRsRjKq+OhVRUfqFiW3sGgZBjHbMeHLbrAs9jrOjU2PTQ8PSzAXLvX/9lmp7YjmX17Qvlsg0NCr1tbB9OA== - dependencies: - "@aws-sdk/util-buffer-from" "3.188.0" - tslib "^2.3.1" - -"@aws-sdk/util-body-length-browser@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz#e1d949318c10a621b38575a9ef01e39f9857ddb0" - integrity sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/util-body-length-node@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.188.0.tgz#3fc2a820b9be0efcbdf962d8f980b9000b98ddba" - integrity sha512-XwqP3vxk60MKp4YDdvDeCD6BPOiG2e+/Ou4AofZOy5/toB6NKz2pFNibQIUg2+jc7mPMnGnvOW3MQEgSJ+gu/Q== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/util-buffer-from@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.188.0.tgz#a062ccd990571df4353990e8b78aebec5a14547d" - integrity sha512-NX1WXZ8TH20IZb4jPFT2CnLKSqZWddGxtfiWxD9M47YOtq/SSQeR82fhqqVjJn4P8w2F5E28f+Du4ntg/sGcxA== - dependencies: - "@aws-sdk/is-array-buffer" "3.188.0" - tslib "^2.3.1" - -"@aws-sdk/util-config-provider@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.188.0.tgz#f7a365e6cbfe728c1224f0b39926636619b669e0" - integrity sha512-LBA7tLbi7v4uvbOJhSnjJrxbcRifKK/1ZVK94JTV2MNSCCyNkFotyEI5UWDl10YKriTIUyf7o5cakpiDZ3O4xg== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/util-defaults-mode-browser@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.193.0.tgz#3d387441ee155fcee0acf40a536609c67175ace5" - integrity sha512-9riQKFrSJcsNAMnPA/3ltpSxNykeO20klE/UKjxEoD7UWjxLwsPK22UJjFwMRaHoAFcZD0LU/SgPxbC0ktCYCg== - dependencies: - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/types" "3.193.0" - bowser "^2.11.0" - tslib "^2.3.1" - -"@aws-sdk/util-defaults-mode-node@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.193.0.tgz#bf88796f1ea96988a91f580ddb09710b6608a763" - integrity sha512-occQmckvPRiM4YQIZnulfKKKjykGKWloa5ByGC5gOEGlyeP9zJpfs4zc/M2kArTAt+d2r3wkBtsKe5yKSlVEhA== - dependencies: - "@aws-sdk/config-resolver" "3.193.0" - "@aws-sdk/credential-provider-imds" "3.193.0" - "@aws-sdk/node-config-provider" "3.193.0" - "@aws-sdk/property-provider" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/util-endpoints@3.194.0": - version "3.194.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.194.0.tgz#0cd08a96eebf85e7d250d7dfea19dd0e79a7848a" - integrity sha512-G+DGC3Zx0GnQpt4DpRmVcCfliNxf3nwBtZ3JIdCptkUZgDEpLYzOfjbf3bUyPTQh+oGHeqfnVAF+rFjTnYql3A== - dependencies: - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/util-hex-encoding@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.188.0.tgz#c2d8b02b952db58acbd5f53718109657c69c460f" - integrity sha512-QyWovTtjQ2RYxqVM+STPh65owSqzuXURnfoof778spyX4iQ4z46wOge1YV2ZtwS8w5LWd9eeVvDrLu5POPYOnA== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/util-locate-window@^3.0.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.188.0.tgz#0bef2b4d932d1401bd78dc1ddd258b14a3652f96" - integrity sha512-SxobBVLZkkLSawTCfeQnhVX3Azm9O+C2dngZVe1+BqtF8+retUbVTs7OfYeWBlawVkULKF2e781lTzEHBBjCzw== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/util-middleware@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.193.0.tgz#ea1e30491c824c99748814d837ef4c484afc374f" - integrity sha512-+aC6pmkcGgpxaMWCH/FXTsGWl2W342oQGs1OYKGi+W8z9UguXrqamWjdkdMqgunvj9qOEG2KBMKz1FWFFZlUyA== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/util-uri-escape@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.188.0.tgz#6dbd4322f6cdc3252a75c6f729e1082369c468c0" - integrity sha512-4Y6AYZMT483Tiuq8dxz5WHIiPNdSFPGrl6tRTo2Oi2FcwypwmFhqgEGcqxeXDUJktvaCBxeA08DLr/AemVhPCg== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/util-user-agent-browser@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.193.0.tgz#64f290e7673271a3b11cd217beed7f1aab260ba2" - integrity sha512-1EkGYsUtOMEyJG/UBIR4PtmO3lVjKNoUImoMpLtEucoGbWz5RG9zFSwLevjFyFs5roUBFlxkSpTMo8xQ3aRzQg== - dependencies: - "@aws-sdk/types" "3.193.0" - bowser "^2.11.0" - tslib "^2.3.1" - -"@aws-sdk/util-user-agent-node@3.193.0": - version "3.193.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.193.0.tgz#2d29afa708383b264eb85a4a72a4faf4892e033d" - integrity sha512-G/2/1cSgsxVtREAm8Eq8Duib5PXzXknFRHuDpAxJ5++lsJMXoYMReS278KgV54cojOkAVfcODDTqmY3Av0WHhQ== - dependencies: - "@aws-sdk/node-config-provider" "3.193.0" - "@aws-sdk/types" "3.193.0" - tslib "^2.3.1" - -"@aws-sdk/util-utf8-browser@3.188.0", "@aws-sdk/util-utf8-browser@^3.0.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz#484762bd600401350e148277731d6744a4a92225" - integrity sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q== - dependencies: - tslib "^2.3.1" - -"@aws-sdk/util-utf8-node@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.188.0.tgz#935bc58a71f2792ac6a4ec881f72bf9ceee008b4" - integrity sha512-hCgP4+C0Lekjpjt2zFJ2R/iHes5sBGljXa5bScOFAEkRUc0Qw0VNgTv7LpEbIOAwGmqyxBoCwBW0YHPW1DfmYQ== - dependencies: - "@aws-sdk/util-buffer-from" "3.188.0" - tslib "^2.3.1" - -"@eslint/eslintrc@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" - integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.4.0" - globals "^13.15.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@hapi/boom@^9.1.3": - version "9.1.4" - resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" - integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/hoek@9.x.x": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" - integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== - -"@humanwhocodes/config-array@^0.11.6": - version "0.11.6" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.6.tgz#6a51d603a3aaf8d4cf45b42b3f2ac9318a4adc4b" - integrity sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@tokenizer/token@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" - integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== - -"@types/long@^4.0.0", "@types/long@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/node@*", "@types/node@>=13.7.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" - integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== - -"@types/node@^10.1.0": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - -"@types/webidl-conversions@*": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz#e33bc8ea812a01f63f90481c666334844b12a09e" - integrity sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q== - -"@types/whatwg-url@^8.2.1": - version "8.2.1" - resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.1.tgz#f1aac222dab7c59e011663a0cb0a3117b2ef05d4" - integrity sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ== - dependencies: - "@types/node" "*" - "@types/webidl-conversions" "*" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" - integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -append-field@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" - integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -asap@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -atomic-sleep@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" - integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== - -axios@^0.24.0: - version "0.24.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6" - integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA== - dependencies: - follow-redirects "^1.14.4" - -axios@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" - integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -bowser@^2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" - integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bson@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.0.tgz#7874a60091ffc7a45c5dd2973b5cad7cded9718a" - integrity sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA== - dependencies: - buffer "^5.6.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -busboy@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -cheerio-select@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" - integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== - dependencies: - boolbase "^1.0.0" - css-select "^5.1.0" - css-what "^6.1.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - -cheerio@1.0.0-rc.11: - version "1.0.0-rc.11" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.11.tgz#1be84be1a126958366bcc57a11648cd9b30a60c2" - integrity sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag== - dependencies: - cheerio-select "^2.1.0" - dom-serializer "^2.0.0" - domhandler "^5.0.3" - domutils "^3.0.1" - htmlparser2 "^8.0.1" - parse5 "^7.0.0" - parse5-htmlparser2-tree-adapter "^7.0.0" - tslib "^2.4.0" - -chokidar@3.5.3, chokidar@^3.5.2: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cli-truncate@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" - integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== - dependencies: - slice-ansi "^5.0.0" - string-width "^5.0.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone@2.x: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" - integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== - dependencies: - color-convert "^2.0.1" - color-string "^1.9.0" - -colorette@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^9.4.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" - integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== - -component-emitter@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@^1.0.4, content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -cookiejar@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" - integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cross-fetch@3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -curve25519-js@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/curve25519-js/-/curve25519-js-0.0.4.tgz#e6ad967e8cd284590d657bbfc90d8b50e49ba060" - integrity sha512-axn2UMEnkhyDUPWOwVKBMVIzSQy2ejH2xRGy1wq81dqRwApXfIzfbE3hIX0ZRFBIihf/KDqK158DLwESu4AK1w== - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4.3.4, debug@4.x, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -denque@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" - integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-libc@^2.0.0, detect-libc@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" - integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== - -dezalgo@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - integrity sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ== - dependencies: - asap "^2.0.0" - wrappy "1" - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -dijkstrajs@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257" - integrity sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg== - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -domutils@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" - integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.1" - -dotenv@^16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" - integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== - -duplexify@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -ejs@^3.1.7: - version "3.1.8" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" - integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== - dependencies: - jake "^10.8.5" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -encode-utf8@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" - integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -entities@^4.2.0, entities@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4" - integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-config-prettier@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@^8.28.0: - version "8.28.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.28.0.tgz#81a680732634677cc890134bcdd9fdfea8e63d6e" - integrity sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ== - dependencies: - "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.11.6" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.15.0" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-sdsl "^4.1.4" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -execa@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -expand-template@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== - -express-exception-handler@^1.3.23: - version "1.3.23" - resolved "https://registry.yarnpkg.com/express-exception-handler/-/express-exception-handler-1.3.23.tgz#105a16ea072e1255326a25a84420830977f31082" - integrity sha512-2L7HA2wBL2emPeCO9P9EYKLV4/+8eq1ENMfp9nv321kJGddbcNHbvJG7zLlvz91lSlOJav2+kdYKWbrl5KiOVw== - -express@^4.18.2: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-redact@^3.0.0, fast-redact@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.1.tgz#790fcff8f808c2e12fabbfb2be5cb2deda448fa0" - integrity sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A== - -fast-safe-stringify@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - -fast-xml-parser@4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz#42332a9aca544520631c8919e6ea871c0185a985" - integrity sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA== - dependencies: - strnum "^1.0.5" - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-type@16.5.3: - version "16.5.3" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.3.tgz#474b7e88c74724046abb505e9b8ed4db30c4fc06" - integrity sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A== - dependencies: - readable-web-to-node-stream "^3.0.0" - strtok3 "^6.2.4" - token-types "^4.1.1" - -filelist@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== - -follow-redirects@^1.14.4, follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -formidable@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.0.1.tgz#4310bc7965d185536f9565184dee74fbb75557ff" - integrity sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ== - dependencies: - dezalgo "1.0.3" - hexoid "1.0.0" - once "1.4.0" - qs "6.9.3" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -futoin-hkdf@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/futoin-hkdf/-/futoin-hkdf-1.5.1.tgz#141f00427bc9950b38a42aa786b99c318b9b688d" - integrity sha512-g5d0Qp7ks55hYmYmfqn4Nz18XH49lcCR+vvIvHT92xXnsJaGZmY1EtWQWilJ6BQp57heCIXM/rRo+AFep8hGgg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== - dependencies: - type-fest "^0.20.2" - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hexoid@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" - integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== - -htmlparser2@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" - integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - domutils "^3.0.1" - entities "^4.3.0" - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== - -husky@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236" - integrity sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.13, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore-by-default@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -jake@^10.8.5: - version "10.8.5" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" - integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.1" - minimatch "^3.0.4" - -js-sdsl@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6" - integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== - -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -kareem@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.4.1.tgz#7d81ec518204a48c1cb16554af126806c3cd82b0" - integrity sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -"libsignal@git+https://github.com/adiwajshing/libsignal-node.git": - version "2.0.1" - uid "11dbd962ea108187c79a7c46fe4d6f790e23da97" - resolved "git+https://github.com/adiwajshing/libsignal-node.git#11dbd962ea108187c79a7c46fe4d6f790e23da97" - dependencies: - curve25519-js "^0.0.4" - protobufjs "6.8.8" - -lilconfig@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" - integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== - -link-preview-js@^2.1.13: - version "2.1.19" - resolved "https://registry.yarnpkg.com/link-preview-js/-/link-preview-js-2.1.19.tgz#22c3d9574942de672acb7ec53e98ad03e88fadcc" - integrity sha512-ZXiacDuzpNLY/Xx7R3njpI07K2VWZqe/kANwc4RdRPTc+uAkBHW3hGHTeN7upnyrwV7hfwR79CjRXo0fvfGH5A== - dependencies: - abort-controller "^3.0.0" - cheerio "1.0.0-rc.11" - cross-fetch "3.1.5" - url "0.11.0" - -lint-staged@^13.0.4: - version "13.0.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.4.tgz#c4b4391280c35165b805ad43304ba01f733067a0" - integrity sha512-HxlHCXoYRsq9QCby5wFozmZW00hMs/9e3l+/dz6Qr8Kle4UH0kJTdABAbqhzG+3pcG6QjL9kz7NgGBfph+a5dw== - dependencies: - cli-truncate "^3.1.0" - colorette "^2.0.19" - commander "^9.4.1" - debug "^4.3.4" - execa "^6.1.0" - lilconfig "2.0.6" - listr2 "^5.0.5" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-inspect "^1.12.2" - pidtree "^0.6.0" - string-argv "^0.3.1" - yaml "^2.1.3" - -listr2@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.5.tgz#4651a940d12b984abecfae4450e40edd5695f808" - integrity sha512-DpBel6fczu7oQKTXMekeprc0o3XDgGMkD7JNYyX+X0xbwK+xgrx9dcyKoXKqpLSUvAWfmoePS7kavniOcq3r4w== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.19" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.6" - through "^2.3.8" - wrap-ansi "^7.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -media-typer@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" - integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== - -memory-pager@^1.0.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" - integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -methods@^1.1.2, methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - -mkdirp@^0.5.4: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mocha@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.1.0.tgz#dbf1114b7c3f9d0ca5de3133906aea3dfc89ef7a" - integrity sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -mongodb-connection-string-url@^2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz#1ee2496f4c4eae64f63c4b2d512aebc89996160a" - integrity sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w== - dependencies: - "@types/whatwg-url" "^8.2.1" - whatwg-url "^11.0.0" - -mongodb@4.11.0: - version "4.11.0" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.11.0.tgz#d28fdc7509f24d0d274f456529441fa3e570415c" - integrity sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg== - dependencies: - bson "^4.7.0" - denque "^2.1.0" - mongodb-connection-string-url "^2.5.4" - socks "^2.7.1" - optionalDependencies: - "@aws-sdk/credential-providers" "^3.186.0" - saslprep "^1.0.3" - -mongodb@^4.12.1: - version "4.12.1" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.12.1.tgz#224eb39b8784af835b515aa687c6010cecaabb1a" - integrity sha512-koT87tecZmxPKtxRQD8hCKfn+ockEL2xBiUvx3isQGI6mFmagWt4f4AyCE9J4sKepnLhMacoCTQQA6SLAI2L6w== - dependencies: - bson "^4.7.0" - mongodb-connection-string-url "^2.5.4" - socks "^2.7.1" - optionalDependencies: - "@aws-sdk/credential-providers" "^3.186.0" - saslprep "^1.0.3" - -mongoose@^6.7.4: - version "6.7.4" - resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.7.4.tgz#08d8e073945126cb702028c3ff4b02d80f9f0193" - integrity sha512-0LWMrOa5U43cR3I/iRPnmyedoa6T8+QPxmFYdPgx4WAS0CdbSbOzAFSKeU6bndUY6cs4VkxKZGcuDM0twystCg== - dependencies: - bson "^4.7.0" - kareem "2.4.1" - mongodb "4.11.0" - mpath "0.9.0" - mquery "4.0.3" - ms "2.1.3" - sift "16.0.1" - -mpath@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904" - integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== - -mquery@4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.3.tgz#4d15f938e6247d773a942c912d9748bd1965f89d" - integrity sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA== - dependencies: - debug "4.x" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multer@^1.4.5-lts.1: - version "1.4.5-lts.1" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" - integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== - dependencies: - append-field "^1.0.0" - busboy "^1.0.0" - concat-stream "^1.5.2" - mkdirp "^0.5.4" - object-assign "^4.1.1" - type-is "^1.6.4" - xtend "^4.0.0" - -music-metadata@^7.12.3: - version "7.12.3" - resolved "https://registry.yarnpkg.com/music-metadata/-/music-metadata-7.12.3.tgz#47d2414a959352c9d310074d39182e9be71e1419" - integrity sha512-6pZngaroNxGBf8KZjE8reGZJiS533eJq7dBFsyoiEAZIORQAxmVVx20ABh9W2tsLT+5mKYyDzcNi5GuHf3jitg== - dependencies: - "@tokenizer/token" "^0.3.0" - content-type "^1.0.4" - debug "^4.3.4" - file-type "16.5.3" - media-typer "^1.1.0" - strtok3 "^6.3.0" - token-types "^4.2.0" - -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - -napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -node-abi@^3.3.0: - version "3.22.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.22.0.tgz#00b8250e86a0816576258227edbce7bbe0039362" - integrity sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w== - dependencies: - semver "^7.3.5" - -node-addon-api@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501" - integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA== - -node-cache@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-5.1.2.tgz#f264dc2ccad0a780e76253a694e9fd0ed19c398d" - integrity sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg== - dependencies: - clone "2.x" - -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -nodemon@^2.0.20: - version "2.0.20" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.20.tgz#e3537de768a492e8d74da5c5813cb0c7486fc701" - integrity sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw== - dependencies: - chokidar "^3.5.2" - debug "^3.2.7" - ignore-by-default "^1.0.1" - minimatch "^3.1.2" - pstree.remy "^1.1.8" - semver "^5.7.1" - simple-update-notifier "^1.0.7" - supports-color "^5.5.0" - touch "^3.1.0" - undefsafe "^2.0.5" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== - dependencies: - abbrev "1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -on-exit-leak-free@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" - integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== - -on-exit-leak-free@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" - integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@1.4.0, once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse5-htmlparser2-tree-adapter@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" - integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== - dependencies: - domhandler "^5.0.2" - parse5 "^7.0.0" - -parse5@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" - integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== - dependencies: - entities "^4.3.0" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -peek-readable@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" - integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pidtree@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - -pino-abstract-transport@v0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" - integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== - dependencies: - duplexify "^4.1.2" - split2 "^4.0.0" - -pino-abstract-transport@v1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" - integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== - dependencies: - readable-stream "^4.0.0" - split2 "^4.0.0" - -pino-std-serializers@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" - integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== - -pino-std-serializers@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.0.0.tgz#4c20928a1bafca122fdc2a7a4a171ca1c5f9c526" - integrity sha512-mMMOwSKrmyl+Y12Ri2xhH1lbzQxwwpuru9VjyJpgFIH4asSj88F2csdMwN6+M5g1Ll4rmsYghHLQJw81tgZ7LQ== - -pino@^7.0.0: - version "7.11.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" - integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== - dependencies: - atomic-sleep "^1.0.0" - fast-redact "^3.0.0" - on-exit-leak-free "^0.2.0" - pino-abstract-transport v0.5.0 - pino-std-serializers "^4.0.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - real-require "^0.1.0" - safe-stable-stringify "^2.1.0" - sonic-boom "^2.2.1" - thread-stream "^0.15.1" - -pino@^8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.7.0.tgz#58621608a3d8540ae643cdd9194cdd94130c78d9" - integrity sha512-l9sA5uPxmZzwydhMWUcm1gI0YxNnYl8MfSr2h8cwLvOAzQLBLewzF247h/vqHe3/tt6fgtXeG9wdjjoetdI/vA== - dependencies: - atomic-sleep "^1.0.0" - fast-redact "^3.1.1" - on-exit-leak-free "^2.1.0" - pino-abstract-transport v1.0.0 - pino-std-serializers "^6.0.0" - process-warning "^2.0.0" - quick-format-unescaped "^4.0.3" - real-require "^0.2.0" - safe-stable-stringify "^2.3.1" - sonic-boom "^3.1.0" - thread-stream "^2.0.0" - -pngjs@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" - integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== - -prebuild-install@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" - integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== - dependencies: - detect-libc "^2.0.0" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^3.3.0" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^4.0.0" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9" - integrity sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process-warning@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" - integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== - -process-warning@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.0.0.tgz#341dbeaac985b90a04ebcd844d50097c7737b2ee" - integrity sha512-+MmoAXoUX+VTHAlwns0h+kFUWFs/3FZy+ZuchkgjyOu3oioLAo2LB5aCfKPh2+P9O18i3m43tUEv3YqttSy0Ww== - -protobufjs@6.8.8: - version "6.8.8" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" - integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.0" - "@types/node" "^10.1.0" - long "^4.0.0" - -protobufjs@^6.11.3: - version "6.11.3" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" - integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -pstree.remy@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" - integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qrcode@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.1.tgz#0103f97317409f7bc91772ef30793a54cd59f0cb" - integrity sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg== - dependencies: - dijkstrajs "^1.0.1" - encode-utf8 "^1.0.3" - pngjs "^5.0.0" - yargs "^15.3.1" - -qs@6.11.0, qs@^6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@6.9.3: - version "6.9.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" - integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-format-unescaped@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" - integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -readable-stream@^2.2.2: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.1.0.tgz#280d0a29f559d3fb684a277254e02b6f61ae0631" - integrity sha512-sVisi3+P2lJ2t0BPbpK629j8wRW06yKGJUcaLAGXPAUhyUxVJm7VsCTit1PFgT4JHUDMrGNR+ZjSKpzGaRF3zw== - dependencies: - abort-controller "^3.0.0" - -readable-web-to-node-stream@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" - integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== - dependencies: - readable-stream "^3.6.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -real-require@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" - integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== - -real-require@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" - integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rxjs@^7.5.6: - version "7.5.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" - integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== - dependencies: - tslib "^2.1.0" - -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" - integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saslprep@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" - integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== - dependencies: - sparse-bitfield "^3.0.3" - -semver@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^7.3.5, semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -semver@~7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sharp@^0.30.5: - version "0.30.7" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.30.7.tgz#7862bda98804fdd1f0d5659c85e3324b90d94c7c" - integrity sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig== - dependencies: - color "^4.2.3" - detect-libc "^2.0.1" - node-addon-api "^5.0.0" - prebuild-install "^7.1.1" - semver "^7.3.7" - simple-get "^4.0.1" - tar-fs "^2.1.1" - tunnel-agent "^0.6.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -sift@16.0.1: - version "16.0.1" - resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.1.tgz#e9c2ccc72191585008cf3e36fc447b2d2633a053" - integrity sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ== - -signal-exit@^3.0.2, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^4.0.0, simple-get@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" - integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== - dependencies: - decompress-response "^6.0.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -simple-update-notifier@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz#7edf75c5bdd04f88828d632f762b2bc32996a9cc" - integrity sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew== - dependencies: - semver "~7.0.0" - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socks@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - -sonic-boom@^2.2.1: - version "2.8.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" - integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== - dependencies: - atomic-sleep "^1.0.0" - -sonic-boom@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.0.tgz#ce9f2de7557e68be2e52c8df6d9b052e7d348143" - integrity sha512-SbbZ+Kqj/XIunvIAgUZRlqd6CGQYq71tRRbXR92Za8J/R3Yh4Av+TWENiSiEgnlwckYLyP0YZQWVfyNC0dzLaA== - dependencies: - atomic-sleep "^1.0.0" - -sparse-bitfield@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" - integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== - dependencies: - memory-pager "^1.0.2" - -split2@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" - integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - -string-argv@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== - dependencies: - ansi-regex "^6.0.1" - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -strnum@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" - integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== - -strtok3@^6.2.4, strtok3@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" - integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== - dependencies: - "@tokenizer/token" "^0.3.0" - peek-readable "^4.1.0" - -superagent@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-8.0.3.tgz#15c8ec5611a1f01386994cfeeda5aa138bcb7b17" - integrity sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA== - dependencies: - component-emitter "^1.3.0" - cookiejar "^2.1.3" - debug "^4.3.4" - fast-safe-stringify "^2.1.1" - form-data "^4.0.0" - formidable "^2.0.1" - methods "^1.1.2" - mime "2.6.0" - qs "^6.11.0" - semver "^7.3.8" - -supertest@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/supertest/-/supertest-6.3.1.tgz#a8ad362fc6f323c88730ac191ce30427dc869088" - integrity sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ== - dependencies: - methods "^1.1.2" - superagent "^8.0.3" - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -tar-fs@^2.0.0, tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -thread-stream@^0.15.1: - version "0.15.2" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" - integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== - dependencies: - real-require "^0.1.0" - -thread-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.0.0.tgz#1ecb450324ebb1bb284d4398b8af15cb6905028c" - integrity sha512-tnbzCbIrA4Khq5SJt/Fyz5DlE8pUnPR3//nWv+cqdRktvAl2NuC9O08HHq2Ifa10bhkvHLuzcesNjaH15EgTXA== - dependencies: - real-require "^0.1.0" - -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -token-types@^4.1.1, token-types@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.2.0.tgz#b66bc3d67420c6873222a424eee64a744f4c2f13" - integrity sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w== - dependencies: - "@tokenizer/token" "^0.3.0" - ieee754 "^1.2.1" - -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tslib@^1.11.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-is@^1.6.4, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -undefsafe@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" - integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url@0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^8.0.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" - integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.3.tgz#9b3a4c8aff9821b696275c79a8bee8399d945207" - integrity sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==