From c81713cd2322d33293f18d9e2dd0cee1215dae44 Mon Sep 17 00:00:00 2001 From: Tobias Hopp Date: Thu, 17 Nov 2022 00:46:19 +0100 Subject: [PATCH] update Took 15 hours 7 minutes --- doc/Notes.md | 39 + doc/Screenshot_Model1.1_BackDownLeft.png | Bin 0 -> 104364 bytes doc/Screenshot_Model1.1_FrontTopRight.png | Bin 0 -> 110911 bytes package.json | 9 +- .../stylesheets/{buttons.css => inputs.css} | 41 +- public/stylesheets/main.css | 58 + public/stylesheets/modal.css | 4 +- public/stylesheets/setup.css | 104 + public/stylesheets/style.css | 116 +- src/HX711.ts | 3 + src/LEDHandler.ts | 20 + src/Settings.ts | 38 + src/Utils.ts | 1 + src/database/Container.ts | 12 +- src/database/IContainer.ts | 14 +- src/iTender.ts | 47 +- src/iTenderStatus.ts | 6 +- src/main.ts | 54 +- src/web/Modal.ts | 120 +- src/web/Pane.ts | 6 + src/web/Settings.ts | 3 + src/web/Setup.ts | 7 + src/web/WebHandler.ts | 563 ++- src/web/WebWebSocketHandler.ts | 46 +- src/web/main.ts | 9 +- startFrontend.sh | 3 + views/index.pug | 42 +- views/layout.pug | 21 +- yarn-error.log | 3684 +++++++++++++++++ yarn.lock | 36 +- 30 files changed, 4899 insertions(+), 207 deletions(-) create mode 100644 doc/Notes.md create mode 100644 doc/Screenshot_Model1.1_BackDownLeft.png create mode 100644 doc/Screenshot_Model1.1_FrontTopRight.png rename public/stylesheets/{buttons.css => inputs.css} (64%) create mode 100644 public/stylesheets/main.css create mode 100644 public/stylesheets/setup.css create mode 100644 src/HX711.ts create mode 100644 src/LEDHandler.ts create mode 100644 src/Settings.ts create mode 100644 src/web/Pane.ts create mode 100644 src/web/Settings.ts create mode 100644 src/web/Setup.ts create mode 100755 startFrontend.sh create mode 100644 yarn-error.log diff --git a/doc/Notes.md b/doc/Notes.md new file mode 100644 index 0000000..e38f294 --- /dev/null +++ b/doc/Notes.md @@ -0,0 +1,39 @@ +# Notes und kleine Dokumentation +Was haben wir bereits am iTender Projekt gemacht? + +
+ +## Konzept-Erstellung + +#### Ideen +- Grund-Ideen + - Smarten Cocktail-Mischer + - 4 Getränke Behälter (mit Saft, Sirup oder Likör bzw. Schnapps) + - 4 Pumpen (Peristaltik Pumpe) + - Raspberry Pi als Prozessoreinheit + - Display in der Front mit Benutzeroberfläche + - Automatisches filtern von Getränken, je nachdem welche "Zutaten" in den Behältern sind + - Messung der aktuellen Füllmenge der Behälter, basierend auf Gewicht (mittels Wägezelle) oder Abstand zur Wasseroberfläche (mittels Ultraschall-Sensor) + +- Nice to have + - LED-Stripes für schöne Beleuchtung, basierend auf dem aktuellen Status der Maschine + - Extra Schlauch für weitere außenstehende Getränke + - Mit Bier-Fass Adapter? + - Kühlung der Container mittels Peltierelement und Lüftern + +#### Erstes 3D-Modell + + + +#### Neues 3D-Modell +Folgt. + +
+ +## Umsetzung + +#### Webseiten-Skizzen + + + + diff --git a/doc/Screenshot_Model1.1_BackDownLeft.png b/doc/Screenshot_Model1.1_BackDownLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..3e1e8fce3fa256cc7b2e69cffdbe78ae74d371ae GIT binary patch literal 104364 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 literal 0 HcmV?d00001 diff --git a/doc/Screenshot_Model1.1_FrontTopRight.png b/doc/Screenshot_Model1.1_FrontTopRight.png new file mode 100644 index 0000000000000000000000000000000000000000..26f340645f73d728ece71d6d42cfcee0373f15ac GIT binary patch literal 110911 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

<>ueS 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%0D=rgsdQdS_yvr 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 S@{$*TkD7|Ma)sivkpBTz>>^+Q literal 0 HcmV?d00001 diff --git a/package.json b/package.json index 1b93a19..35b2cb1 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "author": "Tobias Hopp ", "license": "UNLICENSED", "scripts": { - "start": "node ./dist/main.js", + "boot": "yarn && yarn run compile && ./startFrontend.sh && yarn run start", + "start": "DEBUG=itender:* node ./dist/main.js", "compile": "tsc && webpack", "compileStart": "yarn run compile; yarn start", "watchTS": "tsc --watch", @@ -20,6 +21,7 @@ "@types/morgan": "^1.9.3", "@types/node": "^18.11.9", "@types/rpi-gpio": "^2.1.1", + "@types/rpi-ws281x-native": "^1.0.0", "cookie-parser": "^1.4.6", "debug": "^4.3.4", "express": "~4.16.1", @@ -28,11 +30,12 @@ "http-errors": "~1.6.3", "mongoose": "^6.7.2", "morgan": "^1.10.0", + "net-ping": "^1.2.3", "pug": "2.0.0-beta11", - "rpi-gpio": "^2.1.7" + "rpi-gpio": "^2.1.7", + "rpi-ws281x-native": "^1.0.4" }, "devDependencies": { - "@types/electron": "^1.6.10", "nodemon": "^2.0.20", "ts-loader": "^9.4.1", "ts-node": "^10.9.1", diff --git a/public/stylesheets/buttons.css b/public/stylesheets/inputs.css similarity index 64% rename from public/stylesheets/buttons.css rename to public/stylesheets/inputs.css index f96da48..bfcc263 100644 --- a/public/stylesheets/buttons.css +++ b/public/stylesheets/inputs.css @@ -1,10 +1,19 @@ .btn { - padding: 11px 15px; + padding: 12px 16px; border: none; color: white; - font-size: 0.8em; + font-size: 0.95em; border-radius: 2px; - cursor:none !important; + cursor: none !important; + +} + +.inputGroup { + margin-bottom: 1.5%; +} + +label { + margin-right: 8px; } @@ -36,10 +45,12 @@ color: white; } + .btn-secondary:hover { background-color: var(--secondary-bright); } + .btn-success { background-color: var(--success); color: white; @@ -82,3 +93,27 @@ .btn-dark:hover { background-color: var(--dark-bright); } + + + +.input { + padding: 6px; + font-size: 1.1em; + + margin-left: 1%; + margin-right: 1%; + border: 0; + border-radius: 3px; +} + + +.input[type=checkbox] { + margin-bottom: 2px; + /* Double-sized Checkboxes */ + -ms-transform: scale(1.5); /* IE */ + -moz-transform: scale(1.5); /* FF */ + -webkit-transform: scale(1.5); /* Safari and Chrome */ + -o-transform: scale(1.5); /* Opera */ + transform: scale(1.5); + padding: 10px; +} diff --git a/public/stylesheets/main.css b/public/stylesheets/main.css new file mode 100644 index 0000000..6e27e47 --- /dev/null +++ b/public/stylesheets/main.css @@ -0,0 +1,58 @@ +#main::-webkit-scrollbar { + display: none; +} + + +#main { + display: grid; + grid-template-columns: repeat(3, calc(90% / 3)); + grid-template-rows: repeat(2, calc(90% / 2)); + grid-gap: 10% 5%; +} + + +#main .drink { + grid-row: span 1; + grid-column: span 1; + background-color: rgba(57, 57, 57, 0.6); + width: 90%; + height: 97%; + display: grid; + grid-template-columns: 100%; + grid-template-rows: repeat(3, calc(100% / 3)); + grid-row-gap: 4%; + text-align: center; + border-radius: 30px 10px 30px; + color: black; + /*box-shadow: 3px 3px 3px;*/ + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.3), 0 6px 20px 0 rgba(0, 0, 0, 0.29); + transition: 0.4s; + overflow: hidden; + padding-bottom: 1%; +} + + +#main .drink:hover { + background-color: rgba(57, 57, 57, 0.8); + width: 100%; + height: 100%; +} + + +.drink .thumbnail { + grid-column: span 1; + grid-row: span 2; + margin-left: auto; + margin-right: auto; + max-height: 100%; + overflow: hidden; + transition: 0.5s; +} + + +.drink .drinkName { + font-family: Ubuntu, sans-serif; + grid-column: span 1; + grid-row: span 1; + font-size: 150%; +} \ No newline at end of file diff --git a/public/stylesheets/modal.css b/public/stylesheets/modal.css index 1994be2..6cea1d5 100644 --- a/public/stylesheets/modal.css +++ b/public/stylesheets/modal.css @@ -3,7 +3,8 @@ display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 1; /* Sit on top */ - padding-top: 15%; /* Location of the box */ + padding-top: 8%; /* Location of the box */ + padding-bottom: 1%; left: 0; top: 0; width: 100%; /* Full width */ @@ -24,6 +25,7 @@ width: 80%; text-align: center; background-color: #FEFEFE; + margin-bottom: 5px; } diff --git a/public/stylesheets/setup.css b/public/stylesheets/setup.css new file mode 100644 index 0000000..afe1549 --- /dev/null +++ b/public/stylesheets/setup.css @@ -0,0 +1,104 @@ +#setup { + padding-left: 5%; + padding-right: 5%; + padding-top: 1%; + display: grid; + grid-template-columns: repeat(2, calc(95% / 2)); + grid-template-rows: repeat(7, calc(100% / 7)); + grid-gap: 2% 5%; +} + +#setup_slots { + min-width: 55px; + width: 10%; + margin-left: 3%; + border: 1px solid aliceblue; +} + +#setup #setupContainersDiv { + grid-row: span 5; + grid-column: span 2; + width: 100%; + height: 100%; + text-align: center; + border: 1px solid cadetblue; + border-radius: 5px; + padding: 1% 10px; + overflow: auto; + +} + +#setup #setupContainersDiv #containerAddBtn { + position: relative; + left: 43%; + bottom: 10%; +} + +#setup #setupLEDDiv { + grid-row: span 3; + grid-column: span 1; + height: 100%; + text-align: center; + border: 1px solid cadetblue; + border-radius: 5px; + padding: 1% 10px; + margin-right: 10%; + +} + +#setup #setupExtraDiv { + grid-row: span 3; + grid-column: span 1; + width: 100%; + height: 100%; + text-align: center; + border: 1px solid cadetblue; + border-radius: 5px; + padding: 1% 10px; + +} + + + +#setupContainers .setupContainer { + color: black; + text-align: left; + width: calc(100% / 2.3); + height: 12%; + display: inline-block; + margin-bottom: 3%; + border: 1px solid gray; + margin-left: 2%; + margin-right: 2%; + border-radius: 10px; + padding: 3% 10px; + transition: 0.5s; + background-color: rgb(111, 109, 109); + overflow: hidden; +} + +.removeSlowly { + animation: removeSlowlyWidth 0.8s forwards; +} +@keyframes removeSlowlyWidth { + + 100% { + opacity: 0; + } +} + +.error { + background-color: rgba(255,0,0,0.5) !important; +} + +#setupContainers .setupContainer p { + margin-bottom: 3%; + font-weight: 600; + font-size: 1.2em; +} + + +#setupContainers .setupContainer select { + margin-bottom: 2%; + +} \ No newline at end of file diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 2a030fa..2e6db84 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -1,15 +1,21 @@ @import url("/stylesheets/colors.css"); @import url("/stylesheets/fonts.css"); -@import url("/stylesheets/buttons.css"); +@import url("/stylesheets/inputs.css"); @import url("/stylesheets/modal.css"); - +@import url("/stylesheets/main.css"); +@import url("/stylesheets/setup.css"); :root { - cursor: none !important; + /*cursor: none !important;*/ } -html * {cursor: none !important} +html * { + /*cursor: none !important*/ + -webkit-user-select: none; /* Safari */ + -ms-user-select: none; /* IE 10 and IE 11 */ + user-select: none; /* Standard syntax */ +} body::-webkit-scrollbar { @@ -21,8 +27,17 @@ body { color: white; scroll-behavior: smooth; font-family: "Roboto", serif; - font-style: normal; - cursor: none !important; + /*cursor: none !important;*/ + -webkit-user-select: none; /* Safari */ + -ms-user-select: none; /* IE 10 and IE 11 */ + user-select: none; /* Standard syntax */ +} + +h1 { + font-size: 1.7em; + font-weight: 500; + margin-bottom: 2%; + color: black; } @@ -92,6 +107,15 @@ body { border: 0; border-radius: 0 8px 0 0; color: white; + float: left; +} + + +#overlay #bottom #containers { + height: 100%; + width: 30%; + float: right; + /* todo */ } @@ -103,14 +127,20 @@ body { height: 80%; } - -#menu { - display: none; - background-color: blue; - width: 100%; +.pane { height: 100%; + padding: 1% 2%; + overflow: auto; + ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ + scroll-behavior: smooth; + color: black; } +.hiddenPane { + display: none !important; + transition: 0.2s; +} #settings { display: none; @@ -119,67 +149,3 @@ body { height: 100vh; } - -#main::-webkit-scrollbar { - display: none; -} - - -#main { - display: grid; - height: 100%; - padding: 1% 2%; - grid-template-columns: repeat(3, calc(90% / 3)); - grid-template-rows: repeat(2, calc(90% / 2)); - grid-gap: 10% 5%; - overflow: auto; - ms-overflow-style: none; /* IE and Edge */ - scrollbar-width: none; /* Firefox */ - scroll-behavior: smooth; -} - - -#main .drink { - grid-row: span 1; - grid-column: span 1; - background-color: rgba(57, 57, 57, 0.6); - width: 90%; - height: 97%; - display: grid; - grid-template-columns: 100%; - grid-template-rows: repeat(3, calc(100% / 3)); - grid-row-gap: 4%; - text-align: center; - border-radius: 30px 10px 30px; - color: black; - /*box-shadow: 3px 3px 3px;*/ - box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.3), 0 6px 20px 0 rgba(0, 0, 0, 0.29); - transition: 0.4s; - overflow: hidden; - padding-bottom: 1%; -} - -#main .drink:hover { - background-color: rgba(57, 57, 57, 0.8); - width: 100%; - height: 100%; -} - - -.drink .thumbnail { - grid-column: span 1; - grid-row: span 2; - margin-left: auto; - margin-right: auto; - max-height: 100%; - overflow: hidden; - transition: 0.5s; -} - - -.drink .drinkName { - font-family: Ubuntu, sans-serif; - grid-column: span 1; - grid-row: span 1; - font-size: 150%; -} \ No newline at end of file diff --git a/src/HX711.ts b/src/HX711.ts new file mode 100644 index 0000000..9d1a491 --- /dev/null +++ b/src/HX711.ts @@ -0,0 +1,3 @@ +export class HX711 { + +} \ No newline at end of file diff --git a/src/LEDHandler.ts b/src/LEDHandler.ts new file mode 100644 index 0000000..19294ca --- /dev/null +++ b/src/LEDHandler.ts @@ -0,0 +1,20 @@ +import ws281x from "rpi-ws281x-native"; + +export class LEDHandler { + private static channel = ws281x(10, {stripType: 'ws2812'}); + private static currentInterval: NodeJS.Timer; + + public static waterfall() { + clearInterval(this.currentInterval); + this.currentInterval = setInterval(() => { + + }, 1000); + } + + public static pulseGreen() { + clearInterval(this.currentInterval); + this.currentInterval = setInterval(() => { + + }, 1000); + } +} \ No newline at end of file diff --git a/src/Settings.ts b/src/Settings.ts new file mode 100644 index 0000000..eecea66 --- /dev/null +++ b/src/Settings.ts @@ -0,0 +1,38 @@ +import * as fs from "fs"; +import path from "path"; + +export class Settings { + static get setupDone(): boolean { + return this._setupDone; + } + + private static _setupDone: boolean; + private static json: {}; + + + public static loadSettings() { + if (!fs.existsSync(path.join(__dirname, "/config.json"))) { + this._setupDone = false; + fs.writeFileSync(path.join(__dirname, "/config.json"), `{"setupDone":false}`); + } + + let file = fs.readFileSync(path.join(__dirname, "/config.json")); + this.json = JSON.parse(file.toString("utf8")); + + this._setupDone = this.json["setupDone"]; + this._setupDone = false; + + } + + public static saveSettings() { + fs.writeFileSync(path.join(__dirname, "/config.json"), JSON.stringify(this.json)); + } + + public static get(key: string): any { + return this.json[key]; + } + + public static set(key: string, value: any) { + this.json[key] = value; + } +} \ No newline at end of file diff --git a/src/Utils.ts b/src/Utils.ts index ba0e9da..4e33f53 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -1,4 +1,5 @@ import * as dns from "dns"; +import * as ping from "net-ping"; export class Utils { public static checkInternet(): Promise { diff --git a/src/database/Container.ts b/src/database/Container.ts index ceb9b8f..8091d9f 100644 --- a/src/database/Container.ts +++ b/src/database/Container.ts @@ -3,14 +3,18 @@ import mongoose from "mongoose"; import {IContainer} from "./IContainer"; export const ContainerSchema = new Mongoose.Schema({ - slot: {type: Number}, + slot: {type: Number, required: true}, volume: {type: Number, required: true, default: 1000}, - sensorEcho: Number, - sensorTrigger: Number, - content: {type: mongoose.Types.ObjectId}, + sensorType: String, + sensorPin1: Number, + sensorPin2: Number, + pumpPin: {type: Number, required: true}, + content: {type: mongoose.Types.ObjectId, ref: "Ingredient"}, sensorFilledMax: Number, sensorFilledMin: Number, filled: Number, + enabled: {type: Boolean, default: false}, + autoDisabled: {type: Boolean, default: false} }); const Container = mongoose.model('Container', ContainerSchema); diff --git a/src/database/IContainer.ts b/src/database/IContainer.ts index 89bd656..4038023 100644 --- a/src/database/IContainer.ts +++ b/src/database/IContainer.ts @@ -1,13 +1,17 @@ import {IIngredient} from "./IIngredient"; import * as mongoose from "mongoose"; -export interface IContainer extends mongoose.Document{ +export interface IContainer extends mongoose.Document { slot: number; - content: IIngredient|undefined; + content: IIngredient | undefined; volume: number; - sensorFilledMin : number; + sensorFilledMin: number; sensorFilledMax: number; - sensorTrigger: number; - sensorEcho: number; + sensorType: string; + sensorPin1: number; + sensorPin2: number; + pumpPin: number; filled: Number; + enabled: boolean; + autoDisabled: boolean; } \ No newline at end of file diff --git a/src/iTender.ts b/src/iTender.ts index 9a00f21..9e3295d 100644 --- a/src/iTender.ts +++ b/src/iTender.ts @@ -7,11 +7,15 @@ import {IDrink} from "./database/IDrink"; import debug from "debug"; import {WebSocketHandler} from "./WebSocketHandler"; import {IJob} from "./database/IJob"; +import {Utils} from "./Utils"; +import {WebSocketPayload} from "./WebSocketPayload"; +import {WebSocketEvent} from "./WebSocketEvent"; +import {HX711} from "./HX711"; const log = debug("itender:station"); export class iTender { - static get containers(): { container: IContainer; sensor: HCSR04; pump: null }[] { + static get containers(): { container: IContainer, sensor: HCSR04 | HX711, pump: null }[] { return this._containers; } @@ -25,8 +29,13 @@ export class iTender { private static _status: iTenderStatus = iTenderStatus.STARTING; private static _currentJob: IJob | null = null; + private static _internetConnection: boolean = false; - private static _containers: { container: IContainer, sensor: HCSR04, pump: null }[] = []; + static get internetConnection(): boolean { + return this._internetConnection; + } + + private static _containers: { container: IContainer, sensor: HCSR04 | HX711, pump: null }[] = []; private static _drinks: IDrink[]; static setStatus(status: iTenderStatus) { @@ -57,8 +66,11 @@ export class iTender { return new Promise(async resolve => { for (let c of this._containers) { try { - let dist = c.sensor.distance(); - c.container.filled = dist * 100 / (c.container.sensorFilledMax + c.container.sensorFilledMin); + if (!(c.sensor instanceof HX711)) { + let dist = c.sensor.distance(); + c.container.filled = dist * 100 / (c.container.sensorFilledMax + c.container.sensorFilledMin); + } + } catch (e) { c.container.filled = -1; } @@ -66,6 +78,14 @@ export class iTender { } log("Containers measured!"); resolve(); + + let cons: IContainer[] = []; + for (let c of this._containers) { + cons.push(c.container); + } + + let payload = new WebSocketPayload(WebSocketEvent.CONTAINERS, false, cons); + }); } @@ -109,7 +129,7 @@ export class iTender { if (c2.container._id == c._id) { let sensor; try { - sensor = new HCSR04(c.sensorTrigger, c.sensorEcho); + //sensor = new HCSR04(c.sensorTrigger, c.sensorEcho); } catch (e) { } this._containers[i] = { @@ -125,7 +145,7 @@ export class iTender { if (!found) { let sensor; try { - sensor = new HCSR04(c.sensorTrigger, c.sensorEcho); + //sensor = new HCSR04(c.sensorTrigger, c.sensorEcho); } catch (e) { } this._containers.push({ @@ -160,5 +180,20 @@ export class iTender { }, 30000); } + public static async checkNetwork() { + this._internetConnection = await Utils.checkInternet(); + } + + static refreshFromServer(): Promise { + return new Promise(async (resolve, reject) => { + let before = iTender._status; + iTender.setStatus(iTenderStatus.DOWNLOADING) + // todo + + resolve(); + iTender.setStatus(before); + + }); + } } \ No newline at end of file diff --git a/src/iTenderStatus.ts b/src/iTenderStatus.ts index 4704b3e..d1f5e60 100644 --- a/src/iTenderStatus.ts +++ b/src/iTenderStatus.ts @@ -5,10 +5,14 @@ export enum iTenderStatus { READY = "READY", // Machine is filling your drink and destroying your leberwurst FILLING = "FILLING", - // Drinks will be refreshed from global database (the internet neuland :O) + // Drinks will be refreshed REFRESHING = "REFRESHING", // Drinks will be calculated (check containers and which drinks can be done) CALCULATING = "CALCULATING", + // Download drinks from the world wide web + DOWNLOADING = "DOWNLOADING", + // Device is in setup mode for first setup + SETUP = "SETUP", // An error happened; Oh no :( ERROR = "ERROR" } \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index f395251..75726ad 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,9 +6,8 @@ import Ingredient from "./database/Ingredient"; import {iTender} from "./iTender"; import {iTenderStatus} from "./iTenderStatus"; import {Utils} from "./Utils"; -import {Category} from "./Category"; -import Drink from "./database/Drink"; import Container from "./database/Container"; +import {Settings} from "./Settings"; const log = debug("itender:server"); @@ -23,17 +22,36 @@ const wsApp = new WebsocketApp(); //await test(); await app.listen(); await wsApp.listen(); + Settings.loadSettings(); iTender.setStatus(iTenderStatus.STARTING); - await Utils.sleep(5000); + await Utils.sleep(2000); - await init(); + if (!Settings.setupDone) { + iTender.setStatus(iTenderStatus.SETUP); + log("iTender is not set up yet!"); + } - setInterval(refresh, 1000 * 60 * 10); - iTender.setStatus(iTenderStatus.READY); + function checkStart() { + setTimeout(async () => { + if (!Settings.setupDone) { + checkStart(); + return; + } + Settings.saveSettings(); + + + await init(); + setInterval(refresh, 1000 * 60 * 10); + iTender.setStatus(iTenderStatus.READY); + }, 1000); + } + + checkStart(); + } catch (e) { - console.error("---- ERROR ----") + console.error("---- ERROR ----"); console.error(e); process.exit(-1); } @@ -42,8 +60,19 @@ const wsApp = new WebsocketApp(); function init(): Promise { log("Initializing..."); return new Promise(async resolve => { + iTender.setStatus(iTenderStatus.STARTING); + + // Network + await iTender.checkNetwork(); + if (iTender.internetConnection) { + await iTender.refreshFromServer(); + } + + // Containers await iTender.refreshContainers(); + // Drinks await iTender.refreshDrinks(); + // Start auto checkup for stuck jobs await iTender.autoCheckup(); resolve(); @@ -52,6 +81,11 @@ function init(): Promise { function refresh(): Promise { return new Promise(async resolve => { + // Network + await iTender.checkNetwork(); + + // Below are refreshments of containers / drinks + // If there is a current job, DO NOT REFRESH! if (iTender.currentJob) return; @@ -108,16 +142,16 @@ async function test() { console.log(drink);*/ - let container = new Container(); + /*let container = new Container(); container.slot = 2; container.volume = 750; container.sensorEcho = 28; container.sensorTrigger = 29; container.content = ingredient; container.sensorFilledMax = 2; - container.sensorFilledMin = 15; + container.sensorFilledMin = 15;*/ - await container.save(); + //await container.save(); /* let container = await Container.findOne({slot: 1}); if (!container) return; diff --git a/src/web/Modal.ts b/src/web/Modal.ts index abe77c9..317b11b 100644 --- a/src/web/Modal.ts +++ b/src/web/Modal.ts @@ -5,21 +5,25 @@ export class Modal { private static currentModalId: string | undefined = ""; private _title: string = "iTender"; - private _content: string | undefined = ""; private _id: string = ""; private _loader: boolean = false; private _buttons: { type: string, content: string, onclick: Function }[] = []; private _leftCentered: boolean = false; + private _elements: HTMLElement[] = []; + set leftCentered(value: boolean) { this._leftCentered = value; } private static modalInClose = false; - constructor(id, title: string, content?: string) { + constructor(id, title: string) { this._id = id; this._title = title; - this._content = content; + + let t = document.createElement("h1"); + t.innerText = title; + this._elements.push(t); } public static isModalOpen(): boolean { @@ -27,13 +31,10 @@ export class Modal { } - set title(value: string) { - this._title = value; + public addContent(element: HTMLElement) { + this._elements.push(element); } - set content(value: string | undefined) { - this._content = value; - } set id(value: string) { this._id = value; @@ -43,74 +44,79 @@ export class Modal { this._loader = value; } - public addButton(type: ButtonType, content: string, onclick: Function) { - this._buttons.push({type: type, content: content, onclick: onclick}); + public addButton(type: ButtonType, content: string, onclick: Function): HTMLButtonElement { + let btn = document.createElement("button"); + btn.classList.add("btn", "btn-" + type); + btn.onclick = () => onclick(btn); + btn.innerText = content; + btn.value = content; + + this._elements.push(btn); + return btn; } - public open() { - if (!this._content) - this._content = ""; + public open(): Promise { + return new Promise(async (resolve) => { + /* if (this._leftCentered) { + this._content = "

"; - } - - let title = this._title; - let content = this._content; - let id = this._id; - function tryOpen() - { - if( Modal.modalInClose ) - { - setTimeout( tryOpen, 50 ); - return; + function tryOpen() { + if (Modal.modalInClose) { + setTimeout(tryOpen, 50); + return; + } + resolve(); + Modal.open(elements, id); } - Modal.open(title, content, id ); - } - tryOpen(); + tryOpen(); + }); } /** - * @param title - * @param content + * @param elements * @param id */ - public static open(title: string, content: string, id?: string): void { + private static open(elements: HTMLElement[], id?: string): Promise { + return new Promise((resolve, reject) => { + const modal = document.getElementById("modal"); + const modalContent = document.getElementById("modalInnerContent"); - const modal = document.getElementById("modal"); - const modalContent = document.getElementById("modalInnerContent"); + if (!modal || !modalContent) { + reject(); + return; + } - if (!modal || !modalContent) - return; + modalContent.classList.add("modalBlendIn"); + modal.classList.add("modalBlendIn"); - modalContent.classList.add("modalBlendIn"); - modal.classList.add("modalBlendIn"); + setTimeout(() => { + modalContent.classList.remove("modalBlendIn"); + modal.classList.remove("modalBlendIn"); + resolve(); + }, 800); - setTimeout(() => { - modalContent.classList.remove("modalBlendIn"); - modal.classList.remove("modalBlendIn"); - }, 800); + modalContent.innerHTML = ""; + elements.forEach((val) => modalContent.append(val)); + //modalContent.innerHTML = `

${title}

${content}`; + modal.style.display = "block"; - modalContent.innerHTML = `

${title}

${content}`; - modal.style.display = "block"; + this.currentModalId = id ? id : "null"; + }); - this.currentModalId = id ? id : "null"; } public static close(id?: string): void { diff --git a/src/web/Pane.ts b/src/web/Pane.ts new file mode 100644 index 0000000..3167080 --- /dev/null +++ b/src/web/Pane.ts @@ -0,0 +1,6 @@ +export enum Pane { + MAIN= "Main", + MENU = "Menü", + SETTINGS = "Einstellungen", + SETUP = "Setup" +} \ No newline at end of file diff --git a/src/web/Settings.ts b/src/web/Settings.ts new file mode 100644 index 0000000..7030bc9 --- /dev/null +++ b/src/web/Settings.ts @@ -0,0 +1,3 @@ +export class Settings { + +} \ No newline at end of file diff --git a/src/web/Setup.ts b/src/web/Setup.ts new file mode 100644 index 0000000..9cf0c66 --- /dev/null +++ b/src/web/Setup.ts @@ -0,0 +1,7 @@ +export class Setup { + public static onSetupUpdate() + { + // Setup containers updated + + } +} \ No newline at end of file diff --git a/src/web/WebHandler.ts b/src/web/WebHandler.ts index 0b7f544..367acb2 100644 --- a/src/web/WebHandler.ts +++ b/src/web/WebHandler.ts @@ -1,11 +1,15 @@ import {WebSocketPayload} from "../WebSocketPayload"; import {IDrink} from "../database/IDrink"; import {Modal} from "./Modal"; +import {ButtonType} from "./ButtonType"; +import {Pane} from "./Pane"; +import {setup} from "rpi-gpio"; export class WebHandler { + private static containers = []; + public static onDrinkUpdate(payload: WebSocketPayload) { if (!payload.data) return; - let drinks: IDrink[] = payload.data; const main = document.getElementById("main"); @@ -13,6 +17,8 @@ export class WebHandler { main.style.gridTemplateRows = `repeat(${Math.round(drinks.length / 3)}, calc(90%/2))`; + main.innerHTML = ""; + for (let drink of drinks) { let drinkEle = document.createElement("div"); drinkEle.classList.add("drink"); @@ -30,25 +36,560 @@ export class WebHandler { drinkImg.src = "/images/" + drink.name + ".png"; drinkName.innerText = drink.name; + /* let ingredients = "
    "; - for( let i of drink.ingredients ) - { + for (let i of drink.ingredients) { ingredients += "
  • " + i.amount + "ml " + i.type.name + "
  • "; } - ingredients+="
" + ingredients += "" drinkEle.onclick = () => { - let modal = new Modal("drink", drink.name ); - modal.content = `Zutaten
-${ingredients}` - modal.leftCentered = true; - modal.open(); - }; + let modal = new Modal("drink", drink.name); - main.append(drinkEle); + modal.content = `Zutaten
+${ingredients}`*/ //todo + //modal.leftCentered = true; + // modal.open(); + //}; + + //main.append(drinkEle); } } + public static onContainerUpdate(payload: WebSocketPayload) { + + } + + static async openSetup() { + // new + this.openPane(Pane.SETUP); + let menuBtn = document.getElementById("menuBtn") as HTMLButtonElement; + let setupContainers = document.getElementById("setupContainers") as HTMLDivElement; + menuBtn.disabled = true; + + const containerAddBtn = document.getElementById("containerAddBtn") as HTMLButtonElement; + containerAddBtn.onclick = () => { + + + let con = document.createElement("div"); + + let containerName = document.createElement("p"); + containerName.innerText = "Behälter " + (setupContainers.getElementsByTagName("div").length + 1); + con.classList.add("setupContainer"); + con.append(containerName); + + let sensorTypeLabel = document.createElement("label"); + sensorTypeLabel.innerText = "Art des Sensors "; + con.append(sensorTypeLabel); + + let sensorType = document.createElement("select"); + sensorType.classList.add("input"); + let sensorTypeNone = document.createElement("option") as HTMLOptionElement; + sensorTypeNone.innerText = "Keiner"; + sensorTypeNone.value = "0"; + sensorType.append(sensorTypeNone); + let sensorTypeUltrasound = document.createElement("option") as HTMLOptionElement; + sensorTypeUltrasound.innerText = "Ultraschall"; + sensorTypeUltrasound.value = "1"; + sensorType.append(sensorTypeUltrasound); + let sensorTypeScale = document.createElement("option") as HTMLOptionElement; + sensorTypeScale.innerText = "Wägezelle"; + sensorTypeScale.value = "2"; + sensorType.append(sensorTypeScale); + con.append(sensorType); + + con.append(document.createElement("br")); + + + let selectPin = document.createElement("select"); + selectPin.style.display = "none"; + selectPin.classList.add("input"); + selectPin.style.display = "inline"; + + let noSel = document.createElement("option") as HTMLOptionElement; + noSel.innerText = "Bitte wählen"; + noSel.value = "-1"; + noSel.disabled = true; + + selectPin.append(noSel.cloneNode(true)); + selectPin.selectedIndex = 0; + + const pins = [3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 22, 23, 24, 26, 29, 31, 32, 33, 34, 35, 36, 37, 38, 40]; + for (let pin of pins) { + let pinEle = document.createElement("option") as HTMLOptionElement; + pinEle.innerText = "" + pin; + pinEle.value = "" + pin; + selectPin.append(pinEle); + } + + let pumpLabel = document.createElement("label"); + pumpLabel.innerText = "Pumpen Pin"; + con.append(pumpLabel); + con.append(selectPin.cloneNode(true)); + + con.append(document.createElement("br")); + + let sensor1Label = document.createElement("label"); + sensor1Label.innerText = "Sensor 1 Pin"; + con.append(sensor1Label); + con.append(selectPin.cloneNode(true)); + + con.append(document.createElement("br")); + + let sensor2Label = document.createElement("label"); + sensor2Label.innerText = "Sensor 2 Pin"; + con.append(sensor2Label); + con.append(selectPin.cloneNode(true)); + + con.append(document.createElement("br")); + + let removeBtn = document.createElement("button"); + removeBtn.classList.add("btn", "btn-danger"); + removeBtn.onclick = () => { + con.classList.add("removeSlowly"); + setTimeout(() => { + con.remove(); + let i = 1; + for (let elementsByTagNameElement of setupContainers.getElementsByTagName("div")) { + let e = elementsByTagNameElement.getElementsByTagName("p")[0] as HTMLParagraphElement; + e.innerText = "Behälter " + i; + i++; + } + }, 750); + + } + removeBtn.style.float = "right"; + removeBtn.innerText = "Entfernen"; + con.append(removeBtn); + + setupContainers.append(con); + + }; + return; + + // old + Modal.close(); + let modal = new Modal("setup", "Setup 1/2"); + + let containers: { container: HTMLDivElement, slot: number, pumpPin: HTMLSelectElement, sensorType: HTMLSelectElement, sensorPin1: HTMLSelectElement, sensorPin2: HTMLSelectElement, volume: HTMLSelectElement }[] = []; + + let onchange = () => { + let containerEle = document.getElementById("setup_containers") as HTMLDivElement; + let containerNumber = document.getElementById("setup_slots") as HTMLInputElement; + if (!containerEle || !containerNumber) return; + + let i = 1; + let oldElements = containerEle.getElementsByTagName("div"); + for (let e of oldElements) { + if (i > containerNumber.valueAsNumber) { + e.remove(); + containers.pop(); + } + i++; + } + + for (let i = containerEle.getElementsByTagName("div").length; i < containerNumber.valueAsNumber; i++) { + let con = document.createElement("div"); + let thisContainer = {}; + thisContainer["container"] = con; + con.classList.add("setupContainer"); + + let containerName = document.createElement("p"); + containerName.innerText = "Container " + (i + 1); + thisContainer["slot"] = i + 1; + + con.append(containerName); + + let sensorTypeLabel = document.createElement("label"); + sensorTypeLabel.innerText = "Art des Sensors "; + con.append(sensorTypeLabel); + + let sensorType = document.createElement("select"); + sensorType.classList.add("input"); + let sensorTypeNone = document.createElement("option") as HTMLOptionElement; + sensorTypeNone.innerText = "Keiner"; + sensorTypeNone.value = "0"; + sensorType.append(sensorTypeNone); + let sensorTypeUltrasound = document.createElement("option") as HTMLOptionElement; + sensorTypeUltrasound.innerText = "Ultraschall"; + sensorTypeUltrasound.value = "1"; + sensorType.append(sensorTypeUltrasound); + let sensorTypeScale = document.createElement("option") as HTMLOptionElement; + sensorTypeScale.innerText = "Wägezelle"; + sensorTypeScale.value = "2"; + sensorType.append(sensorTypeScale); + + + con.append(sensorType); + thisContainer["sensorType"] = sensorType; + + con.append(document.createElement("br")); + + + let changeWhenTypeOfSensor: HTMLElement[] = []; + let list = ["Pumpen Port ", "Sensor 1 ", "Sensor 2 "]; + for (let t of list) { + let labelElement = document.createElement("label"); + labelElement.innerText = t; + changeWhenTypeOfSensor.push(labelElement); + con.append(labelElement); + + let selectElement = document.createElement("select"); + labelElement.style.display = "none"; + selectElement.style.display = "none"; + selectElement.classList.add("input"); + if (t == "Sensor 1 ") { + thisContainer["sensorPin1"] = selectElement; + } else if (t == "Sensor 2 ") { + thisContainer["sensorPin2"] = selectElement; + } else { + thisContainer["pumpPin"] = selectElement; + labelElement.style.display = "inline"; + selectElement.style.display = "inline"; + } + + let noSel = document.createElement("option") as HTMLOptionElement; + noSel.innerText = "Bitte wählen"; + noSel.value = "-1"; + noSel.disabled = true; + + selectElement.append(noSel); //loveyou + selectElement.selectedIndex = 0; + + const pins = [3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 22, 23, 24, 26, 29, 31, 32, 33, 34, 35, 36, 37, 38, 40]; + for (let pin of pins) { + let pinEle = document.createElement("option") as HTMLOptionElement; + pinEle.innerText = "" + pin; + pinEle.value = "" + pin; + selectElement.append(pinEle); + } + con.append(selectElement); + + let br = document.createElement("br"); + con.append(br); + } + + sensorType.onchange = () => { + // 0 => ultrasound; 1 => scale + if (sensorType.value == "1") { + thisContainer["sensorPin1"].style.display = "inline"; + thisContainer["sensorPin2"].style.display = "inline"; + changeWhenTypeOfSensor[1].style.display = "inline"; + changeWhenTypeOfSensor[2].style.display = "inline"; + changeWhenTypeOfSensor[1].innerText = "Trigger Pin "; + changeWhenTypeOfSensor[2].innerText = "Echo Pin "; + } else if (sensorType.value == "2") { + thisContainer["sensorPin1"].style.display = "inline"; + thisContainer["sensorPin2"].style.display = "inline"; + changeWhenTypeOfSensor[1].style.display = "inline"; + changeWhenTypeOfSensor[2].style.display = "inline"; + changeWhenTypeOfSensor[1].innerText = "Clock Pin "; + changeWhenTypeOfSensor[2].innerText = "Data Pin "; + } else { + thisContainer["sensorPin1"].style.display = "none"; + thisContainer["sensorPin2"].style.display = "none"; + changeWhenTypeOfSensor[1].style.display = "none"; + changeWhenTypeOfSensor[2].style.display = "none"; + changeWhenTypeOfSensor[1].innerText = "Sensor 1 "; + changeWhenTypeOfSensor[2].innerText = "Sensor 2 "; + } + }; + + let labelElement = document.createElement("label"); + labelElement.innerText = "Gesamtvolumen (ml) "; + con.append(labelElement); + + let selectElement = document.createElement("select"); + selectElement.classList.add("input"); + const mls = [50, 100, 200, 250, 300, 330, 500, 750, 1000, 1250, 1500, 2000, 2500, 5000, 10000]; + for (let ml of mls) { + let pinEle = document.createElement("option") as HTMLOptionElement; + pinEle.innerText = "" + ml; + pinEle.value = "" + ml; + selectElement.append(pinEle); + thisContainer["volume"] = selectElement; + } + selectElement.selectedIndex = 7; + + con.append(selectElement); + + let br = document.createElement("br"); + con.append(br); + + containerEle.append(con); + let cast = thisContainer as { container: HTMLDivElement, slot: number, pumpPin: HTMLSelectElement, sensorType: HTMLSelectElement, sensorPin1: HTMLSelectElement, sensorPin2: HTMLSelectElement, volume: HTMLSelectElement }; + containers.push(cast); + console.log(cast); + } + }; + + let div1 = document.createElement("div"); + div1.style.marginBottom = "2%"; + modal.addContent(div1); + let labelElement = document.createElement("label"); + labelElement.innerText = "Anzahl Slots"; + div1.append(labelElement); + + let numberInputElement = document.createElement("input") as HTMLInputElement; + numberInputElement.type = "number"; + numberInputElement.id = "setup_slots"; + numberInputElement.classList.add("input"); + numberInputElement.style.width = "20%;" + numberInputElement.value = "0"; + numberInputElement.min = "0"; + numberInputElement.max = "30"; + numberInputElement.onchange = () => { + onchange(); + }; + div1.append(numberInputElement); + + let divContainers = document.createElement("div"); + divContainers.id = "setup_containers"; + modal.addContent(divContainers); + + let status = document.createElement("p"); + status.style.color = "black"; + status.innerHTML = "Drücke 'Weiter' zum Speichern"; + modal.addContent(status); + + modal.addButton(ButtonType.SUCCESS, "Weiter", () => { + status.innerHTML = "..."; + status.style.color = "gray"; + if (numberInputElement.valueAsNumber < 0 || numberInputElement.valueAsNumber > 30) { + numberInputElement.value = "0"; + status.style.color = "black"; + status.innerHTML = "Automatische Änderungen überprüfen!"; + return; + } + + // Check + if (numberInputElement.valueAsNumber != containers.length) { + onchange(); + status.style.color = "black"; + status.innerHTML = "Automatische Änderungen überprüfen!"; + return; + } + + if (containers.length == 0) { + status.style.color = "red"; + status.innerHTML = "Es muss mindestens ein Container hinzugefügt werden!"; + return; + } + + let newContainers: { slot: number, pumpPin: number, sensorPin1: number, sensorPin2: number, volume: number }[] = []; + let ok = true; + for (let c of containers) { + for (let c2 of containers) { + if (c.slot == c.slot) continue; + + let pins = [c.sensorPin1.value, c.sensorPin2.value, c.pumpPin.value, c2.sensorPin1.value, c2.sensorPin2.value, c2.pumpPin.value]; + + let i = 0; + for (let pin of pins) { + let j = 0; + if (pin == "-1") { + console.log("Skip ", pin); + continue; + } + + for (let pin2 of pins) { + // Wenn index derselbe ist, ignorieren + if (j == i) { + console.log("Index skip ", pin); + continue; + } + + if (pin2 == "-1") { + console.log("Skip ", pin); + continue; + } + + if (pin == pin2) { + console.log("Pin same error", pin, pin2, c, c2) + ok = false; + c.container.classList.add("error"); + c2.container.classList.add("error"); + setTimeout(() => { + c.container.classList.remove("error"); + c2.container.classList.remove("error"); + }, 2000); + break; + } + + j++; + } + i++; + if (!ok) break; + } + if (!ok) break; + + /*console.log(c, c2); + console.log(c.sensorPin2.value == c2.sensorPin2.value); + if ( + c.pumpPin.value == c2.pumpPin.value || + (c.sensorType.value != "0" && ( + (c.sensorPin1.value == c2.sensorPin1.value) + || (c.sensorPin2.value == c2.sensorPin2.value) + || (c.sensorPin1.value == c2.sensorPin2.value) + || (c.sensorPin2.value == c2.sensorPin1.value))) + ) { + console.log("Check not ok") + ok = false; + c.container.classList.add("error"); + c2.container.classList.add("error"); + setTimeout(() => { + c.container.classList.remove("error"); + c2.container.classList.remove("error"); + }, 2000); + break; + }*/ + } + if (!ok) break; + + if (c.pumpPin.value == "-1" || (c.sensorType.value != "0" && (c.sensorPin1.value == "-1" || c.sensorPin2.value == "-1"))) { + console.log("Local check invalid", c); + ok = false; + c.container.classList.add("error"); + + setTimeout(() => { + c.container.classList.remove("error"); + + }, 1000); + } + + + let pins = [c.sensorPin1.value, c.sensorPin2.value, c.pumpPin.value]; + + let i = 0; + for (let pin of pins) { + let j = 0; + if (pin == "-1") { + console.log("Skip ", pin); + continue; + } + for (let pin2 of pins) { + // Wenn index derselbe ist, ignorieren + if (j == i) { + console.log("Index skip ", pin); + continue; + } + + if (pin2 == "-1") { + console.log("Skip ", pin); + continue; + } + + if (pin == pin2) { + console.log("Pin same error", pin, pin2, c) + ok = false; + c.container.classList.add("error"); + setTimeout(() => { + c.container.classList.remove("error"); + }, 2000); + break; + } + + j++; + } + i++; + } + + /*if (c.pumpPin.value == c.sensorPin1.value || c.pumpPin.value == c.sensorPin2.value || c.sensorPin1.value == c.sensorPin2.value) { + ok = false; + c.container.classList.add("error"); + + setTimeout(() => { + c.container.classList.remove("error"); + + }, 1000); + break; + }*/ + + newContainers.push({ + slot: c.slot, + sensorPin1: parseInt(c.sensorPin1.value), + sensorPin2: parseInt(c.sensorPin2.value), + pumpPin: parseInt(c.pumpPin.value), + volume: parseInt(c.volume.value) + }); + } + if (!ok) { + status.style.color = "red"; + status.innerHTML = "Problem erkannt
Bitte überprüfen, ob alle benötigten Felder gesetzt sind
und ob Pins nicht mehrfach belegt sind!" + return; + } + + // todo Hier konfiguration an Server senden und speichern + + // zurück und hinsenden mittels function die hier in der WebHandler.ts gespeichert wird maybe? + + status.style.color = "green"; + status.innerHTML = "Konfiguration gespeichert!"; + + let tareModal = new Modal("setup", "Setup 2/2"); + + let container = document.createElement("div"); + tareModal.addContent(container); + + let txt = document.createElement("p"); + txt.innerHTML = `Um das Setup abzuschließen, müssen die Sensoren eingestellt werden.
+Bitte zunächst jegliche Behälter von/unter den Sensoren entfernen.
Zum fortfahren "Messen"-Schaltfläche berühren.
`; + tareModal.addContent(txt); + + + let btn = tareModal.addButton(ButtonType.SUCCESS, "Messen", () => { + txt.innerHTML = "Messung läuft...
Gerät nicht berühren!
\n" + + "
\n" + + "
"; + btn.disabled = true; + btn.innerText = "Bitte warten"; + }); + // todo send messung to server to start + + tareModal.open(); + }); + + //await modal.open(); + + let setupNumber = document.getElementById("setup_slots") as HTMLInputElement; + setupNumber.focus(); + } + + public static openPane(pane: Pane): void { + let mainPanel = document.getElementById("main") as HTMLDivElement; + let setupPanel = document.getElementById("setup") as HTMLDivElement; + let menuPanel = document.getElementById("menu") as HTMLDivElement; + let settingsPanel = document.getElementById("settings") as HTMLDivElement; + + + mainPanel.classList.add("hiddenPane"); + setupPanel.classList.add("hiddenPane"); + menuPanel.classList.add("hiddenPane"); + settingsPanel.classList.add("hiddenPane"); + + + switch (pane) { + case Pane.MAIN: { + mainPanel.classList.remove("hiddenPane"); + break; + } + case Pane.MENU: { + menuPanel.classList.remove("hiddenPane"); + break; + } + case Pane.SETUP: { + setupPanel.classList.remove("hiddenPane"); + break; + } + case Pane.SETTINGS: { + settingsPanel.classList.remove("hiddenPane"); + break; + } + } + + let title = document.getElementById("title") as HTMLTitleElement; + title.innerText = pane.toString(); + } } \ No newline at end of file diff --git a/src/web/WebWebSocketHandler.ts b/src/web/WebWebSocketHandler.ts index 013387b..adcc809 100644 --- a/src/web/WebWebSocketHandler.ts +++ b/src/web/WebWebSocketHandler.ts @@ -42,20 +42,29 @@ export class WebWebSocketHandler { case iTenderStatus.READY: { Modal.close("start"); Modal.close("refreshing"); + Modal.close("setup"); break; } case iTenderStatus.STARTING: { - let modal = new Modal("start", "Willkommen!", `Einen Augenblick bitte
iTender startet...`); + let modal = new Modal("start", "Willkommen!"); + let txt = document.createElement("p"); + txt.innerHTML = `Einen Augenblick bitte
iTender startet...`; + modal.addContent(txt); modal.loader = true; modal.open(); break; } case iTenderStatus.REFRESHING: { - let modal = new Modal("refreshing", "Aktualisieren...", `Einen Augenblick bitte
iTender aktualisiert die Getränke...`); + let modal = new Modal("refreshing", "Aktualisieren..."); + let txt = document.createElement("p"); + txt.innerHTML = `Einen Augenblick bitte
iTender aktualisiert die Getränke...`; + modal.addContent(txt); modal.loader = true; modal.open(); break; - + } + case iTenderStatus.SETUP: { + WebHandler.openSetup(); } } break; @@ -65,18 +74,22 @@ export class WebWebSocketHandler { WebHandler.onDrinkUpdate(payload); break; } + + case WebSocketEvent.CONTAINERS: { + WebHandler.onContainerUpdate(payload); + break; + } } } private onOpen(event) { console.log("[WS] Connected", event); - let connectionElement = document.getElementById("right"); - if (connectionElement) - { + /*let connectionElement = document.getElementById("right"); + if (connectionElement) { connectionElement.innerText = "Verbunden"; connectionElement.style.color = "green"; - } + }*/ } @@ -84,14 +97,18 @@ export class WebWebSocketHandler { console.error("[WS] Closed!", event); if (event.wasClean) { let modal = new Modal("socketClosed", "Sitzung beendet!"); - modal.content = `Diese Sitzung wurde beendet, da der iTender nun an einem anderen Gerät bzw. an dem Hauptgerät gesteuert wird.

`; + let txt = document.createElement("p"); + txt.innerHTML = `Diese Sitzung wurde beendet, da der iTender nun an einem anderen Gerät bzw. an dem Hauptgerät gesteuert wird.

`; + modal.addContent(txt); modal.addButton(ButtonType.SUCCESS, "Sitzung wiederherstellen", () => { window.location.reload(); }); modal.open(); } else { let modal = new Modal("socketClosed", "Verbindungsproblem!"); - modal.content = `Die Benutzeroberfläche hat die Verbindung mit dem Gerät verloren.
Die Verbindung wird wiederhergestellt...
`; + let txt = document.createElement("p"); + txt.innerHTML = `Die Benutzeroberfläche hat die Verbindung mit dem Gerät verloren.
Die Verbindung wird wiederhergestellt...
`; + modal.addContent(txt); modal.loader = true; modal.open(); setInterval(() => { @@ -99,19 +116,18 @@ export class WebWebSocketHandler { }, 5000); } - let connectionElement = document.getElementById("right"); - if (connectionElement) - { + /* let connectionElement = document.getElementById("right"); + if (connectionElement) { connectionElement.innerText = "Getrennt"; connectionElement.style.color = "red"; - } + }*/ } private onError(event) { console.error("[WS] Error", event); - let connectionElement = document.getElementById("right"); + /*let connectionElement = document.getElementById("right"); if (connectionElement) - connectionElement.innerText = "Fehler"; + connectionElement.innerText = "Fehler";*/ //openModal("Einen Augenblick...", `Es wurde ein kritischer Fehler festgestellt.\nBitte warten Sie, während der Prozess neu gestartet wird...` ); //window.location.reload(); } diff --git a/src/web/main.ts b/src/web/main.ts index b2a4df9..0f68d3f 100644 --- a/src/web/main.ts +++ b/src/web/main.ts @@ -1,14 +1,19 @@ import {WebWebSocketHandler} from "./WebWebSocketHandler"; import {Modal} from "./Modal"; +import {WebHandler} from "./WebHandler"; +import {Pane} from "./Pane"; const main = document.getElementById("main"); -const time = document.getElementById("title"); +const time = document.getElementById("right"); document.addEventListener("DOMContentLoaded", () => { console.log("DOM Loaded"); + WebHandler.openPane(Pane.MAIN); let modal = new Modal("start", "iTender"); - modal.content = "Willkommen"; + let txt = document.createElement("p"); + txt.innerText = "Willkommen" + modal.addContent(txt); modal.loader = true; //modal.open(); connect(); diff --git a/startFrontend.sh b/startFrontend.sh new file mode 100755 index 0000000..8c914ad --- /dev/null +++ b/startFrontend.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +/usr/bin/startx /usr/bin/chromium-browser --kiosk --incognito --disable-pinch --overscroll-history-navigation=0 http://localhost:3000 & diff --git a/views/index.pug b/views/index.pug index fbba90a..34911fa 100644 --- a/views/index.pug +++ b/views/index.pug @@ -1,8 +1,46 @@ extends layout -block main - +block setup + div#setupContainersDiv + h1 Behälter + // Setup + button.btn.btn-primary#containerAddBtn Hinzufügen + br + div#setupContainers + + + div#setupLEDDiv + h1 LED-Einstellungen + div.inputGroup + label Aktivieren + input.input(type="checkbox") + div.inputGroup + label GPIO-Pin + input.input(type="number" value="22" style="width:15%" disabled="disabled") + div.inputGroup + label Ambiente Farbe + input.input(type="color" value="#05445e" style="width:15%" disabled="disabled") + + div#setupExtraDiv + h1 Erweiterte Einstellungen + div.inputGroup + label Remote-Verbindungen erlauben + input.input(type="checkbox" id="setup_remoteCheckbox") + div.inputGroup + label Ohne WiFi Hotspot aktivieren + input.input(type="checkbox" id="setup_hotspotCheckbox") + div.inputGroup + label Ohne WiFi Hotspot aktivieren + input.input(type="checkbox" id="setup_hotspotCheckbox") + + + button.btn.btn-success(style="grid-row: span 1; grid-column: span 2; border-radius: 15px; font-size: 1.2em;") Speichern block menu + // Menu block settings + // Settings + +block main + // Main is build dynamically diff --git a/views/layout.pug b/views/layout.pug index f17103f..77361e9 100644 --- a/views/layout.pug +++ b/views/layout.pug @@ -12,23 +12,22 @@ html div#overlay div#top - span#left Status: + span#left Status: ... span#title iTender span#right Verbinden... div#bottom - button#menuBtn Menü + button.btn#menuBtn Menü + div#containers + div#container - div#menu + div.pane#setup + block setup + div.pane#menu block menu - div#settings + div.pane#settings block settings - div#main + div.pane#main block main block extra - script(src="/web.js") - script. - // setTimeout( () => - // { - // window.location.reload(); - // }, 120000 ); + script(src="/web.js") \ No newline at end of file diff --git a/yarn-error.log b/yarn-error.log new file mode 100644 index 0000000..d92abed --- /dev/null +++ b/yarn-error.log @@ -0,0 +1,3684 @@ +Arguments: + /usr/local/lib/node_modules/node/bin/node /usr/local/bin/yarn add hx711 @types/hx711 + +PATH: + /home/tobias/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/tobias/.local/share/JetBrains/Toolbox/scripts:/home/tobias/WebstormProjects/iTender/node_modules/.bin + +Yarn version: + 1.22.19 + +Node version: + 18.9.1 + +Platform: + linux x64 + +Trace: + Error: https://registry.yarnpkg.com/@types%2fhx711: Not found + at params.callback [as _callback] (/usr/local/lib/node_modules/yarn/lib/cli.js:66145:18) + at self.callback (/usr/local/lib/node_modules/yarn/lib/cli.js:140890:22) + at Request.emit (node:events:513:28) + at Request. (/usr/local/lib/node_modules/yarn/lib/cli.js:141862:10) + at Request.emit (node:events:513:28) + at IncomingMessage. (/usr/local/lib/node_modules/yarn/lib/cli.js:141784:12) + at Object.onceWrapper (node:events:627:28) + at IncomingMessage.emit (node:events:525:35) + at endReadableNT (node:internal/streams/readable:1359:12) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) + +npm manifest: + { + "name": "itender", + "version": "0.0.1", + "private": true, + "author": "Tobias Hopp ", + "license": "UNLICENSED", + "scripts": { + "boot": "yarn && yarn run compile && ./startFrontend.sh && yarn run start", + "start": "DEBUG=itender:* node ./dist/main.js", + "compile": "tsc && webpack", + "compileStart": "yarn run compile; yarn start", + "watchTS": "tsc --watch", + "watchWP": "webpack --watch" + }, + "dependencies": { + "@types/cookie-parser": "^1.4.3", + "@types/debug": "^4.1.7", + "@types/express": "^4.17.14", + "@types/express-ws": "^3.0.1", + "@types/mongoose": "^5.11.97", + "@types/morgan": "^1.9.3", + "@types/node": "^18.11.9", + "@types/rpi-gpio": "^2.1.1", + "@types/rpi-ws281x-native": "^1.0.0", + "cookie-parser": "^1.4.6", + "debug": "^4.3.4", + "express": "~4.16.1", + "express-ws": "^5.0.2", + "hc-sr04": "^0.0.1", + "http-errors": "~1.6.3", + "mongoose": "^6.7.2", + "morgan": "^1.10.0", + "net-ping": "^1.2.3", + "pug": "2.0.0-beta11", + "rpi-gpio": "^2.1.7", + "rpi-ws281x-native": "^1.0.4" + }, + "devDependencies": { + "@types/electron": "^1.6.10", + "nodemon": "^2.0.20", + "ts-loader": "^9.4.1", + "ts-node": "^10.9.1", + "typescript": "^4.8.4", + "webpack": "^5.74.0", + "webpack-cli": "^4.10.0" + } + } + +yarn manifest: + No manifest + +Lockfile: + # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + # yarn lockfile v1 + + + "@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.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.208.0.tgz#a8cd5c59d2b95c51f11e420858029bcc54af786f" + integrity sha512-mQkDR+8VLCafg9KI4TgftftBOL170ricyb+HgV8n5jLDrEG+TfOfud8e6us2lIFESEuMpohC+/8yIcf6JjKkMg== + dependencies: + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/client-cognito-identity@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.209.0.tgz#531b9cecea275f9a82671b78b4f1f660d743b1a7" + integrity sha512-u7lqFKi2PXC/LZzBEBCczlF78/bclv5Gndy4AWxNBdDBbJyuQrE+hk+IIwQQznCeFfgFOhpQMcWFPZH3tSH/qQ== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/client-sts" "3.209.0" + "@aws-sdk/config-resolver" "3.209.0" + "@aws-sdk/credential-provider-node" "3.209.0" + "@aws-sdk/fetch-http-handler" "3.208.0" + "@aws-sdk/hash-node" "3.208.0" + "@aws-sdk/invalid-dependency" "3.208.0" + "@aws-sdk/middleware-content-length" "3.208.0" + "@aws-sdk/middleware-endpoint" "3.208.0" + "@aws-sdk/middleware-host-header" "3.208.0" + "@aws-sdk/middleware-logger" "3.208.0" + "@aws-sdk/middleware-recursion-detection" "3.208.0" + "@aws-sdk/middleware-retry" "3.209.0" + "@aws-sdk/middleware-serde" "3.208.0" + "@aws-sdk/middleware-signing" "3.208.0" + "@aws-sdk/middleware-stack" "3.208.0" + "@aws-sdk/middleware-user-agent" "3.208.0" + "@aws-sdk/node-config-provider" "3.209.0" + "@aws-sdk/node-http-handler" "3.208.0" + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/smithy-client" "3.209.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/url-parser" "3.208.0" + "@aws-sdk/util-base64" "3.208.0" + "@aws-sdk/util-body-length-browser" "3.188.0" + "@aws-sdk/util-body-length-node" "3.208.0" + "@aws-sdk/util-defaults-mode-browser" "3.209.0" + "@aws-sdk/util-defaults-mode-node" "3.209.0" + "@aws-sdk/util-endpoints" "3.209.0" + "@aws-sdk/util-user-agent-browser" "3.208.0" + "@aws-sdk/util-user-agent-node" "3.209.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/client-sso-oidc@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.209.0.tgz#45a353b99adf00f177b47cf5559b06769a2d2506" + integrity sha512-KSmT181IcE32lqoZsS0h400qiL/BSQ84DS1iPOqP0NkLcgnvmOkKygVpYjTql2xSUWLQBwPNFihYJ+jmAj3HtQ== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/config-resolver" "3.209.0" + "@aws-sdk/fetch-http-handler" "3.208.0" + "@aws-sdk/hash-node" "3.208.0" + "@aws-sdk/invalid-dependency" "3.208.0" + "@aws-sdk/middleware-content-length" "3.208.0" + "@aws-sdk/middleware-endpoint" "3.208.0" + "@aws-sdk/middleware-host-header" "3.208.0" + "@aws-sdk/middleware-logger" "3.208.0" + "@aws-sdk/middleware-recursion-detection" "3.208.0" + "@aws-sdk/middleware-retry" "3.209.0" + "@aws-sdk/middleware-serde" "3.208.0" + "@aws-sdk/middleware-stack" "3.208.0" + "@aws-sdk/middleware-user-agent" "3.208.0" + "@aws-sdk/node-config-provider" "3.209.0" + "@aws-sdk/node-http-handler" "3.208.0" + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/smithy-client" "3.209.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/url-parser" "3.208.0" + "@aws-sdk/util-base64" "3.208.0" + "@aws-sdk/util-body-length-browser" "3.188.0" + "@aws-sdk/util-body-length-node" "3.208.0" + "@aws-sdk/util-defaults-mode-browser" "3.209.0" + "@aws-sdk/util-defaults-mode-node" "3.209.0" + "@aws-sdk/util-endpoints" "3.209.0" + "@aws-sdk/util-user-agent-browser" "3.208.0" + "@aws-sdk/util-user-agent-node" "3.209.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/client-sso@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.209.0.tgz#61c6067842cb0af863d5cae5ef8e1c85cd67d3fd" + integrity sha512-rh9QktLCOVTbvDzCb0ikSe4Q1I35Wxcx5XZ7k1J+2ze54FOBfCr3vOwcQpo5tpYWEe1Ysbt3gvA8RAqj9oDFdw== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/config-resolver" "3.209.0" + "@aws-sdk/fetch-http-handler" "3.208.0" + "@aws-sdk/hash-node" "3.208.0" + "@aws-sdk/invalid-dependency" "3.208.0" + "@aws-sdk/middleware-content-length" "3.208.0" + "@aws-sdk/middleware-endpoint" "3.208.0" + "@aws-sdk/middleware-host-header" "3.208.0" + "@aws-sdk/middleware-logger" "3.208.0" + "@aws-sdk/middleware-recursion-detection" "3.208.0" + "@aws-sdk/middleware-retry" "3.209.0" + "@aws-sdk/middleware-serde" "3.208.0" + "@aws-sdk/middleware-stack" "3.208.0" + "@aws-sdk/middleware-user-agent" "3.208.0" + "@aws-sdk/node-config-provider" "3.209.0" + "@aws-sdk/node-http-handler" "3.208.0" + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/smithy-client" "3.209.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/url-parser" "3.208.0" + "@aws-sdk/util-base64" "3.208.0" + "@aws-sdk/util-body-length-browser" "3.188.0" + "@aws-sdk/util-body-length-node" "3.208.0" + "@aws-sdk/util-defaults-mode-browser" "3.209.0" + "@aws-sdk/util-defaults-mode-node" "3.209.0" + "@aws-sdk/util-endpoints" "3.209.0" + "@aws-sdk/util-user-agent-browser" "3.208.0" + "@aws-sdk/util-user-agent-node" "3.209.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/client-sts@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.209.0.tgz#bda5bc27a1df1db9a2cfc056d9bb8bd2ff815a86" + integrity sha512-zWlM+9/JbshEgrG79KZlqYusUziKiKqe8vRlvQ9wcuEHNbQnAri4UvObEKik+7YpTBeP3mR+US1T71G0PqJByw== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/config-resolver" "3.209.0" + "@aws-sdk/credential-provider-node" "3.209.0" + "@aws-sdk/fetch-http-handler" "3.208.0" + "@aws-sdk/hash-node" "3.208.0" + "@aws-sdk/invalid-dependency" "3.208.0" + "@aws-sdk/middleware-content-length" "3.208.0" + "@aws-sdk/middleware-endpoint" "3.208.0" + "@aws-sdk/middleware-host-header" "3.208.0" + "@aws-sdk/middleware-logger" "3.208.0" + "@aws-sdk/middleware-recursion-detection" "3.208.0" + "@aws-sdk/middleware-retry" "3.209.0" + "@aws-sdk/middleware-sdk-sts" "3.208.0" + "@aws-sdk/middleware-serde" "3.208.0" + "@aws-sdk/middleware-signing" "3.208.0" + "@aws-sdk/middleware-stack" "3.208.0" + "@aws-sdk/middleware-user-agent" "3.208.0" + "@aws-sdk/node-config-provider" "3.209.0" + "@aws-sdk/node-http-handler" "3.208.0" + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/smithy-client" "3.209.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/url-parser" "3.208.0" + "@aws-sdk/util-base64" "3.208.0" + "@aws-sdk/util-body-length-browser" "3.188.0" + "@aws-sdk/util-body-length-node" "3.208.0" + "@aws-sdk/util-defaults-mode-browser" "3.209.0" + "@aws-sdk/util-defaults-mode-node" "3.209.0" + "@aws-sdk/util-endpoints" "3.209.0" + "@aws-sdk/util-user-agent-browser" "3.208.0" + "@aws-sdk/util-user-agent-node" "3.209.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.208.0" + fast-xml-parser "4.0.11" + tslib "^2.3.1" + + "@aws-sdk/config-resolver@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.209.0.tgz#88132abc79aa4763e042177595f1f5288b6f3abe" + integrity sha512-wLXI1Jg9xx9wE8vdIfOgSKnoBWbn9j3IvW4+7PnM/nf5xC30/Jp4j+JndEG/BKyDQF7HJQTIeRpSkwKaqJhCRA== + dependencies: + "@aws-sdk/signature-v4" "3.208.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/util-config-provider" "3.208.0" + "@aws-sdk/util-middleware" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/credential-provider-cognito-identity@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.209.0.tgz#faf92c820962e451f4f75d2abce063c3953a3b0d" + integrity sha512-31OAwgElZlJyPoV0WwerRSIrrlMlbXX6rpoBceHu9m+wACu18P+GwqKjMCjTL04Q+z7zr699pLCLp5lbLYJe3w== + dependencies: + "@aws-sdk/client-cognito-identity" "3.209.0" + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/credential-provider-env@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.208.0.tgz#5bc653ea24acbd1e80ee9e218fde2ecf44af7043" + integrity sha512-FB+KUSpZc03wVTXxGnMmgtaP0sJOv0D7oyogHb7wcf5b7RjjwqoaeUcJHTdKRZaW6e1foLk3/L9uebxiWefDbQ== + dependencies: + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/credential-provider-imds@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.209.0.tgz#9ad521de804abdbc8e6c9125b2c7b22d6d5aceb0" + integrity sha512-EjA1nWduIHjALjNF6O2lpKVOoTIlfGHgvqCxjFf7XNqBTTKWCxEflcmUgqXwo9A7TU0mTTyr7nLGMAsNE2CR3w== + dependencies: + "@aws-sdk/node-config-provider" "3.209.0" + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/url-parser" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/credential-provider-ini@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.209.0.tgz#8ddb84d63f3db0027b52afe3a2deb2e037eee8ea" + integrity sha512-aszuzkKIg7V+tCcq8RNpr1dAyECXWvJRAvzlmE5ZBYtjHMIX/qVAqSP4sfLNeI/Qagyj7W0TeVA1XVRjkivjYA== + dependencies: + "@aws-sdk/credential-provider-env" "3.208.0" + "@aws-sdk/credential-provider-imds" "3.209.0" + "@aws-sdk/credential-provider-sso" "3.209.0" + "@aws-sdk/credential-provider-web-identity" "3.208.0" + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/shared-ini-file-loader" "3.209.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/credential-provider-node@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.209.0.tgz#f3a9612f6b14f1f0a4ab6a92a11f7a74def2d407" + integrity sha512-R0kV6B+GxbfdSowf/6eeEAHZC6X7P/IxJ/o/gCuMmAOixge0e6AWVgCvrd0cg0togJHWbmoYSuUyqWPIMxM1Yg== + dependencies: + "@aws-sdk/credential-provider-env" "3.208.0" + "@aws-sdk/credential-provider-imds" "3.209.0" + "@aws-sdk/credential-provider-ini" "3.209.0" + "@aws-sdk/credential-provider-process" "3.209.0" + "@aws-sdk/credential-provider-sso" "3.209.0" + "@aws-sdk/credential-provider-web-identity" "3.208.0" + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/shared-ini-file-loader" "3.209.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/credential-provider-process@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.209.0.tgz#6db05007ff8a49b88d602ba3ac329daa5b54d508" + integrity sha512-G0urC5p1kgUfgpK8lncdisSewa8onnoQAVdf2Uh51hOqc7UufGce+ouvLH8J2iMkMaL1MSyu8fqwfZNyDtH37g== + dependencies: + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/shared-ini-file-loader" "3.209.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/credential-provider-sso@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.209.0.tgz#d8ec04bcd6d201e5913457da9a4e2ca8ad72263c" + integrity sha512-SKzUYOn2EFx58+iU1KihGLtBz9s1jolWUQ6HYxOy4AkWnZVGUt9Vb4mIo6wB07nSSUgYRxOSYn21SKvvBzpc2g== + dependencies: + "@aws-sdk/client-sso" "3.209.0" + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/shared-ini-file-loader" "3.209.0" + "@aws-sdk/token-providers" "3.209.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/credential-provider-web-identity@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.208.0.tgz#f9461bfdb05cd0e8105a877e3420245ca0698430" + integrity sha512-7wtrdEr8uvDr5t0stimrXGsW4G+TQyluZ9OucCCY0HXgNihmnk1BIu+COuOSxRtFXHwCh4rIPaVE1ABG2Mq24g== + dependencies: + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/credential-providers@^3.186.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.209.0.tgz#9762fcae45dfb266956750bec5145591979e1dce" + integrity sha512-/oQJwzTedZC5TbQJ2pwHcpbcZS7O1RzP/3+cICw73WrIjlrpS1JGmTCvTGrIfGE8RUk5GKdLN3fjgTpVCS82cA== + dependencies: + "@aws-sdk/client-cognito-identity" "3.209.0" + "@aws-sdk/client-sso" "3.209.0" + "@aws-sdk/client-sts" "3.209.0" + "@aws-sdk/credential-provider-cognito-identity" "3.209.0" + "@aws-sdk/credential-provider-env" "3.208.0" + "@aws-sdk/credential-provider-imds" "3.209.0" + "@aws-sdk/credential-provider-ini" "3.209.0" + "@aws-sdk/credential-provider-node" "3.209.0" + "@aws-sdk/credential-provider-process" "3.209.0" + "@aws-sdk/credential-provider-sso" "3.209.0" + "@aws-sdk/credential-provider-web-identity" "3.208.0" + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/shared-ini-file-loader" "3.209.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/fetch-http-handler@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.208.0.tgz#b7d6e46cd6fdb635498a8de12bed6611b0eff6eb" + integrity sha512-GuwkwOeyLKCbSbnFlyHdlKd7u54cnQUI8NfVDAxpZvomY3PV476Tzg8XEyOYE67r5rR6XMqn6IK1PmFAACY+ew== + dependencies: + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/querystring-builder" "3.208.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/util-base64" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/hash-node@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.208.0.tgz#5dfeca399e1c6cfc73e1fa37479f4e32dfb42972" + integrity sha512-X5u6nD9+wzaA6qhqbobxsIgiyDJMW8NgqjZgHoc5x1wz4unHUCEuSBZy1kbIZ6+EPZ9bQHQZ21gKgf1j5vhsvQ== + dependencies: + "@aws-sdk/types" "3.208.0" + "@aws-sdk/util-buffer-from" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/invalid-dependency@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.208.0.tgz#7efeec2b9cd89c66e2840add2dcd3aa46fd7a665" + integrity sha512-mUpbtijk14KntYy+w5FSvmsfj/Dqa8HylYeCKniKBKkQ1avjEz7CdizVoxyZrR3rldnLE3gItr0FEDRUhtfkAA== + dependencies: + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/is-array-buffer@3.201.0": + version "3.201.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz#06e557adc284fac2f26071c2944ae01f61b95854" + integrity sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg== + dependencies: + tslib "^2.3.1" + + "@aws-sdk/middleware-content-length@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.208.0.tgz#72a1d85fb8650c230d6a6d2599493fe8c65e2a8b" + integrity sha512-8bLh7lHtmKQQ2fk0fGiP7pcVJglB/dz7Q9OooxFYK+eybqxfIDDUgKphA8AFT5W34tJRh5nhT3QTJ6zrOTQM3w== + dependencies: + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/middleware-endpoint@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.208.0.tgz#b4bfeda86cd715d230dbcae81b874831cdab2cf4" + integrity sha512-pVa/cyB6ronfTVAoKUUTFbAPslDPU43DWOKXY/bACC3ys1lFo1CWjz4dLSQARxEEW3iZ1yZTy0zoHXnNrw5CFQ== + dependencies: + "@aws-sdk/middleware-serde" "3.208.0" + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/signature-v4" "3.208.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/url-parser" "3.208.0" + "@aws-sdk/util-config-provider" "3.208.0" + "@aws-sdk/util-middleware" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/middleware-host-header@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.208.0.tgz#48beb23baae85ecace2963f5eef1df02cee285ba" + integrity sha512-3oyXK81TLWOZ2T/9Ltpbj/Z7R4QWSf+FCQRpY48ND2im/ALkgFRk/tmDTOshv+TQzW1q2lOSEeq4vK6yOCar7g== + dependencies: + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/middleware-logger@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.208.0.tgz#f0c6dcf3d6c686fe0d1abf5fb4d02f4f0ee65373" + integrity sha512-mwSpuWruB8RrgUAAW7w/lvadnMDesl/bZ2IELBgJri+2rIqLGbAtygJBiG0Y3e8/IeOHuKuGkN1rFYZ4SKr7/A== + dependencies: + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/middleware-recursion-detection@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.208.0.tgz#210200e409fedf7ae31dc591e2df1839c33d4af3" + integrity sha512-Dgpf5NEOYXvkQuGcbxvDovTh4HwO4ULJReGko67NJjgdZZyFS1fNykVPncxenRpsN9SJBigswYs3lwPVpqijzA== + dependencies: + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/middleware-retry@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.209.0.tgz#7508046a2bd0670b91cc000c84011b004457d9c7" + integrity sha512-PGHbpGw74HxmtqsMEH+xn2oC5/BPdHVyapB66x83n+sywt1ejTiarbQhNs70YzcSsTrJfbhbrFP1V9AzRmMaQA== + dependencies: + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/service-error-classification" "3.208.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/util-middleware" "3.208.0" + tslib "^2.3.1" + uuid "^8.3.2" + + "@aws-sdk/middleware-sdk-sts@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.208.0.tgz#fd7ea287e944b9fc99a71ca143ea49bd36b6c49b" + integrity sha512-lFVodZHYLF7puXgNZ1m5ycKbyCPp79nqI+pkRXl066ZtZWzCW8+JKCaLjF3jfXlnvg6foPDJdxUvt0VU5EddGg== + dependencies: + "@aws-sdk/middleware-signing" "3.208.0" + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/signature-v4" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/middleware-serde@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.208.0.tgz#d16474ee3897b1c6cd52979d69cc8b36f490b771" + integrity sha512-3h2yP6qyf/IhfdvyFeNX7w4BF37vOZvfUDBq+wb1QEc7DCAskoUKWtCCKJ9HDq3IJQp8hzqY82eawUir6flqlQ== + dependencies: + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/middleware-signing@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.208.0.tgz#28e3c45f11d114704a7c78a3cfef8b6e51610126" + integrity sha512-cMSWhg8xOrxZw04EYKEQQQ7RT+03rigS4KS3Uy6x/M+jFyoM+sRiY/7376sJCwlpvKH2xJIVpwPbKk/uz4j4DA== + dependencies: + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/signature-v4" "3.208.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/util-middleware" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/middleware-stack@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.208.0.tgz#8cd5da676db9f58fb5b3f8593aaab334485c413e" + integrity sha512-bvFPUa+RTB7PSRCUsO6bRlEtiEadrDES+dpNmInMNQ9kmbd4OhNOCb664hhtiglIIXX5cd8mSPEo+w/RV0kEEQ== + dependencies: + tslib "^2.3.1" + + "@aws-sdk/middleware-user-agent@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.208.0.tgz#4fe36f9ced65a487536d23b9679c549b830d7d0d" + integrity sha512-6RNf+TOZpiCy7xUcDSh8ji/x8ht1oAM+qIhm6hsEPLdI1cTvbPZrwowO9Y6L0J68V9OkEgLYiq77KKKYT7QQSw== + dependencies: + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/node-config-provider@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.209.0.tgz#c621abfc1816533e5e2013b7943eb86cd1363c0c" + integrity sha512-jNrUn8qTN9BIxHCcLTv2s2h8Riaz4kjwDhubVQNyI0WGZ+PYKATnZjA+Guzbnq2WMzZmwrMIE5GoOiVsPD8xYQ== + dependencies: + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/shared-ini-file-loader" "3.209.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/node-http-handler@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.208.0.tgz#69fa111ff7064e6891ae78dfc22aef86a57d7d58" + integrity sha512-2t0b9Id7WekluqxQdPugAZhe/wdzW0L53rfMEfDS3R0INNSq1sEfddIfCzJrmfWDCrCOGIDNyxo/w7Ki3NclzQ== + dependencies: + "@aws-sdk/abort-controller" "3.208.0" + "@aws-sdk/protocol-http" "3.208.0" + "@aws-sdk/querystring-builder" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/property-provider@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.208.0.tgz#d3b153ee36c92df9000f9c6f9132b70ad50596c2" + integrity sha512-aUhfuwXjZ5TGzLhBstuAMmbnxHXeSGhzoIS8yy465ifgc95p6cHFZf+ZibgwgCMaGrKlTDCia2zwwpKQHN+4cw== + dependencies: + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/protocol-http@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.208.0.tgz#e58d0cd04978a3ed97b6c165c1fc19ff1437139e" + integrity sha512-Sr9dmaW0Z9X9s16NHZn94efLRpaqLyLqABFPgjqE8cYP6eLX/VrmZGNR62GFVxCiyEEpVxy4Ddk1YkbRwnuonA== + dependencies: + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/querystring-builder@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.208.0.tgz#fc2dcef63700a39739d540689c2a4b58995133ee" + integrity sha512-1Rpauh5hWlK++KjsHQjHcSN7yE05hj1FVb0HaeLrFIJB5rQYWXK7DpOUhmv5SOmU+q6cIM2kNCrSxH31+WglMw== + dependencies: + "@aws-sdk/types" "3.208.0" + "@aws-sdk/util-uri-escape" "3.201.0" + tslib "^2.3.1" + + "@aws-sdk/querystring-parser@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.208.0.tgz#0409561bb71a67b274277e7b57ecde1b07220f9a" + integrity sha512-dVVLdP3il9bJX74/BNBjFn59XrEVBUZ4xSKYH6t7dgSz9uSu8DcT4pPzwaq+/94dVewCW3zq2jVA1iw1rK7JVQ== + dependencies: + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/service-error-classification@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.208.0.tgz#fb14070c7863f7637fd7ef14afe0df2949e8ec83" + integrity sha512-ZZWV3AOTd8UDcfXCNoQ8v4sHaTgFxGaXWO0NHHgqFbVYr1d+8EXQiOy/v8JsY1jrfoXBWXptTOcioCTeM0xBpw== + + "@aws-sdk/shared-ini-file-loader@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.209.0.tgz#0f8d6ca76516a8fbe37aca4d1b446d914f5f5525" + integrity sha512-hji3B/q3zFuElaUQM/ZZUFbCFBsaVjpWATgiDTnSYP+MShWvvwm/WigeC2aCNos1bs/8HVizOy9cmvK63vLZbw== + dependencies: + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/signature-v4@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.208.0.tgz#61f248b60c5ab34722d17e50af34f0ce7e13c63c" + integrity sha512-+c5A8RsN4Lk3TXFiQ3ZsW7sJ4zYPPmYQ55ITSfjock5hzgM1vW43Mgvjjq6foW5L7SNfdhLH+NrhpgFwSF/GeA== + dependencies: + "@aws-sdk/is-array-buffer" "3.201.0" + "@aws-sdk/types" "3.208.0" + "@aws-sdk/util-hex-encoding" "3.201.0" + "@aws-sdk/util-middleware" "3.208.0" + "@aws-sdk/util-uri-escape" "3.201.0" + tslib "^2.3.1" + + "@aws-sdk/smithy-client@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.209.0.tgz#61ab9ca8396b6ffb36eb4968f284cd214571491d" + integrity sha512-+d9lPAFOu3hZdLfyzMurRU6xZ+eqwKbF6HY7mDL4hGafRb/uw28HBncSwyUk5s7MIND9+RnvY4F/MwBq9wznXg== + dependencies: + "@aws-sdk/middleware-stack" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/token-providers@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.209.0.tgz#fedcc8c7d8587aadd46c922db8c047a1a9b4213a" + integrity sha512-MMtL/yD98SxjejcZYghLN4qhC1TDNeHjnzb+zBcXANxgh5m+QdhERsZkDGU8QiEo+DL6M2HKbwyXu82z89sqnQ== + dependencies: + "@aws-sdk/client-sso-oidc" "3.209.0" + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/shared-ini-file-loader" "3.209.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/types@3.208.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.208.0.tgz#b674c31d6ebd34f970102b96bb128b7c2e28a670" + integrity sha512-5AuOPtY1Hdf4xoEo+voRijl3OnFm8IB+oITXl+SN2iASJv+XPnRNw/QVbIxfGeWgWhmK31F+XdjTYsjT2rx8Qw== + + "@aws-sdk/url-parser@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.208.0.tgz#2af6d80ed1eba61ce3fd73b48f78c1db168e25c3" + integrity sha512-zhU231xkZbUh68Z/TGNRW30MGTZQVigGuMiJU6eOtL2aOulnKqI1Yjs/QejrTtPWsqSihWvxOUZ2cVRPyeOvrA== + dependencies: + "@aws-sdk/querystring-parser" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/util-base64@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz#36b430e5396251f761590f7c2f0c5c12193f353c" + integrity sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg== + dependencies: + "@aws-sdk/util-buffer-from" "3.208.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.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz#baabd1fa1206ff2bd4ce3785122d86eb3258dd20" + integrity sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg== + dependencies: + tslib "^2.3.1" + + "@aws-sdk/util-buffer-from@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz#285e86f6dc9030148a4147d65239e75cb254a1b0" + integrity sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw== + dependencies: + "@aws-sdk/is-array-buffer" "3.201.0" + tslib "^2.3.1" + + "@aws-sdk/util-config-provider@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz#c485fd83fbac051337e5f6be60ea3f9fa61c0139" + integrity sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg== + dependencies: + tslib "^2.3.1" + + "@aws-sdk/util-defaults-mode-browser@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.209.0.tgz#a410b7d59d70cc6c2f8e1cba5f01239793e1cab1" + integrity sha512-c+AlHqsgeDr9+87fS1wfnyVzEH3myt56GvNt0puzIv0QQqfpobMnfN8/Fy0cqMpf1eQNYY4a6lFlkComsXi5dw== + dependencies: + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/types" "3.208.0" + bowser "^2.11.0" + tslib "^2.3.1" + + "@aws-sdk/util-defaults-mode-node@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.209.0.tgz#515e0b0a1f82d4efc5c462840db323c64458b925" + integrity sha512-RljPVLog6EX052DQjx4XQ95n7ZiAbmn7Vd6YSn1x93U797umaC5CnrT7a/WusTQACtxBDFWcosRgO1ZGDXuRKQ== + dependencies: + "@aws-sdk/config-resolver" "3.209.0" + "@aws-sdk/credential-provider-imds" "3.209.0" + "@aws-sdk/node-config-provider" "3.209.0" + "@aws-sdk/property-provider" "3.208.0" + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/util-endpoints@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.209.0.tgz#b0a571906767da3273ec022fb0250d7b02d8b40b" + integrity sha512-jwraCtWjQ0P4LyIg4qoQRF94mTUg0zFPmicy4v+Dq1V8BBRf6YWa9B10SoIdGIKQXmQvoyahK5OuH5SWKkY2pw== + dependencies: + "@aws-sdk/types" "3.208.0" + tslib "^2.3.1" + + "@aws-sdk/util-hex-encoding@3.201.0": + version "3.201.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz#21d7ec319240ee68c33d938e71cb79830bea315d" + integrity sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA== + dependencies: + tslib "^2.3.1" + + "@aws-sdk/util-locate-window@^3.0.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz#0f598fc238a1256e4bcb64d01459f03a922dd4c3" + integrity sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg== + dependencies: + tslib "^2.3.1" + + "@aws-sdk/util-middleware@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.208.0.tgz#e3f13d19042b34c83bb95294d26f125675bf5647" + integrity sha512-oXilrYpXwaPyMw1uNjL1wmR54zeFzIWx2ve1MSMheIYr26deFP3RpMfKkGXwiOvXzZ9pzTcA8shNLhg1frO/zg== + dependencies: + tslib "^2.3.1" + + "@aws-sdk/util-uri-escape@3.201.0": + version "3.201.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz#5e708d4cde001a4558ee616f889ceacfadd2ab03" + integrity sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA== + dependencies: + tslib "^2.3.1" + + "@aws-sdk/util-user-agent-browser@3.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.208.0.tgz#cdc629bee35b24598017941e8d9324bd78dd5cb2" + integrity sha512-Z5n9Kg2pBstzzQgRymQRgb4pM0bNPLGQejB3ZmCAphaxvuTBfu2E6KO55h5WwkFHUuh0i5u2wn1BI9R66S8CgQ== + dependencies: + "@aws-sdk/types" "3.208.0" + bowser "^2.11.0" + tslib "^2.3.1" + + "@aws-sdk/util-user-agent-node@3.209.0": + version "3.209.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.209.0.tgz#551b016611453139820224aee630e2b39de34f2a" + integrity sha512-lWfvnSX8rckMGaalrKZmBlPW7F0QOviG7XbLffwToN4HnYUyXcZXIE4EzOQzuOvDsOUlos/xLkUj6krdIAApcA== + dependencies: + "@aws-sdk/node-config-provider" "3.209.0" + "@aws-sdk/types" "3.208.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.208.0": + version "3.208.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz#eba17de0f92f87b98481c2e2d0ceaa05c7994d67" + integrity sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ== + dependencies: + "@aws-sdk/util-buffer-from" "3.208.0" + tslib "^2.3.1" + + "@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + + "@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + + "@electron/get@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40" + integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^3.0.0" + global-tunnel-ng "^2.7.1" + + "@jridgewell/gen-mapping@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + + "@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + + "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + + "@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + + "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + + "@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + + "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + + "@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + + "@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + + "@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + + "@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + + "@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + + "@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + + "@types/babel-types@*", "@types/babel-types@^7.0.0": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.11.tgz#263b113fa396fac4373188d73225297fb86f19a9" + integrity sha512-pkPtJUUY+Vwv6B1inAz55rQvivClHJxc9aVEPPmaq2cbyeMLCiDpbKpcKyX4LAwpNGi+SHBv0tHv6+0gXv0P2A== + + "@types/babylon@^6.16.2": + version "6.16.6" + resolved "https://registry.yarnpkg.com/@types/babylon/-/babylon-6.16.6.tgz#a1e7e01567b26a5ebad321a74d10299189d8d932" + integrity sha512-G4yqdVlhr6YhzLXFKy5F7HtRBU8Y23+iWy7UKthMq/OSQnL1hbsoeXESQ2LY8zEDlknipDG3nRGhUC9tkwvy/w== + dependencies: + "@types/babel-types" "*" + + "@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + + "@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + + "@types/cookie-parser@^1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@types/cookie-parser/-/cookie-parser-1.4.3.tgz#3a01df117c5705cf89a84c876b50c5a1fd427a21" + integrity sha512-CqSKwFwefj4PzZ5n/iwad/bow2hTCh0FlNAeWLtQM3JA/NX/iYagIpWG2cf1bQKQ2c9gU2log5VUCrn7LDOs0w== + dependencies: + "@types/express" "*" + + "@types/debug@^4.1.7": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + + "@types/electron@^1.6.10": + version "1.6.10" + resolved "https://registry.yarnpkg.com/@types/electron/-/electron-1.6.10.tgz#7e87888ed3888767cca68e92772c2c8ea46bc873" + integrity sha512-MOCVyzIwkBEloreoCVrTV108vSf8fFIJPsGruLCoAoBZdxtnJUqKA4lNonf/2u1twSjAspPEfmEheC+TLm/cMw== + dependencies: + electron "*" + + "@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + + "@types/eslint@*": + version "8.4.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb" + integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + + "@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + + "@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + + "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": + version "4.17.31" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" + integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + + "@types/express-ws@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/express-ws/-/express-ws-3.0.1.tgz#6fbf5dfdbeedd16479ccbeecbca63c14be26612e" + integrity sha512-VguRXzcpPBF0IggIGpUoM65cZJDfMQxoc6dKoCz1yLzcwcXW7ft60yhq3ygKhyEhEIQFtLrWjyz4AJ1qjmzCFw== + dependencies: + "@types/express" "*" + "@types/express-serve-static-core" "*" + "@types/ws" "*" + + "@types/express@*", "@types/express@^4.17.14": + version "4.17.14" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" + integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + + "@types/json-schema@*", "@types/json-schema@^7.0.8": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + + "@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + + "@types/mongoose@^5.11.97": + version "5.11.97" + resolved "https://registry.yarnpkg.com/@types/mongoose/-/mongoose-5.11.97.tgz#80b0357f3de6807eb597262f52e49c3e13ee14d8" + integrity sha512-cqwOVYT3qXyLiGw7ueU2kX9noE8DPGRY6z8eUxudhXY8NZ7DMKYAxyZkLSevGfhCX3dO/AoX5/SO9lAzfjon0Q== + dependencies: + mongoose "*" + + "@types/morgan@^1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@types/morgan/-/morgan-1.9.3.tgz#ae04180dff02c437312bc0cfb1e2960086b2f540" + integrity sha512-BiLcfVqGBZCyNCnCH3F4o2GmDLrpy0HeBVnNlyZG4fo88ZiE9SoiBe3C+2ezuwbjlEyT+PDZ17//TAlRxAn75Q== + dependencies: + "@types/node" "*" + + "@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + + "@types/node@*", "@types/node@^18.11.9": + version "18.11.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" + integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== + + "@types/node@^16.11.26": + version "16.18.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.3.tgz#d7f7ba828ad9e540270f01ce00d391c54e6e0abc" + integrity sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg== + + "@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + + "@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + + "@types/rpi-gpio@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@types/rpi-gpio/-/rpi-gpio-2.1.1.tgz#1f9c04926bae9bc95461c428b0397cf9f7ddbc4a" + integrity sha512-GGKVP2BatDgGEnxqBe6PbE2Wu2ZqYXpW5o6GIkOsbuj5hKS4W7DtP3gz3Vq+fNQ6JIDkv9qR0YAyDR4w9He3Bw== + dependencies: + "@types/node" "*" + + "@types/rpi-ws281x-native@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/rpi-ws281x-native/-/rpi-ws281x-native-1.0.0.tgz#7de8a1fafcd2b03f848dad3b0f721319bc8a8341" + integrity sha512-DbbeQgMYmgFm6gHiZVeRV0rnJzQ3eNpz4zNqPOwgMpONYyhz3+ssQExduIIs77qZ8SOn/2c0RsZjMtbTdGtuxQ== + dependencies: + "@types/node" "*" + + "@types/serve-static@*": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== + dependencies: + "@types/mime" "*" + "@types/node" "*" + + "@types/webidl-conversions@*": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7" + integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog== + + "@types/whatwg-url@^8.2.1": + version "8.2.2" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" + integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== + dependencies: + "@types/node" "*" + "@types/webidl-conversions" "*" + + "@types/ws@*": + version "8.5.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" + integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== + dependencies: + "@types/node" "*" + + "@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + dependencies: + "@types/node" "*" + + "@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + + "@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + + "@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + + "@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + + "@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + + "@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + + "@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + + "@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + + "@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + + "@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + + "@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + + "@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + + "@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + + "@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + + "@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + + "@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== + + "@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== + dependencies: + envinfo "^7.7.3" + + "@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== + + "@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + + "@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + + 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== + + accepts@~1.3.5: + 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-globals@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" + integrity sha512-uWttZCk96+7itPxK8xCzY86PnxKTMrReKDqrHzv42VQY0K30PUO8WY13WMOuI+cOdX4EIdzdvQ8k6jkuGRFMYw== + dependencies: + acorn "^4.0.4" + + acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + + acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + + acorn@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw== + + acorn@^4.0.4, acorn@~4.0.2: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + integrity sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug== + + acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + + ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + + ajv@^6.12.5: + 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" + + align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + integrity sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg== + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + + amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== + + 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" + + 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" + + arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + + 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.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + + async-retry@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + + babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + + babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + + babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + + 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== + + basic-auth@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + + 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== + + bindings@^1.3.0, bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + + body-parser@1.18.3: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" + integrity sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ== + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" + on-finished "~2.3.0" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" + + boolean@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + + 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" + + 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" + + browserslist@^4.14.5: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + dependencies: + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" + + 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-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + + 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.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" + + bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + + cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + + call-bind@^1.0.2: + 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" + + camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g== + + caniuse-lite@^1.0.30001400: + version "1.0.30001431" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" + integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== + + center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + integrity sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ== + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + + 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" + + character-parser@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" + integrity sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw== + dependencies: + is-regex "^1.0.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" + + chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + + clean-css@^3.3.0: + version "3.4.28" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.28.tgz#bf1945e82fc808f55695e6ddeaec01400efd03ff" + integrity sha512-aTWyttSdI2mYi07kWqHi24NUU9YlELFKGOAgFzZjDN1064DMAOy2FBuoyGmkKRlXkbpXd0EVHmiVkbKhKoirTw== + dependencies: + commander "2.8.x" + source-map "0.4.x" + + cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + integrity sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA== + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + + clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + + clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + + 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.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== + + colorette@^2.0.14: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + + commander@2.8.x: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + integrity sha512-+pJLBFVk+9ZZdlAOB5WuIElVPPth47hILFkmGym57aq8kwxsowvByvB0DHs1vQAhyMZzdcpTtF0VDKGkSDR4ZQ== + dependencies: + graceful-readlink ">= 1.0.0" + + commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + + commander@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + + 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== + + config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + + constantinople@^3.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-3.1.2.tgz#d45ed724f57d3d10500017a7d3a889c1381ae647" + integrity sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw== + dependencies: + "@types/babel-types" "^7.0.0" + "@types/babylon" "^6.16.2" + babel-types "^6.26.0" + babylon "^6.18.0" + + content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== + + 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-parser@^1.4.6: + version "1.4.6" + resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" + integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== + dependencies: + cookie "0.4.1" + cookie-signature "1.0.6" + + 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.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw== + + cookie@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + + core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + + create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + + 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" + + 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.x, debug@^4.1.0, debug@^4.1.1, 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.1.0, 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.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + + decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + + defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + + define-properties@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + + 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@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + + 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.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg== + + detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + + diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + + doctypes@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" + integrity sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ== + + duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + + 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== + + electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== + + electron@*: + version "21.2.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-21.2.2.tgz#e2f3dd014981df555d2cd1655590168b404edae4" + integrity sha512-Q0j1tzLTM5JRjSJVAfDSONZgdtuyruHR1pc1y2IbMYQz62pVJWVWAvcJXzpty5iRh2HKzW9+B9WVlmfWNFA8ag== + dependencies: + "@electron/get" "^1.14.1" + "@types/node" "^16.11.26" + extract-zip "^2.0.1" + + encodeurl@^1.0.2, 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: + 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" + + enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" + integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + + env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + + envinfo@^7.7.3: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + + epoll@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/epoll/-/epoll-2.0.10.tgz#aae54a267d7fb8108074b62646d658b267f73915" + integrity sha512-kx5y1SxivN99HjXDZpE/A73FHJV/dzRQt+qoF88CEza3RcEKGqNfkXPPY/oqVBV5w6G2N6b8xd5s5zprgrUVnQ== + dependencies: + bindings "^1.5.0" + nan "^2.14.0" + + epoll@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/epoll/-/epoll-4.0.1.tgz#62b787d29980394798fa7b9a45fbefea518fc732" + integrity sha512-BgCq0nEsk+XI7y9qjrRtt9uXsyFEdvevvq42xl6t/hKZjxLSDZreD9rTZ0pU40V//c3Zzk2PZGuIsn8YJHSJ4g== + dependencies: + bindings "^1.5.0" + nan "^2.14.2" + + es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + + es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + + 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: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + + eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + + 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@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + + 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== + + events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + + express-ws@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/express-ws/-/express-ws-5.0.2.tgz#5b02d41b937d05199c6c266d7cc931c823bda8eb" + integrity sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ== + dependencies: + ws "^7.4.6" + + express@~4.16.1: + version "4.16.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== + dependencies: + accepts "~1.3.5" + array-flatten "1.1.1" + body-parser "1.18.3" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.4" + qs "6.5.2" + range-parser "~1.2.0" + safe-buffer "5.1.2" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + + extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + + fast-deep-equal@^3.1.1: + 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-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" + + fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + + fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + + file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + + 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.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.4.0" + unpipe "~1.0.0" + + find-up@^4.0.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" + + 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-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + + 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== + + get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + + get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + + get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + + 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-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + + global-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" + integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== + dependencies: + boolean "^3.0.1" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + + global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + + globalthis@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + + got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + + "graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w== + + 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-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + + has-symbols@^1.0.2, 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-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + + 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" + + hc-sr04@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/hc-sr04/-/hc-sr04-0.0.1.tgz#f062a3bd6ee1d544d93345795a007067770b0c6f" + integrity sha512-ApE3UtyAYANbqaWG3+swzUN5g6e0lRIsLRvBd8VH5IeaqcIGQv3Q9rDY1VnDPt69MfKKaWzlqKCPJ016XiSjgQ== + dependencies: + onoff "^6.0.3" + + http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + + http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + + iconv-lite@0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + + ieee754@^1.1.13: + 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== + + import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + + inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + + ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + + interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + + 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-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-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + + is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + + is-expression@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f" + integrity sha512-vyMeQMq+AiH5uUnoBfMTwf18tO3bM6k1QXBE9D6ueAAquEfCZe3AJPtud9g6qS0+4X8xA7ndpZiDyeb2l2qOBw== + dependencies: + acorn "~4.0.2" + object-assign "^4.0.1" + + 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-glob@^4.0.1, 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-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + + is-promise@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + + is-regex@^1.0.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + + isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + + isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + + jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + + js-stringify@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" + integrity sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g== + + json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + + json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + + 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-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + + jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + + jstransformer@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" + integrity sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A== + dependencies: + is-promise "^2.0.0" + promise "^7.0.1" + + kareem@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.4.1.tgz#7d81ec518204a48c1cb16554af126806c3cd82b0" + integrity sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA== + + keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + + kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + + kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + + lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ== + + loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + + 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" + + lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + + lodash@^4.17.10, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + + longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg== + + lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + + lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + + 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" + + make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + + matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^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== + + 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: + 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.0: + 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.27, 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.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== + + mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + + 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" + + 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" + + mongoose@*, mongoose@^6.7.2: + version "6.7.2" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.7.2.tgz#457994b254a2afd1e03dd8f0b3046ff3d2ed276e" + integrity sha512-lrP2V5U1qhaf+z33fiIn7aYAZZ1fVDly+TkFRjTujNBF/FIHESATj2RbgAOSlWqv32fsZXkXejXzeVfjbv35Ow== + 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" + + morgan@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== + dependencies: + basic-auth "~2.0.1" + debug "2.6.9" + depd "~2.0.0" + on-finished "~2.3.0" + on-headers "~1.0.2" + + 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== + + nan@2.14.*: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + + nan@^2.14.0, nan@^2.14.2: + version "2.17.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== + + 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== + + neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + + net-ping@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/net-ping/-/net-ping-1.2.3.tgz#c4dd248f6e3d8d73db6928002106bb71ceae4a40" + integrity sha512-ZKxj/kVPKL2RIsV9nR6I8nMT8Pi3k6ciTBKxD/6gd5lga9qcNmlyqNv+dbXqYGBvHsmG9yIpsfajr8X054x2fQ== + dependencies: + raw-socket "*" + + node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + + 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== + + normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + + npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + + object-assign@^4.0.1, object-assign@^4.1.0: + 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-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + + on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + + on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + + 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" + + onoff@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/onoff/-/onoff-6.0.3.tgz#b8e41aec363bebbb3d76e47d74b8ae9cea8d4280" + integrity sha512-xtVlwRDzswYM69bzzIui/qzu7QHsFnjsQiCV1iYVA/HXt5xdc9utc97SYAlXzK8wAhIN7+H7MaVqh2vpfdKk9A== + dependencies: + epoll "^4.0.1" + lodash.debounce "^4.0.8" + + p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + + 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-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-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== + + parseurl@~1.3.2: + 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-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-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + + 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== + + pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + + picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + + 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== + + pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + + pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + + prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + + progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + + promise@^7.0.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + + proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + + proxy-addr@~2.0.4: + 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" + + 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== + + pug-attrs@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-2.0.4.tgz#b2f44c439e4eb4ad5d4ef25cac20d18ad28cc336" + integrity sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ== + dependencies: + constantinople "^3.0.1" + js-stringify "^1.0.1" + pug-runtime "^2.0.5" + + pug-code-gen@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-1.1.1.tgz#1cf72744ef2a039eae6a3340caaa1105871258e8" + integrity sha512-UwZaJVhjhy2kYntLqXjSV1ae+K96ve6bG+N5bLFfA6yyGJTEkguct19MWDyUM9D8CDU3NNxVctUAh5McF19E6w== + dependencies: + constantinople "^3.0.1" + doctypes "^1.1.0" + js-stringify "^1.0.1" + pug-attrs "^2.0.2" + pug-error "^1.3.2" + pug-runtime "^2.0.3" + void-elements "^2.0.1" + with "^5.0.0" + + pug-error@^1.3.2, pug-error@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-1.3.3.tgz#f342fb008752d58034c185de03602dd9ffe15fa6" + integrity sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ== + + pug-filters@^2.1.1: + version "2.1.5" + resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-2.1.5.tgz#66bf6e80d97fbef829bab0aa35eddff33fc964f3" + integrity sha512-xkw71KtrC4sxleKiq+cUlQzsiLn8pM5+vCgkChW2E6oNOzaqTSIBKIQ5cl4oheuDzvJYCTSYzRaVinMUrV4YLQ== + dependencies: + clean-css "^3.3.0" + constantinople "^3.0.1" + jstransformer "1.0.0" + pug-error "^1.3.2" + pug-walk "^1.1.5" + resolve "^1.1.6" + uglify-js "^2.6.1" + + pug-lexer@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-3.1.0.tgz#fd087376d4a675b4f59f8fef422883434e9581a2" + integrity sha512-DxXOrmCIDVEwzN2ozZBK1t4QRTR6pLv5YkqM6dLdaSHnm+LJJRBngVn4IDMMBZQR9xUpxrRm9rffmku2OEqkJw== + dependencies: + character-parser "^2.1.1" + is-expression "^3.0.0" + pug-error "^1.3.2" + + pug-linker@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-2.0.3.tgz#b331ffa25737dde69c127b56c10ff17fae766dca" + integrity sha512-ZqKljvFUl1K5L4G5WABJ5FUYWOY0K2AXLmwj2QfM7nPCUcxfsmr05SikjgXGXVoIrygGzM/iWSsXwnkWId4AHw== + dependencies: + pug-error "^1.3.2" + pug-walk "^1.1.2" + + pug-load@^2.0.5: + version "2.0.12" + resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.12.tgz#d38c85eb85f6e2f704dea14dcca94144d35d3e7b" + integrity sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg== + dependencies: + object-assign "^4.1.0" + pug-walk "^1.1.8" + + pug-parser@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-2.0.2.tgz#53a680cfd05039dcb0c27d029094bc4a792689b0" + integrity sha512-PW8kKDLN07MbFljR/GaYHPBGW+64YldtFFZUEGltJ67RRzebI/DxZy4njlxacy9JeheosyVprZ9C5DIexG1D/Q== + dependencies: + pug-error "^1.3.2" + token-stream "0.0.1" + + pug-runtime@^2.0.3, pug-runtime@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-2.0.5.tgz#6da7976c36bf22f68e733c359240d8ae7a32953a" + integrity sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw== + + pug-strip-comments@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz#cc1b6de1f6e8f5931cf02ec66cdffd3f50eaf8a8" + integrity sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw== + dependencies: + pug-error "^1.3.3" + + pug-walk@^1.1.2, pug-walk@^1.1.5, pug-walk@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.8.tgz#b408f67f27912f8c21da2f45b7230c4bd2a5ea7a" + integrity sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA== + + pug@2.0.0-beta11: + version "2.0.0-beta11" + resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.0-beta11.tgz#15abe6af5004c7e2cf4613e4b27465c9546b5f01" + integrity sha512-iV0ibDCWLJGw8eEtBKAqbJZecOabQa6hpFeH+GCBzsAsCNSvpjo4wuHMPcmqtaZhxoO3ElbMePf8jkrM9TKulw== + dependencies: + pug-code-gen "^1.1.1" + pug-filters "^2.1.1" + pug-lexer "^3.0.0" + pug-linker "^2.0.2" + pug-load "^2.0.5" + pug-parser "^2.0.2" + pug-runtime "^2.0.3" + pug-strip-comments "^1.0.2" + + 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@^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== + + qs@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + + 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.0: + 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.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" + integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== + dependencies: + bytes "3.0.0" + http-errors "1.6.3" + iconv-lite "0.4.23" + unpipe "1.0.0" + + raw-socket@*: + version "1.7.0" + resolved "https://registry.yarnpkg.com/raw-socket/-/raw-socket-1.7.0.tgz#cd0bcc3da52450dcb6b9efe7a6d0890bf1aaf9db" + integrity sha512-mXqWihgwaFNmV5le0dWk5o+03M3A2zBIkC9BNaE6R0CJN9eYot++j2FIqgNSDq6/Vmu32PPI155SiiWNV2yyFQ== + dependencies: + nan "2.14.*" + + 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" + + rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + + regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + + repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + + resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + + resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + + resolve@^1.1.6, resolve@^1.9.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + + responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== + dependencies: + lowercase-keys "^1.0.0" + + retry@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + + right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + integrity sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg== + dependencies: + align-text "^0.1.1" + + roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + + rpi-gpio@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/rpi-gpio/-/rpi-gpio-2.1.7.tgz#0a478d77133733830b4eb62075fddf5d6bb7ec82" + integrity sha512-u6McqKR6QuHP5zq/3UuXkJfY2fJHhvNaJMP58jz7pIf4OFyhBI3hh0vyYn5OGMwFbFdcBfOMC1RAPeRXLKF6YA== + dependencies: + async-retry "^1.2.1" + debug "^3.1.0" + epoll "^2.0.10" + + rpi-ws281x-native@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/rpi-ws281x-native/-/rpi-ws281x-native-1.0.4.tgz#df5a50ecfdd165f8a10df891d5eba2cec2577fcb" + integrity sha512-ieClupQGt7PkIIak5bpGaYmymh5nS448LwrkumfwPoju6gTNjlC/GSyBiyq9sFE3FLixzsDhDoYzLQff6y1jXw== + dependencies: + bindings "^1.3.0" + nan "^2.14.2" + + safe-buffer@5.1.2: + 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-buffer@^5.1.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== + + "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" + + schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + + semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + + 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@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + + semver@^7.3.2, semver@^7.3.4: + 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.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + + serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.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.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + + setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + + shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + + 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== + + 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== + + 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" + + 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" + + source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + + source-map@0.4.x: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A== + dependencies: + amdefine ">=0.0.4" + + source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + + source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + + 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" + + sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + + "statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + + statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== + + strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + + sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.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" + + supports-color@^8.0.0: + 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-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + + tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + + terser-webpack-plugin@^5.1.3: + version "5.3.6" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" + integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.14" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + terser "^5.14.1" + + terser@^5.14.1: + version "5.15.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" + integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + + to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== + + to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + + 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" + + token-stream@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" + integrity sha512-nfjOAu/zAWmX9tgwi5NRp7O7zTDUD1miHiB40klUnAh9qnL1iXdgzcz/i5dMaL5jahcBAaSfmNOBBJBLJW8TEg== + + 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" + + ts-loader@^9.4.1: + version "9.4.1" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.1.tgz#b6f3d82db0eac5a8295994f8cb5e4940ff6b1060" + integrity sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + + ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + + 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.3.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + + tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + + type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + + type-is@~1.6.16: + 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" + + typescript@^4.8.4: + version "4.8.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== + + uglify-js@^2.6.1: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + integrity sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w== + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + + uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + integrity sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q== + + undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + + universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + + 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== + + update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + + 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-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== + dependencies: + prepend-http "^2.0.0" + + 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== + + v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + + 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== + + void-elements@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== + + watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + + 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== + + webpack-cli@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" + colorette "^2.0.14" + commander "^7.0.0" + cross-spawn "^7.0.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" + + webpack-merge@^5.7.3: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + + webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + + webpack@^5.74.0: + version "5.74.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980" + integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.7.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.10.0" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + + 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" + + 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" + + wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + + window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + integrity sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg== + + with@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/with/-/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe" + integrity sha512-uAnSsFGfSpF6DNhBXStvlZILfHJfJu4eUkfbRGk94kGO1Ta7bg6FwfvoOhhyHAJuFbCw+0xk4uJ3u57jLvlCJg== + dependencies: + acorn "^3.1.0" + acorn-globals "^3.0.0" + + wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q== + + 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@^7.4.6: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + + 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== + + yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + integrity sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A== + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + + yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + + yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/yarn.lock b/yarn.lock index c4965b9..01fcf69 100644 --- a/yarn.lock +++ b/yarn.lock @@ -998,6 +998,13 @@ dependencies: "@types/node" "*" +"@types/rpi-ws281x-native@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/rpi-ws281x-native/-/rpi-ws281x-native-1.0.0.tgz#7de8a1fafcd2b03f848dad3b0f721319bc8a8341" + integrity sha512-DbbeQgMYmgFm6gHiZVeRV0rnJzQ3eNpz4zNqPOwgMpONYyhz3+ssQExduIIs77qZ8SOn/2c0RsZjMtbTdGtuxQ== + dependencies: + "@types/node" "*" + "@types/serve-static@*": version "1.15.0" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" @@ -1337,7 +1344,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: +bindings@^1.3.0, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -2543,6 +2550,11 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +nan@2.14.*: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + nan@^2.14.0, nan@^2.14.2: version "2.17.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" @@ -2558,6 +2570,13 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +net-ping@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/net-ping/-/net-ping-1.2.3.tgz#c4dd248f6e3d8d73db6928002106bb71ceae4a40" + integrity sha512-ZKxj/kVPKL2RIsV9nR6I8nMT8Pi3k6ciTBKxD/6gd5lga9qcNmlyqNv+dbXqYGBvHsmG9yIpsfajr8X054x2fQ== + dependencies: + raw-socket "*" + node-releases@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" @@ -2897,6 +2916,13 @@ raw-body@2.3.3: iconv-lite "0.4.23" unpipe "1.0.0" +raw-socket@*: + version "1.7.0" + resolved "https://registry.yarnpkg.com/raw-socket/-/raw-socket-1.7.0.tgz#cd0bcc3da52450dcb6b9efe7a6d0890bf1aaf9db" + integrity sha512-mXqWihgwaFNmV5le0dWk5o+03M3A2zBIkC9BNaE6R0CJN9eYot++j2FIqgNSDq6/Vmu32PPI155SiiWNV2yyFQ== + dependencies: + nan "2.14.*" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -2982,6 +3008,14 @@ rpi-gpio@^2.1.7: debug "^3.1.0" epoll "^2.0.10" +rpi-ws281x-native@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/rpi-ws281x-native/-/rpi-ws281x-native-1.0.4.tgz#df5a50ecfdd165f8a10df891d5eba2cec2577fcb" + integrity sha512-ieClupQGt7PkIIak5bpGaYmymh5nS448LwrkumfwPoju6gTNjlC/GSyBiyq9sFE3FLixzsDhDoYzLQff6y1jXw== + dependencies: + bindings "^1.3.0" + nan "^2.14.2" + safe-buffer@5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"