From 984f4a3ca5358a1253b326156ff24cf501d4b253 Mon Sep 17 00:00:00 2001 From: The-Tysonator Date: Thu, 27 Apr 2023 16:56:15 +0100 Subject: [PATCH] initial commit --- .gitignore | 5 + game/__init__.py | 314 + game/generateTileMap.py | 32 + game/requirements.txt | 24 + servers/keyGen.py | 15 + servers/test.py | 31 + web/authentication/authentication.js | 51 + web/authentication/cookie/cookie.js | 25 + .../jsonwebtoken/jsonwebtoken.js | 26 + .../footer/copyrightCard/copyrightCard.jsx | 14 + .../copyrightCard/copyrightCard.module.css | 17 + web/components/footer/footer.jsx | 24 + web/components/footer/footer.module.css | 27 + web/components/footer/linkCard/linkCard.jsx | 17 + .../footer/linkCard/linkCard.module.css | 43 + .../footer/renewableCard/renewableCard.jsx | 14 + .../renewableCard/renewableCard.module.css | 28 + web/components/header/header.jsx | 19 + web/components/header/header.module.css | 23 + .../header/navigationCard/navigationCard.jsx | 16 + .../navigationCard/navigationCard.module.css | 35 + web/components/header/titleCard/titleCard.jsx | 15 + .../header/titleCard/titleCard.module.css | 56 + web/components/title/title.jsx | 14 + web/components/title/title.module.css | 27 + web/cryptography/cryptography.js | 14 + web/cryptography/encrypt/encrypt.js | 24 + web/cryptography/hash/hash.js | 21 + web/database/database.js | 368 + web/mail/mail.js | 12 + web/mail/send/send.js | 41 + web/mail/validate/validate.js | 17 + web/next.config.js | 7 + web/package-lock.json | 15968 ++++++++++++++++ web/package.json | 28 + web/pages/404.js | 22 + web/pages/_app.js | 13 + web/pages/_error.js | 18 + web/pages/account.js | 163 + web/pages/activate/[activate].js | 164 + web/pages/api/createAccount.js | 74 + web/pages/api/getStats/[getStats].js | 14 + web/pages/api/registerServer.js | 21 + web/pages/api/serverIp.js | 14 + web/pages/api/signIn.js | 49 + web/pages/api/signOut.js | 15 + web/pages/api/updateStats.js | 25 + web/pages/index.js | 38 + web/pages/leaderboards/[page].js | 172 + web/pages/play.js | 574 + web/public/backgrounds/background.png | Bin 0 -> 82334 bytes web/public/backgrounds/backgroundLight.png | Bin 0 -> 83596 bytes web/public/favicon.ico | Bin 0 -> 1150 bytes web/public/fonts/NeonSans.ttf | Bin 0 -> 26156 bytes web/public/players/gunLeft.png | Bin 0 -> 5210 bytes web/public/players/gunRight.png | Bin 0 -> 5213 bytes web/public/players/left.png | Bin 0 -> 5623 bytes web/public/players/right.png | Bin 0 -> 5426 bytes web/public/sounds/die.mp3 | Bin 0 -> 15882 bytes web/public/sounds/jump.mp3 | Bin 0 -> 6687 bytes web/public/sounds/land.mp3 | Bin 0 -> 6687 bytes web/public/sounds/shoot.mp3 | Bin 0 -> 7523 bytes web/public/tiles/corner.png | Bin 0 -> 5449 bytes web/public/tiles/flat.png | Bin 0 -> 5447 bytes web/styles/404.module.css | 13 + web/styles/account.module.css | 117 + web/styles/fonts.css | 5 + web/styles/index.module.css | 30 + web/styles/leaderboards.module.css | 93 + web/styles/play.module.css | 4 + web/styles/reset.css | 12 + 71 files changed, 19062 insertions(+) create mode 100644 .gitignore create mode 100755 game/__init__.py create mode 100755 game/generateTileMap.py create mode 100644 game/requirements.txt create mode 100755 servers/keyGen.py create mode 100755 servers/test.py create mode 100755 web/authentication/authentication.js create mode 100755 web/authentication/cookie/cookie.js create mode 100755 web/authentication/jsonwebtoken/jsonwebtoken.js create mode 100755 web/components/footer/copyrightCard/copyrightCard.jsx create mode 100755 web/components/footer/copyrightCard/copyrightCard.module.css create mode 100755 web/components/footer/footer.jsx create mode 100755 web/components/footer/footer.module.css create mode 100755 web/components/footer/linkCard/linkCard.jsx create mode 100755 web/components/footer/linkCard/linkCard.module.css create mode 100755 web/components/footer/renewableCard/renewableCard.jsx create mode 100755 web/components/footer/renewableCard/renewableCard.module.css create mode 100755 web/components/header/header.jsx create mode 100755 web/components/header/header.module.css create mode 100755 web/components/header/navigationCard/navigationCard.jsx create mode 100755 web/components/header/navigationCard/navigationCard.module.css create mode 100755 web/components/header/titleCard/titleCard.jsx create mode 100755 web/components/header/titleCard/titleCard.module.css create mode 100755 web/components/title/title.jsx create mode 100755 web/components/title/title.module.css create mode 100755 web/cryptography/cryptography.js create mode 100755 web/cryptography/encrypt/encrypt.js create mode 100755 web/cryptography/hash/hash.js create mode 100755 web/database/database.js create mode 100755 web/mail/mail.js create mode 100755 web/mail/send/send.js create mode 100755 web/mail/validate/validate.js create mode 100755 web/next.config.js create mode 100755 web/package-lock.json create mode 100755 web/package.json create mode 100755 web/pages/404.js create mode 100755 web/pages/_app.js create mode 100755 web/pages/_error.js create mode 100755 web/pages/account.js create mode 100755 web/pages/activate/[activate].js create mode 100755 web/pages/api/createAccount.js create mode 100755 web/pages/api/getStats/[getStats].js create mode 100755 web/pages/api/registerServer.js create mode 100755 web/pages/api/serverIp.js create mode 100755 web/pages/api/signIn.js create mode 100755 web/pages/api/signOut.js create mode 100755 web/pages/api/updateStats.js create mode 100755 web/pages/index.js create mode 100755 web/pages/leaderboards/[page].js create mode 100755 web/pages/play.js create mode 100755 web/public/backgrounds/background.png create mode 100755 web/public/backgrounds/backgroundLight.png create mode 100755 web/public/favicon.ico create mode 100755 web/public/fonts/NeonSans.ttf create mode 100755 web/public/players/gunLeft.png create mode 100755 web/public/players/gunRight.png create mode 100755 web/public/players/left.png create mode 100755 web/public/players/right.png create mode 100755 web/public/sounds/die.mp3 create mode 100755 web/public/sounds/jump.mp3 create mode 100755 web/public/sounds/land.mp3 create mode 100755 web/public/sounds/shoot.mp3 create mode 100755 web/public/tiles/corner.png create mode 100755 web/public/tiles/flat.png create mode 100755 web/styles/404.module.css create mode 100755 web/styles/account.module.css create mode 100755 web/styles/fonts.css create mode 100755 web/styles/index.module.css create mode 100755 web/styles/leaderboards.module.css create mode 100755 web/styles/play.module.css create mode 100755 web/styles/reset.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..46ee122 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.DS_STORE +.env +venv/ +.next/ +node_modules/ \ No newline at end of file diff --git a/game/__init__.py b/game/__init__.py new file mode 100755 index 0000000..ed26c3b --- /dev/null +++ b/game/__init__.py @@ -0,0 +1,314 @@ +# Imports +from engineio.payload import Payload +from AesEverywhere import aes256 +import flask_socketio +import threading +import requests +import random +import pygame +import flask +import time +import math +import os +from dotenv import load_dotenv + +load_dotenv() + +# Config +Payload.max_decode_packets = 500 +webserver_address = "http://localhost:3000" +cryptography_password = os.environ.get("CRYPTOGRAPHY_PASSWORD") +clock = pygame.time.Clock() +tile_map = [[8, 80, 80, 160, 160], [1, 160, 80, 240, 160], [1, 240, 80, 320, 160], [1, 320, 80, 400, 160], [1, 400, 80, 480, 160], [1, 480, 80, 560, 160], [1, 560, 80, 640, 160], [1, 640, 80, 720, 160], [1, 720, 80, 800, 160], [1, 800, 80, 880, 160], [1, 880, 80, 960, 160], [1, 960, 80, 1040, 160], [1, 1040, 80, 1120, 160], [1, 1120, 80, 1200, 160], [1, 1200, 80, 1280, 160], [1, 1280, 80, 1360, 160], [1, 1360, 80, 1440, 160], [1, 1440, 80, 1520, 160], [1, 1520, 80, 1600, 160], [1, 1600, 80, 1680, 160], [1, 1680, 80, 1760, 160], [1, 1760, 80, 1840, 160], [1, 1840, 80, 1920, 160], [1, 1920, 80, 2000, 160], [1, 2000, 80, 2080, 160], [2, 2080, 80, 2160, 160], [7, 80, 160, 160, 240], [3, 2080, 160, 2160, 240], [7, 80, 240, 160, 320], [3, 2080, 240, 2160, 320], [7, 80, 320, 160, 400], [3, 2080, 320, 2160, 400], [7, 80, 400, 160, 480], [3, 2080, 400, 2160, 480], [7, 80, 480, 160, 560], [5, 160, 480, 240, 560], [5, 240, 480, 320, 560], [5, 320, 480, 400, 560], [5, 400, 480, 480, 560], [5, 480, 480, 560, 560], [3, 2080, 480, 2160, 560], [7, 80, 560, 160, 640], [5, 880, 560, 960, 640], [5, 1520, 560, 1600, 640], [5, 1600, 560, 1680, 640], [5, 1680, 560, 1760, 640], [5, 1760, 560, 1840, 640], [3, 2080, 560, 2160, 640], [7, 80, 640, 160, 720], [3, 2080, 640, 2160, 720], [7, 80, 720, 160, 800], [5, 800, 720, 880, 800], [5, 1200, 720, 1280, 800], [3, 2080, 720, 2160, 800], [7, 80, 800, 160, 880], [3, 2080, 800, 2160, 880], [7, 80, 880, 160, 960], [3, 560, 880, 640, 960], [5, 1040, 880, 1120, 960], [5, 1360, 880, 1440, 960], [3, 2080, 880, 2160, 960], [7, 80, 960, 160, 1040], [3, 560, 960, 640, 1040], [5, 1280, 960, 1360, 1040], [5, 1440, 960, 1520, 1040], [5, 1520, 960, 1600, 1040], [5, 1600, 960, 1680, 1040], [5, 1680, 960, 1760, 1040], [3, 2080, 960, 2160, 1040], [7, 80, 1040, 160, 1120], [5, 480, 1040, 560, 1120], [5, 1760, 1040, 1840, 1120], [3, 2080, 1040, 2160, 1120], [7, 80, 1120, 160, 1200], [5, 1120, 1120, 1200, 1200], [3, 2080, 1120, 2160, 1200], [6, 80, 1200, 160, 1280], [5, 160, 1200, 240, 1280], [5, 240, 1200, 320, 1280], [5, 320, 1200, 400, 1280], [5, 400, 1200, 480, 1280], [5, 480, 1200, 560, 1280], [5, 560, 1200, 640, 1280], [5, 640, 1200, 720, 1280], [5, 720, 1200, 800, 1280], [5, 800, 1200, 880, 1280], [5, 880, 1200, 960, 1280], [5, 960, 1200, 1040, 1280], [5, 1040, 1200, 1120, 1280], [5, 1120, 1200, 1200, 1280], [5, 1200, 1200, 1280, 1280], [5, 1280, 1200, 1360, 1280], [5, 1360, 1200, 1440, 1280], [5, 1440, 1200, 1520, 1280], [5, 1520, 1200, 1600, 1280], [5, 1600, 1200, 1680, 1280], [5, 1680, 1200, 1760, 1280], [5, 1760, 1200, 1840, 1280], [5, 1840, 1200, 1920, 1280], [5, 1920, 1200, 2000, 1280], [5, 2000, 1200, 2080, 1280], [4, 2080, 1200, 2160, 1280]] +users = [] +user_positions = [0, 0, 0, 0, 0, 0] +tiles = [] +bullets = [] +health = [] +directions = [] + +# Cryptography +class Cryptography (): + # Encrypt + @staticmethod + def encrypt ( data, password ): + return aes256.encrypt(data, password) + # Decrypt + @staticmethod + def decrypt ( data, password ): + return aes256.decrypt(data, password) + +# Register Server +requests.post(webserver_address + "/api/registerServer", data = Cryptography.encrypt(f"{requests.get('https://api.ipify.org').text},6", cryptography_password)) + +# Get Bullet Vector +def getBulletVector ( playerX, playerY, clickX, clickY ): + return [ clickX - playerX, clickY - playerY ] + +# Get Bullet Normalisation Value +def getBulletNormalisationValue ( distanceX, distanceY ): + return 1 / math.sqrt((distanceX ** 2) + (distanceY ** 2)) + +# Get Normalised Bullet Vector +def getNormalisedBulletVector ( bulletVector, bulletNormalisationValue ): + return [ bulletVector[0] * bulletNormalisationValue, bulletVector[1] * bulletNormalisationValue ] + +# Creates Tiles +for tile in tile_map: + tiles.append(pygame.Rect(tile[1], tile[2],80, 80)) + +# User +class User (): + # Constructor + def __init__ ( self, socketId, user, gameRank, elo, kills, deaths, player ): + self.socketId = socketId + self.user = user + self.gameRank = gameRank + self.elo = elo + self.kills = kills + self.deaths = deaths + self.new_kills = 0; + self.new_deaths = 0; + self.angle = 0; + self.inputs = [] + self.player = player + +# Player +class Player(object): + # Constructor + def __init__ ( self ): + self.reset(random.randint(160, 1760), 160) + self.game_over = False + self.image_index = 0 + # Update + def update( self, inputs, tiles, dt ): + # Move + dx = 0 + dy = 0 + # Jump + self.landed = False + if self.jl == True: + self.jl = False + if inputs[0] and self.jumped == False and self.in_air == False: + self.vel_y = -22 + self.jumped = True + self.jl = True + self.touchfloor = False + elif inputs[0] == False: + self.jumped = False + # Left + if inputs[1]: + dx -= 7 * dt + self.direction = "left" + # Right + if inputs[3]: + dx += 7 *dt + self.direction = "right" + + # Collisions + self.in_air = True + # Direction + if dx < 0: + self.dir = -1 + elif dx > 0: + self.dir = 1 + + # Gravity + self.vel_y += 1 * dt + if self.vel_y > 10: + self.vel_y = 10 *dt + dy += self.vel_y + + + for tile in tiles: + + # Vertical Collisions + if tile.colliderect(self.rect.x, self.rect.y + dy, self.width, self.height): + if self.vel_y >= 0: + dy = tile.top - self.rect.bottom + self.in_air = False + if self.touchfloor == False: + self.touchfloor = True + self.landed = True + elif self.vel_y < 0: + dy = tile.bottom - self.rect.top + self.vel_y = 0 + + self.rect.y += dy + + for tile in tiles: + # X and Y + if tile.colliderect(self.rect.x + dx, self.rect.y + 1, self.width, self.height - 2): + print("true") + if dx >= 0: + dx = tile.left - self.rect.right + elif dx < 0: + dx = tile.right - self.rect.left + + self.rect.x += dx + + + # Update Cords + self.ht = dy + # Return Cords + return self.rect.x, self.rect.y + # Reset + def reset(self, x,y): + self.width = 80 + self.height = 80 + self.rect = pygame.Rect(x,y,80,80) + self.direction = 0 + self.vel_y = 0 + self.jumped = False + self.in_air = True + self.health = 8 + self.dir = 1 + self.touchfloor = False + self.jl = False + self.landed = False + self.ht = 0 + +# App +app = flask.Flask(__name__) +socketio = flask_socketio.SocketIO(app, cors_allowed_origins = webserver_address) + +# Socketio Authentication +@socketio.on("authentication") +def authentication(code): + code = str(Cryptography.decrypt(code.split("ShootyArenaGame=")[1], cryptography_password))[2:-1] + code = code.split(",") + for user in users: + if user.user == code[0]: + socketio.emit("disc", to = flask.request.sid) + return + users.append(User(flask.request.sid, code[0], code[1], int(code[2]), int(code[3]), int(code[4]), Player())) + socketio.emit("map", tile_map) + socketio.emit("player", code[0], to = flask.request.sid) + +# Move +@socketio.on("move") +def move(movement): + for user in users: + if flask.request.sid == user.socketId: + user.inputs = movement + +# MMove +@socketio.on("mmove") +def mmove(angle): + for user in users: + if flask.request.sid == user.socketId: + try: + user.angle = int(angle["angle"]) + except: + user.angle = 0 + +# Click +@socketio.on("click") +def cli(inputs): + for user in users: + if flask.request.sid == user.socketId: + vec = [inputs["dx"], inputs["dy"]] + nvec = getBulletNormalisationValue(vec[0], vec[1]) + fvec = getNormalisedBulletVector(vec, nvec) + inputs["px"] += fvec[0] * 72 + inputs["py"] += fvec[1] * 72 + hit = False + for tile in tile_map: + if (inputs["px"] + 5 > tile[1] and inputs["px"] + 5 < tile[3]) and (inputs["py"] + 5 > tile[2] and inputs["py"] + 5 < tile[4]): + hit = True + if hit == False: + bullets.append([user.user, inputs["px"], inputs["py"], fvec[0], fvec[1]]) + +# Game Loop +last_time = time.time() +def game (last_time): + while True: + dt = time.time() - last_time + dt *= 60 + last_time = time.time() + health = [] + # Bullets + for bulletnum, bullet in enumerate(bullets): + bullet[1] += bullet[3] * 12 * dt + bullet[2] += bullet[4] * 12 * dt + for tile in tile_map: + if (bullet[1] + 5 > tile[1] and bullet[1] + 5 < tile[3]) and (bullet[2] + 5 > tile[2] and bullet[2] + 5 < tile[4]): + del bullets[bulletnum] + # Users + for user in users: + if (bullet[1] + 5 > user.player.rect.x and bullet[1] +5 < user.player.rect.x + 80) and (bullet[2] +5 > user.player.rect.y and bullet[2] +5 < user.player.rect.y + 80): + if bullet[0] != user.user: + del bullets[bulletnum] + user.player.health -= 1 + if user.player.health == 0: + user.new_deaths += 1 + socketio.emit("die", to = user.socketId) + user.player.reset(random.randint(160, 1760), 160) + for user2 in users: + if bullet[0] == user2.user: + user2.new_kills += 1 + directions = [] + angles = [] + # Users + for usernum, user in enumerate(users): + if len(user.inputs) != 0: + user_positions[usernum] = [user.user, user.player.update(user.inputs, tiles, dt)] + if user.player.jl == True: + socketio.emit("ju", to = user.socketId) + if user.player.landed == True: + socketio.emit("la", to = user.socketId) + directions.append([user.user, user.player.dir]) + health.append([user.user, user.player.health]) + angles.append([user.user, user.angle]) + socketio.emit("users", user_positions) + socketio.emit("directions", directions) + socketio.emit("health", health) + socketio.emit("bullets", bullets) + socketio.emit("ang", angles) + clock.tick(60) + +# Run Game Loop +thread = threading.Thread(target=game, args = (last_time,)) +thread.start() + +# Factorial +def factorial ( number ): + if number == 0: + return 1 + else: + return number * factorial(number - 1) + +# Calculate Elo Change +def calculateEloChange ( kills, deaths ): + sc = kills - deaths + if sc >= 2: + return factorial(sc) // factorial(sc - 2) + else: + return ( kills - deaths ) * 10 + +# Calculate Rank +def calculateRank ( elo ): + if elo < 0: + return "Unranked" + elif elo < 1000: + return "Shitty Shooty" + elif elo < 2000: + return "Cutey Shooty" + elif elo < 3000: + return "Beauty Shooty" + else: + return "Snooty Shooty" + +# Dissconnect +@socketio.on("disconnect") +def dissconnect (): + for usernum, user in enumerate(users): + if flask.request.sid == user.socketId: + data = aes256.encrypt(f"{user.user},{user.elo+calculateEloChange(user.new_kills, user.new_deaths)},{calculateRank(user.elo + calculateEloChange(user.new_kills, user.new_deaths))},{user.kills + user.new_kills},{user.deaths + user.new_deaths}" , cryptography_password) + requests.post(f"{webserver_address}/api/updateStats", data = data) + del users[usernum] + user_positions[usernum] = 0 + +# Run Socketio +if __name__ == "__main__": + socketio.run(app, debug = False) \ No newline at end of file diff --git a/game/generateTileMap.py b/game/generateTileMap.py new file mode 100755 index 0000000..ec0732d --- /dev/null +++ b/game/generateTileMap.py @@ -0,0 +1,32 @@ +# Tiles +tiles = [ + [ 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 ], + [ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 ], + [ 7, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 5, 5, 5, 5, 0, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 3 ], + [ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 ], + [ 6 ,5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4 ] + ] + +# Genrate Tile Map +tile_map = [] +y_count = 0 +for y in tiles: + y_count += 1 + x_count = 0 + for x in tiles[y_count - 1]: + x_count += 1 + if tiles[y_count - 1][x_count - 1]: + tile_map.append([x, x_count * 80, y_count * 80, ( x_count * 80 ) + 80, ( y_count * 80 ) + 80 ]) + +# Display Tile Map +print(tile_map) \ No newline at end of file diff --git a/game/requirements.txt b/game/requirements.txt new file mode 100644 index 0000000..5f80aeb --- /dev/null +++ b/game/requirements.txt @@ -0,0 +1,24 @@ +aes-everywhere==1.2.10 +bidict==0.22.1 +certifi==2022.12.7 +charset-normalizer==3.1.0 +click==8.1.3 +Flask==2.2.3 +Flask-SocketIO==5.3.3 +h11==0.14.0 +idna==3.4 +importlib-metadata==6.6.0 +itsdangerous==2.1.2 +Jinja2==3.1.2 +MarkupSafe==2.1.2 +pycryptodomex==3.17 +pygame==2.3.0 +python-dotenv==1.0.0 +python-engineio==4.4.1 +python-socketio==5.8.0 +requests==2.28.2 +simple-websocket==0.10.0 +urllib3==1.26.15 +Werkzeug==2.2.3 +wsproto==1.2.0 +zipp==3.15.0 diff --git a/servers/keyGen.py b/servers/keyGen.py new file mode 100755 index 0000000..d1e3b49 --- /dev/null +++ b/servers/keyGen.py @@ -0,0 +1,15 @@ +# Imports +import random + +# Key +key = "" + +# Characters +characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" + +# Generate Key +for i in range(32): + key += characters[ random.randint(0, 61) ] + +# Display Key +print(key) diff --git a/servers/test.py b/servers/test.py new file mode 100755 index 0000000..5a859d8 --- /dev/null +++ b/servers/test.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +import requests +import base64 +from Crypto.Cipher import AES + +MODE = AES.MODE_CFB +BLOCK_SIZE = 16 +SEGMENT_SIZE = 128 + +def _pad_string(value): + length = len(value) + pad_size = BLOCK_SIZE - (length % BLOCK_SIZE) + return value.ljust(length + pad_size, '\x00') + +def encrypt(key, iv, plaintext): + aes = AES.new(key, MODE, iv, segment_size=SEGMENT_SIZE) + plaintext = _pad_string(plaintext) + encrypted_text = aes.encrypt(plaintext) + return encrypted_text + + +key = 'TfvY7I358yospfWKcoviZizOShpm5hyH' +iv = 'mb13KcoviZizvYhp' +original_message = 'hi' + +encryptedpayload = base64.b64encode(encrypt(key, iv, original_message)) + +request = requests.post("http://localhost:8080/hello", encryptedpayload) + + +print(request.content) \ No newline at end of file diff --git a/web/authentication/authentication.js b/web/authentication/authentication.js new file mode 100755 index 0000000..1ecb358 --- /dev/null +++ b/web/authentication/authentication.js @@ -0,0 +1,51 @@ +// Strict Mode +"use strict"; + +// Imports +import cookie from "./cookie/cookie.js"; +import jsonwebtoken from "./jsonwebtoken/jsonwebtoken.js"; + +// Key +const JsonwebtokenKey = process.env.JSON_WEB_TOKEN_KEY; + +// Set User +async function setUser ( req, res, data ) { + cookie.set(req, res, "ShootyArenaUser", jsonwebtoken.set(data, JsonwebtokenKey), true); +}; + +// Get User +async function getUser ( req, res ) { + return new Promise (async (resolve) => { + try { + const userCookie = cookie.get(req, res, "ShootyArenaUser"); + if (userCookie === undefined) { + setUser(req, res, ""); + resolve(""); + } else { + const user = await jsonwebtoken.get(userCookie, JsonwebtokenKey); + if (user === false || user.data === "") { + setUser(req, res, ""); + resolve(""); + } else { + setUser(req, res, user.data); + resolve(user.data); + }; + }; + } catch { + resolve("") + } + + }); +}; + +// Set Game +async function setGame ( req, res, data ) { + cookie.set(req, res, "ShootyArenaGame", data, false); +}; + +// Exports +module.exports = { + setUser, + getUser, + setGame +}; \ No newline at end of file diff --git a/web/authentication/cookie/cookie.js b/web/authentication/cookie/cookie.js new file mode 100755 index 0000000..9faf1eb --- /dev/null +++ b/web/authentication/cookie/cookie.js @@ -0,0 +1,25 @@ +// Strict Mode +"use strict"; + +// Imports +import cookies from "cookies"; + +// Set +function set ( req, res, name, data, httpOnly ) { + new cookies(req, res).set(name, data, { + secure: false, + httpOnly: httpOnly, + sameSite: true + }); +}; + +// Get +function get ( req, res, name ) { + return new cookies(req, res).get(name); +}; + +// Exports +module.exports = { + set, + get +}; \ No newline at end of file diff --git a/web/authentication/jsonwebtoken/jsonwebtoken.js b/web/authentication/jsonwebtoken/jsonwebtoken.js new file mode 100755 index 0000000..aeceedd --- /dev/null +++ b/web/authentication/jsonwebtoken/jsonwebtoken.js @@ -0,0 +1,26 @@ +// Strict Mode +"use strict"; + +// Imports +import jsonwebtoken from "jsonwebtoken"; + +// Set +function set ( data, key ) { + return JSON.stringify(jsonwebtoken.sign({ data: data }, key, { expiresIn: "30m" })); +}; + +// Get +function get ( data, key ) { + return new Promise ((resolve) => { + jsonwebtoken.verify(JSON.parse(data), key, (error, data) => { + if (error) resolve(false); + resolve(data); + }); + }); +}; + +// Exports +module.exports = { + set, + get +}; \ No newline at end of file diff --git a/web/components/footer/copyrightCard/copyrightCard.jsx b/web/components/footer/copyrightCard/copyrightCard.jsx new file mode 100755 index 0000000..31edafd --- /dev/null +++ b/web/components/footer/copyrightCard/copyrightCard.jsx @@ -0,0 +1,14 @@ +// Strict Mode +"use strict"; + +// Styles +import styles from "./copyrightCard.module.css"; + +// Copyright Card +export default function CopyrightCard () { + return ( +
+
Copyright - Shooty Arena
+
+ ); +}; \ No newline at end of file diff --git a/web/components/footer/copyrightCard/copyrightCard.module.css b/web/components/footer/copyrightCard/copyrightCard.module.css new file mode 100755 index 0000000..e267a94 --- /dev/null +++ b/web/components/footer/copyrightCard/copyrightCard.module.css @@ -0,0 +1,17 @@ +/* Copyright Card */ +.copyrightCard { + width: 100vw; + padding-bottom: 20px; + display: flex; + justify-content: center; + align-items: center; + background-color: #1a1a1a; +} + +/* Copyright Card H6 */ +.copyrightCard h6 { + font-family: NeonSans; + font-size: 10px; + color: #f700ff; + text-shadow: 0 0 10px #f700ff, 0 0 20px #f700ff, 0 0 30px #f700ff, 0 0 40px #f700ff; +} \ No newline at end of file diff --git a/web/components/footer/footer.jsx b/web/components/footer/footer.jsx new file mode 100755 index 0000000..e7493c8 --- /dev/null +++ b/web/components/footer/footer.jsx @@ -0,0 +1,24 @@ +// Strict Mode +"use strict"; + +// Styles +import styles from "./footer.module.css"; + +// Components +import CopyrightCard from "./copyrightCard/copyrightCard.jsx"; +import LinkCard from "./linkCard/linkCard"; +import RenewableCard from "./renewableCard/renewableCard.jsx"; + +// Footer +export default function Footer () { + return ( +
+
+ + + +
+ +
+ ); +}; \ No newline at end of file diff --git a/web/components/footer/footer.module.css b/web/components/footer/footer.module.css new file mode 100755 index 0000000..52afa2d --- /dev/null +++ b/web/components/footer/footer.module.css @@ -0,0 +1,27 @@ +/* Footer */ +.footer { + width: 100vw; + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + background-color: #1a1a1a; +} + +/* Footer Div First Child */ +.footer div:first-child { + display: flex; + flex-wrap: wrap; +} + +/* Small Screens */ +@media screen and (max-width: 779px) { + /* Footer */ + .footer { + align-items: center; + } + /* Footer Div First Child */ + .footer div:first-child { + width: 260px; + } +} \ No newline at end of file diff --git a/web/components/footer/linkCard/linkCard.jsx b/web/components/footer/linkCard/linkCard.jsx new file mode 100755 index 0000000..5bdb07c --- /dev/null +++ b/web/components/footer/linkCard/linkCard.jsx @@ -0,0 +1,17 @@ +// Strict Mode +"use strict"; + +// Styles +import styles from "./linkCard.module.css"; + +// Link Card +export default function LinkCard ({ title, links }) { + return ( +
+
{ title }
+ { + links.map(link =>
{ link[0] }
) + } +
+ ); +}; \ No newline at end of file diff --git a/web/components/footer/linkCard/linkCard.module.css b/web/components/footer/linkCard/linkCard.module.css new file mode 100755 index 0000000..3fb0fe2 --- /dev/null +++ b/web/components/footer/linkCard/linkCard.module.css @@ -0,0 +1,43 @@ +/* Link Card */ +.linkCard { + width: 200px; + height: 100px; + padding: 30px; + background-color: #1a1a1a; +} + +/* Link Card H5 */ +.linkCard h5 { + width: 100%; + padding-top: 12px; + font-family: NeonSans; + font-size: 12px; + color: #ff9d00; + text-shadow: 0 0 10px #ff9d00, 0 0 20px #ff9d00, 0 0 30px #ff9d00, 0 0 40px #ff9d00; + transition: text-shadow 0.2s linear; +} + +/* Link Card H5 Hover */ +.linkCard h5:hover { + text-shadow: 0 0 10px #ff9d00, 0 0 20px #ff9d00; +} +/* Link Card H5 First Child */ +.linkCard h5:first-child { + padding-top: 0; + font-size: 18px; + color: #8c00ff; + text-shadow: 0 0 10px #8c00ff, 0 0 20px #8c00ff, 0 0 30px #8c00ff, 0 0 40px #8c00ff; +} + +/* Link Card A */ +.linkCard a { + color: #ff9d00; +} + +/* Small Screens */ +@media screen and (max-width: 779px) { + /* Legal Card H5 */ + .linkCard h5 { + text-align: center; + } +} \ No newline at end of file diff --git a/web/components/footer/renewableCard/renewableCard.jsx b/web/components/footer/renewableCard/renewableCard.jsx new file mode 100755 index 0000000..3d5cef0 --- /dev/null +++ b/web/components/footer/renewableCard/renewableCard.jsx @@ -0,0 +1,14 @@ +// Strict Mode +"use strict"; + +// Styles +import styles from "./renewableCard.module.css"; + +// Renewable Card +export default function RenewableCard () { + return ( +
+

Powered by renewable energy.

+
+ ); +}; \ No newline at end of file diff --git a/web/components/footer/renewableCard/renewableCard.module.css b/web/components/footer/renewableCard/renewableCard.module.css new file mode 100755 index 0000000..cc94fc1 --- /dev/null +++ b/web/components/footer/renewableCard/renewableCard.module.css @@ -0,0 +1,28 @@ +/* Renewable Card Text Flicker */ +@keyframes renewableCardTextFlicker { + 30%, 32%, 34%, 80% { + text-shadow: 0 0 10px #00ff2a, 0 0 20px #00ff2a, 0 0 30px #00ff2a, 0 0 40px #00ff2a; + } + 0%, 31%, 33%, 35%, 81% { + text-shadow: 0 0 10px #00ff2a, 0 0 20px #00ff2a; + } +} + +/* Renewable Card */ +.renewableCard { + width: 200px; + padding: 30px; + background-color: #1a1a1a; +} + +/* Renewable Card H4 */ +.renewableCard h4 { + width: 100%; + height: 100%; + text-align: center; + font-family: NeonSans; + font-size: 30px; + color: #00ff2a; + text-shadow: 0 0 10px #00ff2a, 0 0 20px #00ff2a, 0 0 30px #00ff2a, 0 0 40px #00ff2a; + animation: renewableCardTextFlicker 6s infinite; +} \ No newline at end of file diff --git a/web/components/header/header.jsx b/web/components/header/header.jsx new file mode 100755 index 0000000..694fb43 --- /dev/null +++ b/web/components/header/header.jsx @@ -0,0 +1,19 @@ +// Strict Mode +"use strict"; + +// Styles +import styles from "./header.module.css"; + +// Components +import NavigationCard from "./navigationCard/navigationCard.jsx"; +import TitleCard from "./titleCard/titleCard.jsx"; + +// Header +export default function Header () { + return ( +
+ + +
+ ); +}; \ No newline at end of file diff --git a/web/components/header/header.module.css b/web/components/header/header.module.css new file mode 100755 index 0000000..8470ecd --- /dev/null +++ b/web/components/header/header.module.css @@ -0,0 +1,23 @@ +/* Header */ +.header { + display: flex; + justify-content: center; + align-items: center; + background-color: #1a1a1a; + flex-wrap: wrap; +} + +/* Header A */ +.header a { + font-family: neon; + text-decoration: none; + padding: 20px; +} + +/* Small Screens */ +@media screen and (max-width: 1027px) { + /* Header */ + .header { + flex-direction: column; + } +} \ No newline at end of file diff --git a/web/components/header/navigationCard/navigationCard.jsx b/web/components/header/navigationCard/navigationCard.jsx new file mode 100755 index 0000000..83d5109 --- /dev/null +++ b/web/components/header/navigationCard/navigationCard.jsx @@ -0,0 +1,16 @@ +// Strict Mode +"use strict"; + +// Styles +import styles from "./navigationCard.module.css"; + +// Navigation Card +export default function NavigationCard () { + return ( +
+
Play
+
Leaderboards
+
Account
+
+ ); +}; \ No newline at end of file diff --git a/web/components/header/navigationCard/navigationCard.module.css b/web/components/header/navigationCard/navigationCard.module.css new file mode 100755 index 0000000..3111ad1 --- /dev/null +++ b/web/components/header/navigationCard/navigationCard.module.css @@ -0,0 +1,35 @@ +/* Navigation Card */ +.navigationCard { + width: 40%; + padding: 30px; + display: flex; + justify-content: flex-start; + align-items: center; + flex-wrap: wrap; + background-color: #1a1a1a; +} + +/* Navigation Card H5 A */ +.navigationCard h5 a { + font-family: NeonSans; + font-size: 20px; + color: #ff9d00; + text-shadow: 0 0 10px #ff9d00, 0 0 20px #ff9d00, 0 0 30px #ff9d00, 0 0 40px #ff9d00; + transition: text-shadow 0.2s linear; +} + +/* Navigation Card H5 A Hover */ +.navigationCard h5 a:hover { + text-shadow: 0 0 10px #ff9d00, 0 0 20px #ff9d00; + transition: text-shadow 0.2s linear; +} + +/* Small Screens */ +@media screen and (max-width: 1027px) { + /* Navigation Card */ + .navigationCard { + width: 200px; + padding-top: 0; + justify-content: center; + } +} \ No newline at end of file diff --git a/web/components/header/titleCard/titleCard.jsx b/web/components/header/titleCard/titleCard.jsx new file mode 100755 index 0000000..db017b9 --- /dev/null +++ b/web/components/header/titleCard/titleCard.jsx @@ -0,0 +1,15 @@ +// Strict Mode +"use strict"; + +// Styles +import styles from "./titleCard.module.css"; + +// Title Card +export default function TitleCard () { + return ( +
+

Shooty

+

Arena

+
+ ); +}; \ No newline at end of file diff --git a/web/components/header/titleCard/titleCard.module.css b/web/components/header/titleCard/titleCard.module.css new file mode 100755 index 0000000..5b3b7c4 --- /dev/null +++ b/web/components/header/titleCard/titleCard.module.css @@ -0,0 +1,56 @@ +/* Title Card Shooty Text Flicker */ +@keyframes titleCardShootyTextFlicker { + 37%, 39%, 41%, 43% { + text-shadow: 0 0 10px #0062ff, 0 0 20px #0062ff, 0 0 30px #0062ff, 0 0 40px #0062ff; + } + 35%, 38%, 40%, 42% { + text-shadow: 0 0 10px #0062ff, 0 0 20px #0062ff; + } +} + +/* Title Card Arena Text Flicker */ +@keyframes titleCardArenaTextFlicker { + 38%, 40% { + text-shadow: 0 0 10px #ff3300, 0 0 20px #ff3300, 0 0 30px #ff3300, 0 0 40px #ff3300; + } + 35%, 39% { + text-shadow: 0 0 10px #ff3300, 0 0 20px #ff3300; + } +} + +/* Title Card */ +.titleCard { + width: 40%; + padding: 30px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background-color: #1a1a1a; +} + +/* Title Card H4 First Child */ +.titleCard h4:first-child { + text-shadow: 0 0 10px #0062ff, 0 0 20px #0062ff, 0 0 30px #0062ff, 0 0 40px #0062ff; + animation: titleCardShootyTextFlicker 4s infinite; +} + +/* Title Card h4 Last Child */ +.titleCard h4:last-child { + text-shadow: 0 0 10px #ff3300, 0 0 20px #ff3300, 0 0 30px #ff3300, 0 0 40px #ff3300; + animation: titleCardArenaTextFlicker 6s infinite; +} + +/* Title Card H4 First Child A */ +.titleCard h4:first-child a { + font-family: NeonSans; + font-size: 50px; + color: #0062ff; +} + +/* Title Card H4 Last Child A */ +.titleCard h4:last-child a { + font-family: NeonSans; + font-size: 50px; + color: #ff3300; +} \ No newline at end of file diff --git a/web/components/title/title.jsx b/web/components/title/title.jsx new file mode 100755 index 0000000..e006f26 --- /dev/null +++ b/web/components/title/title.jsx @@ -0,0 +1,14 @@ +// Strict Mode +"use strict"; + +// Styles +import styles from "./title.module.css"; + +// Title +export default function Title ( props ) { + return ( +
+

{ props.title }

+
+ ); +}; \ No newline at end of file diff --git a/web/components/title/title.module.css b/web/components/title/title.module.css new file mode 100755 index 0000000..d3765c4 --- /dev/null +++ b/web/components/title/title.module.css @@ -0,0 +1,27 @@ +/* Title Text Flicker */ +@keyframes titleTextFlicker { + 44%, 48%, 50% { + text-shadow: 0 0 10px #00ff2a, 0 0 20px #00ff2a, 0 0 30px #00ff2a, 0 0 40px #00ff2a; + } + 42%, 46%, 49% { + text-shadow: 0 0 10px #00ff2a, 0 0 20px #00ff2a; + } +} + +/* Title */ +.title { + padding: 30px; + display: flex; + justify-content: center; + align-items: center; + background-color: #1a1a1a; +} + +/* Title H1 */ +.title h1 { + font-family: NeonSans; + font-size: 70px; + color: #00ff2a; + text-shadow: 0 0 10px #00ff2a, 0 0 20px #00ff2a, 0 0 30px #00ff2a, 0 0 40px #00ff2a; + animation: titleTextFlicker 4s infinite; +} \ No newline at end of file diff --git a/web/cryptography/cryptography.js b/web/cryptography/cryptography.js new file mode 100755 index 0000000..6f8ff0a --- /dev/null +++ b/web/cryptography/cryptography.js @@ -0,0 +1,14 @@ +// Strict Mode +"use strict"; + +// Imports +import encrypt from "./encrypt/encrypt.js"; +import hash from "./hash/hash.js"; + +// Exports +module.exports = { + encrypt: encrypt.encrypt, + decrypt: encrypt.decrypt, + hash: hash.hash, + compareHash: hash.compareHash +}; \ No newline at end of file diff --git a/web/cryptography/encrypt/encrypt.js b/web/cryptography/encrypt/encrypt.js new file mode 100755 index 0000000..e25ff38 --- /dev/null +++ b/web/cryptography/encrypt/encrypt.js @@ -0,0 +1,24 @@ +// Strict Mode +"use strict"; + +// Imports +import aesEverywhere from "aes-everywhere"; + +// Encrypt Key +const encryptKey = process.env.CRYPTOGRAPHY_PASSWORD; + +// Encrypt +async function encrypt ( data ) { + return aesEverywhere.encrypt(data, encryptKey); +}; + +// Decrypt +async function decrypt ( data ) { + return aesEverywhere.decrypt(data, encryptKey); +}; + +// Exports +module.exports = { + encrypt, + decrypt +}; \ No newline at end of file diff --git a/web/cryptography/hash/hash.js b/web/cryptography/hash/hash.js new file mode 100755 index 0000000..3146c03 --- /dev/null +++ b/web/cryptography/hash/hash.js @@ -0,0 +1,21 @@ +// Strict Mode +"use strict"; + +// Imports +import bcrypt from "bcrypt"; + +// Hash +async function hash ( data ) { + return bcrypt.hash(data, await bcrypt.genSalt(8)); +}; + +// Compare Hash +async function compareHash ( data, hash ) { + return bcrypt.compare(data, hash); +}; + +// Exports +module.exports = { + hash, + compareHash +}; \ No newline at end of file diff --git a/web/database/database.js b/web/database/database.js new file mode 100755 index 0000000..8db9e67 --- /dev/null +++ b/web/database/database.js @@ -0,0 +1,368 @@ +// Strict Mode +"use strict"; + +// Imports +import mysql from "mysql"; + +// Connection +const connection = mysql.createConnection({ + host: "127.0.0.1", + user: process.env.DATABASE_USER, + password: process.env.DATABASE_PASSWORD, + database: "shootyarena" +}); + +// Connect +connection.connect(( error ) => { + console.log(error) + if (error) throw error; +}); + +// Create Tables +async function createTables () { + connection.query("CREATE table users ( username VARCHAR(10) NOT NULL UNIQUE PRIMARY KEY, email VARCHAR(331) NOT NULL UNIQUE, passphrase VARCHAR(60) NOT NULL, active VARCHAR(60) NOT NULL, lastLoginTime INT NOT NULL );", ( error, _ ) => { + if (error) throw error; + }); + connection.query("CREATE TABLE stats ( username VARCHAR(10) NOT NULL UNIQUE PRIMARY KEY, FOREIGN KEY(username) REFERENCES users(username), gameRank VARCHAR(13) NOT NULL, elo INT NOT NULL, kills INT NOT NULL, deaths INT NOT NULL );", ( error, _ ) => { + if (error) throw error; + }); + connection.query("CREATE TABLE servers ( address VARCHAR(45) UNIQUE, playerLimit INT NOT NULL, playerCount INT NOT NULL );", ( error, _ ) => { + if (error) throw error; + }); + connection.query("CREATE TABLE codes ( username VARCHAR(10) NOT NULL UNIQUE PRIMARY KEY, FOREIGN KEY(username) REFERENCES users(username), code INT NOT NULL );", ( error, _ ) => { + if (error) throw error; + }) +}; + +// Drop Tables +async function dropTables () { + connection.query("DROP TABLE servers;", ( error, _ ) => { + if (error) throw error; + }); + connection.query("DROP TABLE stats;", ( error, _ ) => { + if (error) throw error; + }); + connection.query("DROP TABLE codes;", ( error, _ ) => { + if (error) throw error; + }); + connection.query("DROP TABLE users;", ( error, _ ) => { + if (error) throw error; + }); +}; + +// Create User +async function createUser ( username, email, passphrase, active ) { + return new Promise (async ( resolve, _ ) => { + connection.query("INSERT INTO users ( username, email, passphrase, active, lastLoginTime ) VALUES ?;", [[[ username, email, passphrase, active, 0 ]]], ( error, _ ) => { + if (error) { + resolve(false); + } else { + resolve(true); + }; + }); + }); +}; + +// Create Stat +async function createStat ( username ) { + return new Promise (async ( resolve, _ ) => { + connection.query("INSERT INTO stats ( username, gameRank, elo, kills, deaths ) VALUES ?;", [[[ username, "Shitty Shooty", 800, 0, 0 ]]], ( error, _ ) => { + if (error) { + resolve(false); + } else { + resolve(true); + }; + }); + }); +}; + +// Create Server +async function createServer ( address, playerLimit ) { + return new Promise (async ( resolve, _ ) => { + connection.query("INSERT INTO servers ( address, playerLimit, playerCount ) VALUES ?;", [[[ address, playerLimit, 0 ]]], ( error, _ ) => { + if (error) { + resolve(false); + } else { + resolve(true); + }; + }); + }); +}; + +// Create Code +async function createCode ( username, code ) { + return new Promise (async ( resolve, _ ) => { + connection.query("INSERT INTO codes ( username, code ) VALUES ?;", [[[ username, code ]]], ( error, _ ) => { + if (error) { + resolve(false); + } else { + resolve(true); + } + }) + }) +} + +// Delete Server +async function deleteServer ( address ) { + return new Promise (async ( resolve, _ ) => { + connection.query("DELETE FROM servers WHERE address = ?;", [[ address ]], ( error, _ ) => { + if (error) { + resolve(false); + } else { + resolve(true); + }; + }); + }); +}; + +// Username Exists +async function usernameExists ( username ) { + return new Promise (async ( resolve, _ ) => { + connection.query("SELECT username FROM users WHERE username = ?;", [[ username ]], ( error, result ) => { + console.log(error, result) + if (error || result[0] !== undefined) { + resolve(true); + } else { + resolve(false); + }; + }); + }); +}; + +// Email Exists +async function emailExists ( email ) { + return new Promise (async ( resolve, _ ) => { + connection.query("SELECT email FROM users WHERE email = ?;", [[ email ]], ( error, result ) => { + if (error || result[0] !== undefined) { + resolve(true); + } else { + resolve(false); + }; + }); + }); +}; + +// Active Exists +async function activeExists ( active ) { + return new Promise (async ( resolve, _ ) => { + connection.query("SELECT active FROM users WHERE active = ?;", [[ active ]], ( error, result ) => { + if (error || result[0] !== undefined) { + resolve(true); + } else { + resolve(false); + }; + }); + }); +}; + +// Activate User +async function activateUser ( active ) { + return new Promise (async ( resolve, _ ) => { + connection.query("UPDATE users SET active = '' WHERE active = ?;", [[ active ]], ( error, result ) => { + if (error || result.affectedRows === 0) { + resolve(false); + } else { + resolve(true); + }; + }); + }); +}; + +// Login User +async function loginUser ( email ) { + return new Promise (async ( resolve, _ ) => { + connection.query("SELECT passphrase FROM users WHERE email = ?;", [[ email ]], ( error, result ) => { + if (error || result[0] === undefined) { + resolve(false); + } else { + resolve(result[0]); + }; + }); + }); +}; + +// Get All Stats +async function getAllStats () { + return new Promise (async ( resolve, _ ) => { + connection.query("SELECT * FROM stats ORDER BY elo DESC;", ( error, result ) => { + if (error) { + resolve(false); + } else { + resolve(result); + }; + }); + }); +}; + +// Get Stats +async function getStats ( username ) { + return new Promise (async ( resolve, _ ) => { + connection.query("SELECT gameRank, elo, kills, deaths FROM stats WHERE username = ?;", [[ username ]], ( error, result ) => { + if (error || result[0] === undefined) { + resolve(false); + } else { + resolve(result); + }; + }); + }); +}; + +// Update Game Rank +async function updateGameRank ( username, gameRank ) { + return new Promise (async ( resolve, _ ) => { + connection.query("UPDATE stats SET gameRank = ? WHERE username = ?;", [[ gameRank ], [ username ]], ( error, result ) => { + if (error || result.affectedRows === 0) { + resolve(false); + } else { + resolve(true); + }; + }); + }); +}; + +// Update Elo +async function updateElo ( username, elo ) { + return new Promise (async ( resolve, _ ) => { + connection.query("UPDATE stats SET elo = ? WHERE username = ?;", [[ elo ], [ username ]], ( error, result ) => { + if (error || result.affectedRows === 0) { + resolve(false); + } else { + resolve(true); + }; + }); + }); +}; + +// Update Kills +async function updateKills ( username, kills ) { + return new Promise (async ( resolve, _ ) => { + connection.query("UPDATE stats SET kills = ? WHERE username = ?;", [[ kills ], [ username ]], ( error, result ) => { + if (error || result.affectedRows === 0) { + resolve(false); + } else { + resolve(true); + }; + }); + }); +}; + +// Update Deaths +async function updateDeaths ( username, deaths ) { + return new Promise (async ( resolve, _ ) => { + connection.query("UPDATE stats SET deaths = ? WHERE username = ?;", [[ deaths ], [ username ]], ( error, result ) => { + if (error || result.affectedRows === 0) { + resolve(false); + } else { + resolve(true); + }; + }); + }); +}; + +// Get Free Server +async function getFreeServer () { + return new Promise (async ( resolve, _ ) => { + connection.query("SELECT address FROM servers WHERE playerCount < playerLimit ORDER BY playerCount DESC;", ( error, result ) => { + if (error || result[0] === undefined) { + resolve(false); + } else { + resolve(result[0]); + }; + }); + }); +}; + +// Set Player Count +async function setPlayerCount ( address, playerCount ) { + return new Promise (async ( resolve, _ ) => { + connection.query("UPDATE servers SET playerCount = ? WHERE address = ?;", [[ playerCount ], [ address ]], ( error, _ ) => { + if (error || result.affectedRows === 0) { + resolve(false); + } else { + resolve(true); + }; + }); + }); +}; + +// Get Active +async function getActive ( email ) { + return new Promise (async ( resolve, _ ) => { + connection.query("SELECT active FROM users WHERE email = ?;", [[email]], ( error, result ) => { + if (error == null && result[0].active == "") { + resolve(true); + } else { + resolve(result[0].active); + } + }); + }); +}; + +// Get Username +async function getUsername ( email ) { + return new Promise (async ( resolve, _ ) => { + connection.query("SELECT username FROM users WHERE email = ?;", [[email]], ( error, result ) => { + if (error || result[0] === undefined) { + resolve(false); + } else { + resolve(result[0].username) + } + }) + }) +} + +// Get Code +async function getCode ( username ) { + return new Promise (async ( resolve, _ ) => { + connection.query("SELECT code FROM codes WHERE username = ?;", [[ username ]], ( error, result ) => { + if (error || result[0] === undefined) { + resolve(false); + } else { + resolve(result[0].code); + } + }) + }) +} + +// Set Code +async function setCode ( username, code ) { + return new Promise (async ( resolve, _ ) => { + connection.query("UPDATE codes SET code = ? WHERE username = ?", [[code], [username]], ( error, result ) => { + if (error) { + resolve(false); + } else { + resolve(true); + } + }) + }) +} + + +// Exports +module.exports = { + createTables, + dropTables, + createUser, + createStat, + createServer, + deleteServer, + usernameExists, + emailExists, + activeExists, + activateUser, + loginUser, + getAllStats, + getStats, + updateGameRank, + updateElo, + updateKills, + updateDeaths, + getFreeServer, + setPlayerCount, + getActive, + getUsername, + createCode, + getCode, + setCode, + +}; diff --git a/web/mail/mail.js b/web/mail/mail.js new file mode 100755 index 0000000..2841648 --- /dev/null +++ b/web/mail/mail.js @@ -0,0 +1,12 @@ +// Strict Mode +"use strict"; + +// Imports +import validate from "./validate/validate.js" +import send from "./send/send.js"; + +// Exports +module.exports = { + validateEmail: validate.validateEmail, + sendAccountActivationEmail: send.sendAccountActivationEmail +}; \ No newline at end of file diff --git a/web/mail/send/send.js b/web/mail/send/send.js new file mode 100755 index 0000000..508facb --- /dev/null +++ b/web/mail/send/send.js @@ -0,0 +1,41 @@ +// Strict Mode +"use strict"; + +// Imports +import nodemailer from "nodemailer"; + +// Transport +const transport = nodemailer.createTransport({ + host: process.env.MAIL_HOST, + port: 587, + secure: process.env.MAIL_SECURE != "false", + auth: { + user: process.env.MAIL_USER, + pass: process.env.MAIL_PASS + } +}); + +// Send Account Activation Email +async function sendAccountActivationEmail ( to, link ) { + return new Promise (async ( resolve, _ ) => { + const mailOptions = { + from: "Shooty Arena", + to: to, + subject: "Shooty Arena Account Activation", + text: "Welcome to Shooty Arena! To activate your account visit { link }".replace("{ link }", link) + }; + transport.sendMail(mailOptions, ( err, _ ) => { + if (err) { + console.log("mail error") + console.log(err) + resolve(false) + }; + resolve(true); + }); + }); +}; + +// Exports +module.exports = { + sendAccountActivationEmail +}; \ No newline at end of file diff --git a/web/mail/validate/validate.js b/web/mail/validate/validate.js new file mode 100755 index 0000000..4e86020 --- /dev/null +++ b/web/mail/validate/validate.js @@ -0,0 +1,17 @@ +// Strict Mode +"use strict"; + +// Imports +const deepEmailValidator = require("deep-email-validator"); + +// Validate Email +async function validateEmail ( email ) { + const check = await deepEmailValidator.validate(email); + if (check.validators.regex.valid && check.validators.mx.valid) return true; + return false; +}; + +// Exports +module.exports = { + validateEmail +}; \ No newline at end of file diff --git a/web/next.config.js b/web/next.config.js new file mode 100755 index 0000000..ff4a993 --- /dev/null +++ b/web/next.config.js @@ -0,0 +1,7 @@ +// Strict Mode +"use strict"; + +// Exports +module.exports = { + reactStrictMode: true +}; \ No newline at end of file diff --git a/web/package-lock.json b/web/package-lock.json new file mode 100755 index 0000000..9f3f781 --- /dev/null +++ b/web/package-lock.json @@ -0,0 +1,15968 @@ +{ + "name": "web", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "web", + "dependencies": { + "aes-everywhere": "^1.0.0", + "bcrypt": "^5.0.1", + "config": "^3.3.7", + "cookies": "^0.8.0", + "deep-email-validator": "^0.1.21", + "jsonwebtoken": "^8.5.1", + "mysql": "^2.18.1", + "next": "^12.0.10", + "nodemailer": "^6.7.2", + "react": "^17.0.2", + "react-dom": "17.0.2", + "socket.io-client": "^4.4.1" + }, + "devDependencies": { + "eslint": "8.6.0", + "eslint-config-next": "12.0.7" + } + }, + "node_modules/@babel/runtime": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", + "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", + "dev": true, + "dependencies": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3/node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz", + "integrity": "sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==", + "dependencies": { + "detect-libc": "^1.0.3", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.5", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@next/env": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.0.tgz", + "integrity": "sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "12.0.7", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.0.7.tgz", + "integrity": "sha512-xk7eMjw4+roWWR/0ETIoToCNs2wdvCGgQUiUO390Rj33/82yxZsh+ODRSaFWkiKp8zHWQN5GCW+U5pfjt/gyQg==", + "dev": true, + "dependencies": { + "glob": "7.1.7" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@next/swc-android-arm64": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz", + "integrity": "sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz", + "integrity": "sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz", + "integrity": "sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm-gnueabihf": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz", + "integrity": "sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz", + "integrity": "sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz", + "integrity": "sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz", + "integrity": "sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz", + "integrity": "sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz", + "integrity": "sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz", + "integrity": "sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz", + "integrity": "sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.1.tgz", + "integrity": "sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg==", + "dev": true + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, + "node_modules/@types/disposable-email-domains": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/disposable-email-domains/-/disposable-email-domains-1.0.2.tgz", + "integrity": "sha512-SDKwyYTjk3y5aZBxxc38yRecpJPjsqn57STz1bNxYYlv4k11bBe7QB8w4llXDTmQXKT1mFvgGmJv+8Zdu3YmJw==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz", + "integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.16.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/typescript-estree": "5.16.0", + "debug": "^4.3.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz", + "integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz", + "integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz", + "integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz", + "integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.16.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/accessory": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/accessory/-/accessory-1.1.0.tgz", + "integrity": "sha1-eDPpg5oy3tdtJgIfNqQXB6Ug9ZM=", + "dependencies": { + "ap": "~0.2.0", + "balanced-match": "~0.2.0", + "dot-parts": "~1.0.0" + } + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aes-everywhere": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/aes-everywhere/-/aes-everywhere-1.0.0.tgz", + "integrity": "sha512-rIkLlUpjHl/JWBhgL7xR63EHctrO4mvZ/mgG0YuQqaSs0eqs8yD7lzyWkaBq9MqF8dD5SQL5tshYq8OU00pFhg==", + "dependencies": { + "babelify": "^7.3.0", + "browserify": "^13.0.1", + "browserify-shim": "^3.8.12", + "dateformat": "1.0.12", + "grunt": "^0.4", + "grunt-browserify": "^5.0.0", + "grunt-cli": "0.1.13", + "load-grunt-tasks": "1.0.0", + "node-cryptojs-aes": "^0.4.0", + "uglifyify": "^3.0.1" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "optional": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ap": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ap/-/ap-0.2.0.tgz", + "integrity": "sha1-rglCYAspkS8NKxTsYMRejzMLYRA=" + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/are-we-there-yet/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "node_modules/async": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", + "engines": { + "node": "*" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/axe-core": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", + "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "dependencies": { + "follow-redirects": "^1.14.4" + } + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babelify": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", + "integrity": "sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA==", + "dependencies": { + "babel-core": "^6.0.14", + "object-assign": "^4.0.0" + } + }, + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/balanced-match": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz", + "integrity": "sha1-e8ZYtL7WHu5CStdPdfXD4sTfPMc=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", + "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/brace-expansion/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dependencies": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" + } + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + }, + "node_modules/browserify": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz", + "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=", + "dependencies": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.1.2", + "buffer": "^4.1.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.1", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "~1.1.0", + "duplexer2": "~0.1.2", + "events": "~1.1.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "~0.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "module-deps": "^4.0.8", + "os-browserify": "~0.1.1", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^2.0.0", + "string_decoder": "~0.10.0", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "~0.0.0", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "~0.0.1", + "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + } + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cache-api": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", + "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", + "dependencies": { + "async": "^1.5.2", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/browserify-cache-api/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-incremental": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", + "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", + "dependencies": { + "browserify-cache-api": "^3.0.0", + "JSONStream": "^0.10.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserifyinc": "bin/cmd.js" + }, + "peerDependencies": { + "browserify": "*" + } + }, + "node_modules/browserify-incremental/node_modules/jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/browserify-incremental/node_modules/JSONStream": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", + "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", + "dependencies": { + "jsonparse": "0.0.5", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "index.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-shim": { + "version": "3.8.14", + "resolved": "https://registry.npmjs.org/browserify-shim/-/browserify-shim-3.8.14.tgz", + "integrity": "sha1-vxBXAmky0yU8de991xTzuHft7Gs=", + "dependencies": { + "exposify": "~0.5.0", + "mothership": "~0.2.0", + "rename-function-calls": "~0.1.0", + "resolve": "~0.6.1", + "through": "~2.3.4" + }, + "peerDependencies": { + "browserify": ">= 2.3" + } + }, + "node_modules/browserify-shim/node_modules/resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=" + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dependencies": { + "pako": "~0.2.0" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cached-path-relative": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==" + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001319", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz", + "integrity": "sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/chokidar/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/chokidar/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/coffee-script": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", + "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=", + "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)", + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dependencies": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + } + }, + "node_modules/combine-source-map/node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" + } + }, + "node_modules/concat-stream/node_modules/process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/config": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/config/-/config-3.3.7.tgz", + "integrity": "sha512-mX/n7GKDYZMqvvkY6e6oBY49W8wxdmQt+ho/5lhwFDXqQW9gI+Ahp8EKp8VAbISPnmf2+Bv5uZK7lKXZ6pf1aA==", + "dependencies": { + "json5": "^2.1.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/config/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/cookies": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/core-js-pure": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", + "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==" + }, + "node_modules/dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dependencies": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + }, + "bin": { + "dateformat": "bin/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-email-validator": { + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/deep-email-validator/-/deep-email-validator-0.1.21.tgz", + "integrity": "sha512-DBAmMzbr+MAubXQ+TS9tZuPwLcdKscb8YzKZiwoLqF3NmaeEgXvSSHhZ0EXOFeKFE2FNWC4mNXCyiQ/JdFXUwg==", + "dependencies": { + "@types/disposable-email-domains": "^1.0.1", + "axios": "^0.24.0", + "disposable-email-domains": "^1.0.59", + "mailcheck": "^1.1.1" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dependencies": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/detective": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", + "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", + "dependencies": { + "acorn": "^5.2.1", + "defined": "^1.0.0" + } + }, + "node_modules/detective/node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/disposable-email-domains": { + "version": "1.0.59", + "resolved": "https://registry.npmjs.org/disposable-email-domains/-/disposable-email-domains-1.0.59.tgz", + "integrity": "sha512-45NbOP1Oboaddf0pD5mGnT+1msEifY6VUcR9Msq4zBHk2EeGv9PxiwuoynIfdGID1BSFR3U3egPfMbERkqXxUQ==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/dot-parts": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dot-parts/-/dot-parts-1.0.1.tgz", + "integrity": "sha1-iEvXvPwwgv+tL+XbU+SU2PPgdD8=" + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/engine.io-client": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", + "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/engine.io-parser": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.1.0.tgz", + "integrity": "sha1-xmOSP24gqtSNDA+knzHG1PSTYM8=", + "dependencies": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.4.0" + }, + "optionalDependencies": { + "source-map": "~0.1.30" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/escodegen/node_modules/esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "optional": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", + "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.3.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.2.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "12.0.7", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.0.7.tgz", + "integrity": "sha512-kWOaym5qjyzR190zFKkZMaHetmiRORmzJiKML7Kr9CL213S6SwkrHHCEL58TRdpx0NA+HzrsFR9zgcV2pvV2Yg==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "12.0.7", + "@rushstack/eslint-patch": "^1.0.8", + "@typescript-eslint/parser": "^5.0.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-import-resolver-typescript": "^2.4.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.0", + "eslint-plugin-react-hooks": "^4.3.0" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "next": ">=10.2.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz", + "integrity": "sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.1", + "glob": "^7.1.7", + "is-glob": "^4.0.1", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-import-resolver-typescript/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-typescript/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-plugin-import": { + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", + "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", + "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz", + "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dev": true, + "dependencies": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esprima-fb": { + "version": "3001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", + "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" + }, + "node_modules/events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exposify": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/exposify/-/exposify-0.5.0.tgz", + "integrity": "sha1-+S0AlMJls/VT4fpFagOhiD0QWcw=", + "dependencies": { + "globo": "~1.1.0", + "map-obj": "~1.0.1", + "replace-requires": "~1.0.3", + "through2": "~0.4.0", + "transformify": "~0.1.1" + } + }, + "node_modules/exposify/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/exposify/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "node_modules/exposify/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/exposify/node_modules/through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", + "dependencies": { + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" + } + }, + "node_modules/exposify/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/extend": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-1.3.0.tgz", + "integrity": "sha512-hT3PRBs1qm4P8g2keUBZ9bPaFHAcS78o5aCd9WhFTluHZZgBEkI08R+zYrpRpImyRTH+dw7IlqxrOp9iartTkw==" + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-parent-dir": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz", + "integrity": "sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A==" + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/findup-sync": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", + "integrity": "sha512-yjftfYnF4ThYEvKEV/kEFR15dmtyXTAh3vQnzpJUoc7Naj5y1P0Ck7Zs1+Vroa00E3KT3IYsk756S+8WA5dNLw==", + "dependencies": { + "glob": "~3.2.9", + "lodash": "~2.4.1" + }, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/findup-sync/node_modules/glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha512-hVb0zwEZwC1FXSKRPFTeOtN7AArJcJlI6ULGLtrstaswKNlrTJqAA+1lYlSUop4vjA423xlBzqfVS3iWGlqJ+g==", + "dependencies": { + "inherits": "2", + "minimatch": "0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/findup-sync/node_modules/lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==", + "engines": [ + "node", + "rhino" + ] + }, + "node_modules/findup-sync/node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "node_modules/findup-sync/node_modules/minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha512-WFX1jI1AaxNTZVOHLBVazwTWKaQjoykSzCBNXB72vDTCzopQGtyP91tKdFK5cv1+qMwPyiTu1HqUriqplI8pcA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha512-hIGEBfnHcZpWkXPsAVeVmpYDvfy/matVl03yOY91FPmnpCC12Lm5izNxCjO3lHAeO6uaTwMxu7g450Siknlhig==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/globo": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/globo/-/globo-1.1.0.tgz", + "integrity": "sha1-DSYJiVXepCLrIAGxBImLChAcqvM=", + "dependencies": { + "accessory": "~1.1.0", + "is-defined": "~1.0.0", + "ternary": "~1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/grunt": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", + "integrity": "sha512-1iq3ylLjzXqz/KSq1OAE2qhnpcbkF2WyhsQcavZt+YmgvHu0EbPMEhGhy2gr0FP67isHpRdfwjB5WVeXXcJemQ==", + "dependencies": { + "async": "~0.1.22", + "coffee-script": "~1.3.3", + "colors": "~0.6.2", + "dateformat": "1.0.2-1.2.3", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.1.2", + "getobject": "~0.1.0", + "glob": "~3.1.21", + "grunt-legacy-log": "~0.1.0", + "grunt-legacy-util": "~0.2.0", + "hooker": "~0.2.3", + "iconv-lite": "~0.2.11", + "js-yaml": "~2.0.5", + "lodash": "~0.9.2", + "minimatch": "~0.2.12", + "nopt": "~1.0.10", + "rimraf": "~2.2.8", + "underscore.string": "~2.2.1", + "which": "~1.0.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/grunt-browserify": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-5.3.0.tgz", + "integrity": "sha512-6jNNSqdCbazFufc3ulS7LjULa3aoiU2gOKWRgDMcJtGT/ZnMx0XrU4/iM/BCwHZ614YNzXfbvJ6H2ROrdAIeqw==", + "dependencies": { + "async": "^2.5.0", + "browserify": "^16.0.0", + "browserify-incremental": "^3.1.1", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "resolve": "^1.1.6", + "watchify": "^3.6.1" + }, + "engines": { + "node": ">= 0.8.x" + } + }, + "node_modules/grunt-browserify/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/grunt-browserify/node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/grunt-browserify/node_modules/browserify": { + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz", + "integrity": "sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==", + "dependencies": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/grunt-browserify/node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/grunt-browserify/node_modules/buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/grunt-browserify/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/grunt-browserify/node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dependencies": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-browserify/node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/grunt-browserify/node_modules/events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/grunt-browserify/node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "node_modules/grunt-browserify/node_modules/module-deps": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "dependencies": { + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/grunt-browserify/node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "node_modules/grunt-browserify/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/grunt-browserify/node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/grunt-browserify/node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/grunt-browserify/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/grunt-browserify/node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "node_modules/grunt-cli": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-0.1.13.tgz", + "integrity": "sha512-BbNtMuqZIZjafVWYB2nipPtvWILEVtY6N30eMNwKzwISddC5D4XHzfqjuCyEKcKTH19k3FqsRLZenEc1g3PE0Q==", + "dependencies": { + "findup-sync": "~0.1.0", + "nopt": "~1.0.10", + "resolve": "~0.3.1" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/grunt-cli/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt-cli/node_modules/resolve": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.3.1.tgz", + "integrity": "sha1-NMY0R8ZkxwWY0cmxJvxDsqJDEKQ=" + }, + "node_modules/grunt-legacy-log": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", + "integrity": "sha512-qYs/uM0ImdzwIXLhS4O5WLV5soAM+PEqqHI/hzSxlo450ERSccEhnXqoeDA9ZozOdaWuYnzTOTwRcVRogleMxg==", + "dependencies": { + "colors": "~0.6.2", + "grunt-legacy-log-utils": "~0.1.1", + "hooker": "~0.2.3", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/grunt-legacy-log-utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", + "integrity": "sha512-D0vbUX00TFYCKNZtcZzemMpwT8TR/FdRs1pmfiBw6qnUw80PfsjV+lhIozY/3eJ3PSG2zj89wd2mH/7f4tNAlw==", + "dependencies": { + "colors": "~0.6.2", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/grunt-legacy-log-utils/node_modules/lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==", + "engines": [ + "node", + "rhino" + ] + }, + "node_modules/grunt-legacy-log-utils/node_modules/underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha512-hbD5MibthuDAu4yA5wxes5bzFgqd3PpBJuClbRxaNddxfdsz+qf+1kHwrGQFrmchmDHb9iNU+6EHDn8uj0xDJg==", + "engines": { + "node": "*" + } + }, + "node_modules/grunt-legacy-log/node_modules/lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==", + "engines": [ + "node", + "rhino" + ] + }, + "node_modules/grunt-legacy-log/node_modules/underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha512-hbD5MibthuDAu4yA5wxes5bzFgqd3PpBJuClbRxaNddxfdsz+qf+1kHwrGQFrmchmDHb9iNU+6EHDn8uj0xDJg==", + "engines": { + "node": "*" + } + }, + "node_modules/grunt-legacy-util": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", + "integrity": "sha512-cXPbfF8aM+pvveQeN1K872D5fRm30xfJWZiS63Y8W8oyIPLClCsmI8bW96Txqzac9cyL4lRqEBhbhJ3n5EzUUQ==", + "dependencies": { + "async": "~0.1.22", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~0.9.2", + "underscore.string": "~2.2.1", + "which": "~1.0.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/grunt-legacy-util/node_modules/lodash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha512-LVbt/rjK62gSbhehDVKL0vlaime4Y1IBixL+bKeNfoY4L2zab/jGrxU6Ka05tMA/zBxkTk5t3ivtphdyYupczw==", + "engines": [ + "node", + "rhino" + ] + }, + "node_modules/grunt-legacy-util/node_modules/which": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", + "bin": { + "which": "bin/which" + } + }, + "node_modules/grunt/node_modules/argparse": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "integrity": "sha512-LjmC2dNpdn2L4UzyoaIr11ELYoLn37ZFy9zObrQFHsSuOepeUEMKnM8w5KL4Tnrp2gy88rRuQt6Ky8Bjml+Baw==", + "dependencies": { + "underscore": "~1.7.0", + "underscore.string": "~2.4.0" + } + }, + "node_modules/grunt/node_modules/argparse/node_modules/underscore.string": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", + "integrity": "sha512-yxkabuCaIBnzfIvX3kBxQqCs0ar/bfJwDnFEHJUm/ZrRVhT3IItdRF5cZjARLzEnyQYtIUhsZ2LG2j3HidFOFQ==", + "engines": { + "node": "*" + } + }, + "node_modules/grunt/node_modules/dateformat": { + "version": "1.0.2-1.2.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=", + "engines": { + "node": "*" + } + }, + "node_modules/grunt/node_modules/glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha512-ANhy2V2+tFpRajE3wN4DhkNQ08KDr0Ir1qL12/cUe5+a7STEK8jkW4onUYuY8/06qAFuT5je7mjAqzx0eKI2tQ==", + "dependencies": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt/node_modules/graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/grunt/node_modules/inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" + }, + "node_modules/grunt/node_modules/js-yaml": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", + "integrity": "sha512-VEKcIksckDBUhg2JS874xVouiPkywVUh4yyUmLCDe1Zg3bCd6M+F1eGPenPeHLc2XC8pp9G8bsuofK0NeEqRkA==", + "dependencies": { + "argparse": "~ 0.1.11", + "esprima": "~ 1.0.2" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + }, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/grunt/node_modules/lodash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha512-LVbt/rjK62gSbhehDVKL0vlaime4Y1IBixL+bKeNfoY4L2zab/jGrxU6Ka05tMA/zBxkTk5t3ivtphdyYupczw==", + "engines": [ + "node", + "rhino" + ] + }, + "node_modules/grunt/node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "node_modules/grunt/node_modules/minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt/node_modules/rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/grunt/node_modules/which": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", + "bin": { + "which": "bin/which" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-require": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/has-require/-/has-require-1.2.2.tgz", + "integrity": "sha1-khZ1qxMNvZdo/I2o8ajiQt+kF3Q=", + "dependencies": { + "escape-string-regexp": "^1.0.3" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "engines": { + "node": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/iconv-lite": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dependencies": { + "source-map": "~0.5.3" + } + }, + "node_modules/insert-module-globals": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", + "dependencies": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" + } + }, + "node_modules/insert-module-globals/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-defined/-/is-defined-1.0.0.tgz", + "integrity": "sha1-HwfKZ9Vx9ZTEsUQVpF9774j5K/U=" + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "engines": { + "node": "*" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jsonwebtoken/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.3", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "dependencies": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/load-grunt-tasks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-1.0.0.tgz", + "integrity": "sha512-JmC5/5YrcMU0KW3Yfxp60Y4d+j1NG4s6JKPCFmGS0oskHG4rYzz//pPofjvWrts7aC1fGw8v8KYwQFMGIiAsfA==", + "dependencies": { + "findup-sync": "^0.1.2", + "multimatch": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "node_modules/lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mailcheck": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mailcheck/-/mailcheck-1.1.1.tgz", + "integrity": "sha1-2Hz2ugtkulEhmdv5PxSJ9HlZHjQ=" + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "node_modules/module-deps": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", + "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", + "dependencies": { + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.0", + "defined": "^1.0.0", + "detective": "^4.0.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.3", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mothership": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/mothership/-/mothership-0.2.0.tgz", + "integrity": "sha1-k9SKL7w+UOKl/I7VhvW8RMZfmpk=", + "dependencies": { + "find-parent-dir": "~0.3.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/multimatch": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-1.0.1.tgz", + "integrity": "sha512-IAE+90RjqpJQ17ZWNgS5EuglpBNYFNPx9m8VWBFJiAD65XnARcChfwiB8pKcArFclx1dDjXtHxbT1sXaKLQ2wA==", + "dependencies": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "minimatch": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/multimatch/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/multimatch/node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "node_modules/multimatch/node_modules/minimatch": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", + "integrity": "sha512-Ejh5Odk/uFXAj5nf/NSXk0UamqcGAfOdHI7nY0zvCHyn4f3nKLFoUTp+lYxDxSih/40uW8lpwDplOWHdWkQXWA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "dependencies": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mysql/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/next": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/next/-/next-12.1.0.tgz", + "integrity": "sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==", + "dependencies": { + "@next/env": "12.1.0", + "caniuse-lite": "^1.0.30001283", + "postcss": "8.4.5", + "styled-jsx": "5.0.0", + "use-subscription": "1.5.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=12.22.0" + }, + "optionalDependencies": { + "@next/swc-android-arm64": "12.1.0", + "@next/swc-darwin-arm64": "12.1.0", + "@next/swc-darwin-x64": "12.1.0", + "@next/swc-linux-arm-gnueabihf": "12.1.0", + "@next/swc-linux-arm64-gnu": "12.1.0", + "@next/swc-linux-arm64-musl": "12.1.0", + "@next/swc-linux-x64-gnu": "12.1.0", + "@next/swc-linux-x64-musl": "12.1.0", + "@next/swc-win32-arm64-msvc": "12.1.0", + "@next/swc-win32-ia32-msvc": "12.1.0", + "@next/swc-win32-x64-msvc": "12.1.0" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^6.0.0 || ^7.0.0", + "react": "^17.0.2 || ^18.0.0-0", + "react-dom": "^17.0.2 || ^18.0.0-0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + }, + "node_modules/node-cryptojs-aes": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-cryptojs-aes/-/node-cryptojs-aes-0.4.0.tgz", + "integrity": "sha1-ZM+6gMH7yfrDR8jrLCwSrb06igc=", + "engines": { + "node": "*" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/nodemailer": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.3.tgz", + "integrity": "sha512-KUdDsspqx89sD4UUyUKzdlUOper3hRkDVkrKh/89G+d9WKsU5ox51NWS4tB1XR5dPUdR4SP0E3molyEfOvSa3g==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", + "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=" + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dependencies": { + "shell-quote": "^1.4.2" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dependencies": { + "path-platform": "~0.11.15" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/patch-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/patch-text/-/patch-text-1.0.2.tgz", + "integrity": "sha1-S/NuZeUXM9bpjwz2LgkDTaoDSKw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/readdirp/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "node_modules/rename-function-calls": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/rename-function-calls/-/rename-function-calls-0.1.1.tgz", + "integrity": "sha1-f4M2nAB6MAf2q+MDPM+BaGoQjgE=", + "dependencies": { + "detective": "~3.1.0" + } + }, + "node_modules/rename-function-calls/node_modules/detective": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-3.1.0.tgz", + "integrity": "sha1-d3gkRKt1K4jKG+Lp0KA5Xx2iXu0=", + "dependencies": { + "escodegen": "~1.1.0", + "esprima-fb": "3001.1.0-dev-harmony-fb" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/replace-requires": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/replace-requires/-/replace-requires-1.0.4.tgz", + "integrity": "sha1-AUtzMLa54lV7cQQ7ZvsCZgw79mc=", + "dependencies": { + "detective": "^4.5.0", + "has-require": "~1.2.1", + "patch-text": "~1.0.2", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dependencies": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "node_modules/shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/socket.io-client": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz", + "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.4.0", + "socket.io-parser": "~4.2.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/socket.io-parser": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", + "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz", + "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==", + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || 18.x.x" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dependencies": { + "minimist": "^1.1.0" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dependencies": { + "acorn-node": "^1.2.0" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ternary": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ternary/-/ternary-1.0.0.tgz", + "integrity": "sha1-RXAnJWCMlJnUapYQ6bDkn/JveJ4=" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dependencies": { + "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/transformify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/transformify/-/transformify-0.1.2.tgz", + "integrity": "sha1-mk9CoVRDPdcnuAV1Qoo8nlSJ6/E=", + "dependencies": { + "readable-stream": "~1.1.9" + } + }, + "node_modules/transformify/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/transformify/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz", + "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/typescript": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "node_modules/uglifyify": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/uglifyify/-/uglifyify-3.0.4.tgz", + "integrity": "sha512-T2Pjw1oeZkT8UzDZNXzvNgepvGYNg3vrKKCi5jrgqMxMxF+VR14XZTL5AONjFVYVvpNHvD2pWd6UssByt8Mpew==", + "dependencies": { + "convert-source-map": "~1.1.0", + "extend": "^1.2.1", + "minimatch": "^3.0.2", + "through": "~2.3.4", + "uglify-js": "2.x.x" + } + }, + "node_modules/uglifyify/node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" + }, + "node_modules/umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "bin": { + "umd": "bin/cli.js" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dependencies": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" + } + }, + "node_modules/underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha512-cp0oQQyZhUM1kpJDLdGO1jPZHgS/MpzoWYfe9+CM2h/QGDZlqwT2T3YGukuBdaNJ/CAPoeyAZRRHz8JFo176vA==" + }, + "node_modules/underscore.string": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", + "integrity": "sha512-3FVmhXqelrj6gfgp3Bn6tOavJvW0dNH2T+heTD38JRxIrAbiuzbqjknszoOYj3DyFB1nWiLj208Qt2no/L4cIA==", + "engines": { + "node": "*" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use-subscription": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", + "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", + "dependencies": { + "object-assign": "^4.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dependencies": { + "indexof": "0.0.1" + } + }, + "node_modules/watchify": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.1.tgz", + "integrity": "sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog==", + "dependencies": { + "anymatch": "^2.0.0", + "browserify": "^16.1.0", + "chokidar": "^2.1.1", + "defined": "^1.0.0", + "outpipe": "^1.1.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "watchify": "bin/cmd.js" + } + }, + "node_modules/watchify/node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/watchify/node_modules/browserify": { + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz", + "integrity": "sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==", + "dependencies": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/watchify/node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/watchify/node_modules/buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/watchify/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/watchify/node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dependencies": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/watchify/node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/watchify/node_modules/events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/watchify/node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "node_modules/watchify/node_modules/module-deps": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "dependencies": { + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/watchify/node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "node_modules/watchify/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/watchify/node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/watchify/node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/watchify/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/watchify/node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "node_modules/yargs/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "engines": { + "node": ">=0.10.0" + } + } + }, + "dependencies": { + "@babel/runtime": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + } + } + }, + "@babel/runtime-corejs3": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", + "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", + "dev": true, + "requires": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + } + } + }, + "@eslint/eslintrc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@mapbox/node-pre-gyp": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz", + "integrity": "sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==", + "requires": { + "detect-libc": "^1.0.3", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.5", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + } + }, + "@next/env": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.0.tgz", + "integrity": "sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ==" + }, + "@next/eslint-plugin-next": { + "version": "12.0.7", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.0.7.tgz", + "integrity": "sha512-xk7eMjw4+roWWR/0ETIoToCNs2wdvCGgQUiUO390Rj33/82yxZsh+ODRSaFWkiKp8zHWQN5GCW+U5pfjt/gyQg==", + "dev": true, + "requires": { + "glob": "7.1.7" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "@next/swc-android-arm64": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz", + "integrity": "sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA==", + "optional": true + }, + "@next/swc-darwin-arm64": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz", + "integrity": "sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg==", + "optional": true + }, + "@next/swc-darwin-x64": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz", + "integrity": "sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug==", + "optional": true + }, + "@next/swc-linux-arm-gnueabihf": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz", + "integrity": "sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog==", + "optional": true + }, + "@next/swc-linux-arm64-gnu": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz", + "integrity": "sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q==", + "optional": true + }, + "@next/swc-linux-arm64-musl": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz", + "integrity": "sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA==", + "optional": true + }, + "@next/swc-linux-x64-gnu": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz", + "integrity": "sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A==", + "optional": true + }, + "@next/swc-linux-x64-musl": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz", + "integrity": "sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw==", + "optional": true + }, + "@next/swc-win32-arm64-msvc": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz", + "integrity": "sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw==", + "optional": true + }, + "@next/swc-win32-ia32-msvc": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz", + "integrity": "sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q==", + "optional": true + }, + "@next/swc-win32-x64-msvc": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz", + "integrity": "sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg==", + "optional": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rushstack/eslint-patch": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.1.tgz", + "integrity": "sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg==", + "dev": true + }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, + "@types/disposable-email-domains": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/disposable-email-domains/-/disposable-email-domains-1.0.2.tgz", + "integrity": "sha512-SDKwyYTjk3y5aZBxxc38yRecpJPjsqn57STz1bNxYYlv4k11bBe7QB8w4llXDTmQXKT1mFvgGmJv+8Zdu3YmJw==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "@typescript-eslint/parser": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz", + "integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.16.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/typescript-estree": "5.16.0", + "debug": "^4.3.2" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz", + "integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0" + } + }, + "@typescript-eslint/types": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz", + "integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz", + "integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz", + "integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.16.0", + "eslint-visitor-keys": "^3.0.0" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accessory": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/accessory/-/accessory-1.1.0.tgz", + "integrity": "sha1-eDPpg5oy3tdtJgIfNqQXB6Ug9ZM=", + "requires": { + "ap": "~0.2.0", + "balanced-match": "~0.2.0", + "dot-parts": "~1.0.0" + } + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "aes-everywhere": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/aes-everywhere/-/aes-everywhere-1.0.0.tgz", + "integrity": "sha512-rIkLlUpjHl/JWBhgL7xR63EHctrO4mvZ/mgG0YuQqaSs0eqs8yD7lzyWkaBq9MqF8dD5SQL5tshYq8OU00pFhg==", + "requires": { + "babelify": "^7.3.0", + "browserify": "^13.0.1", + "browserify-shim": "^3.8.12", + "dateformat": "1.0.12", + "grunt": "^0.4", + "grunt-browserify": "^5.0.0", + "grunt-cli": "0.1.13", + "load-grunt-tasks": "1.0.0", + "node-cryptojs-aes": "^0.4.0", + "uglifyify": "^3.0.1" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "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": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "optional": true + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "ap": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ap/-/ap-0.2.0.tgz", + "integrity": "sha1-rglCYAspkS8NKxTsYMRejzMLYRA=" + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "async": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "axe-core": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", + "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "dev": true + }, + "axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "requires": { + "follow-redirects": "^1.14.4" + } + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babelify": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", + "integrity": "sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA==", + "requires": { + "babel-core": "^6.0.14", + "object-assign": "^4.0.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz", + "integrity": "sha1-e8ZYtL7WHu5CStdPdfXD4sTfPMc=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bcrypt": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", + "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^3.1.0" + } + }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + } + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "requires": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + } + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, + "browserify": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz", + "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=", + "requires": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.1.2", + "buffer": "^4.1.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.1", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "~1.1.0", + "duplexer2": "~0.1.2", + "events": "~1.1.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "~0.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "module-deps": "^4.0.8", + "os-browserify": "~0.1.1", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^2.0.0", + "string_decoder": "~0.10.0", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "~0.0.0", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "~0.0.1", + "xtend": "^4.0.0" + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cache-api": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", + "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", + "requires": { + "async": "^1.5.2", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + } + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-incremental": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", + "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", + "requires": { + "browserify-cache-api": "^3.0.0", + "JSONStream": "^0.10.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=" + }, + "JSONStream": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", + "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", + "requires": { + "jsonparse": "0.0.5", + "through": ">=2.2.7 <3" + } + } + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-shim": { + "version": "3.8.14", + "resolved": "https://registry.npmjs.org/browserify-shim/-/browserify-shim-3.8.14.tgz", + "integrity": "sha1-vxBXAmky0yU8de991xTzuHft7Gs=", + "requires": { + "exposify": "~0.5.0", + "mothership": "~0.2.0", + "rename-function-calls": "~0.1.0", + "resolve": "~0.6.1", + "through": "~2.3.4" + }, + "dependencies": { + "resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=" + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "requires": { + "pako": "~0.2.0" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cached-path-relative": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001319", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz", + "integrity": "sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "coffee-script": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", + "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=" + }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" + } + } + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" + }, + "dependencies": { + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + } + } + }, + "config": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/config/-/config-3.3.7.tgz", + "integrity": "sha512-mX/n7GKDYZMqvvkY6e6oBY49W8wxdmQt+ho/5lhwFDXqQW9gI+Ahp8EKp8VAbISPnmf2+Bv5uZK7lKXZ6pf1aA==", + "requires": { + "json5": "^2.1.1" + }, + "dependencies": { + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + } + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "cookies": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "requires": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "core-js-pure": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", + "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==" + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + }, + "deep-email-validator": { + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/deep-email-validator/-/deep-email-validator-0.1.21.tgz", + "integrity": "sha512-DBAmMzbr+MAubXQ+TS9tZuPwLcdKscb8YzKZiwoLqF3NmaeEgXvSSHhZ0EXOFeKFE2FNWC4mNXCyiQ/JdFXUwg==", + "requires": { + "@types/disposable-email-domains": "^1.0.1", + "axios": "^0.24.0", + "disposable-email-domains": "^1.0.59", + "mailcheck": "^1.1.1" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "requires": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + } + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "detective": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", + "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", + "requires": { + "acorn": "^5.2.1", + "defined": "^1.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + } + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "disposable-email-domains": { + "version": "1.0.59", + "resolved": "https://registry.npmjs.org/disposable-email-domains/-/disposable-email-domains-1.0.59.tgz", + "integrity": "sha512-45NbOP1Oboaddf0pD5mGnT+1msEifY6VUcR9Msq4zBHk2EeGv9PxiwuoynIfdGID1BSFR3U3egPfMbERkqXxUQ==" + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" + }, + "dot-parts": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dot-parts/-/dot-parts-1.0.1.tgz", + "integrity": "sha1-iEvXvPwwgv+tL+XbU+SU2PPgdD8=" + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "engine.io-client": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", + "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "engine.io-parser": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==" + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.1.0.tgz", + "integrity": "sha1-xmOSP24gqtSNDA+knzHG1PSTYM8=", + "requires": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.30" + }, + "dependencies": { + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=" + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=" + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "eslint": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", + "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.3.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.2.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "eslint-config-next": { + "version": "12.0.7", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.0.7.tgz", + "integrity": "sha512-kWOaym5qjyzR190zFKkZMaHetmiRORmzJiKML7Kr9CL213S6SwkrHHCEL58TRdpx0NA+HzrsFR9zgcV2pvV2Yg==", + "dev": true, + "requires": { + "@next/eslint-plugin-next": "12.0.7", + "@rushstack/eslint-patch": "^1.0.8", + "@typescript-eslint/parser": "^5.0.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-import-resolver-typescript": "^2.4.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.0", + "eslint-plugin-react-hooks": "^4.3.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "eslint-import-resolver-typescript": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz", + "integrity": "sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==", + "dev": true, + "requires": { + "debug": "^4.3.1", + "glob": "^7.1.7", + "is-glob": "^4.0.1", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", + "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "dev": true, + "requires": { + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + } + }, + "eslint-plugin-react": { + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", + "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz", + "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dev": true, + "requires": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + }, + "esprima-fb": { + "version": "3001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", + "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } + } + }, + "exposify": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/exposify/-/exposify-0.5.0.tgz", + "integrity": "sha1-+S0AlMJls/VT4fpFagOhiD0QWcw=", + "requires": { + "globo": "~1.1.0", + "map-obj": "~1.0.1", + "replace-requires": "~1.0.3", + "through2": "~0.4.0", + "transformify": "~0.1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", + "requires": { + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "extend": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-1.3.0.tgz", + "integrity": "sha512-hT3PRBs1qm4P8g2keUBZ9bPaFHAcS78o5aCd9WhFTluHZZgBEkI08R+zYrpRpImyRTH+dw7IlqxrOp9iartTkw==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-parent-dir": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz", + "integrity": "sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A==" + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "findup-sync": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", + "integrity": "sha512-yjftfYnF4ThYEvKEV/kEFR15dmtyXTAh3vQnzpJUoc7Naj5y1P0Ck7Zs1+Vroa00E3KT3IYsk756S+8WA5dNLw==", + "requires": { + "glob": "~3.2.9", + "lodash": "~2.4.1" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha512-hVb0zwEZwC1FXSKRPFTeOtN7AArJcJlI6ULGLtrstaswKNlrTJqAA+1lYlSUop4vjA423xlBzqfVS3iWGlqJ+g==", + "requires": { + "inherits": "2", + "minimatch": "0.3" + } + }, + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==" + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha512-WFX1jI1AaxNTZVOHLBVazwTWKaQjoykSzCBNXB72vDTCzopQGtyP91tKdFK5cv1+qMwPyiTu1HqUriqplI8pcA==", + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha512-hIGEBfnHcZpWkXPsAVeVmpYDvfy/matVl03yOY91FPmnpCC12Lm5izNxCjO3lHAeO6uaTwMxu7g450Siknlhig==" + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } + } + }, + "globo": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/globo/-/globo-1.1.0.tgz", + "integrity": "sha1-DSYJiVXepCLrIAGxBImLChAcqvM=", + "requires": { + "accessory": "~1.1.0", + "is-defined": "~1.0.0", + "ternary": "~1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "grunt": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", + "integrity": "sha512-1iq3ylLjzXqz/KSq1OAE2qhnpcbkF2WyhsQcavZt+YmgvHu0EbPMEhGhy2gr0FP67isHpRdfwjB5WVeXXcJemQ==", + "requires": { + "async": "~0.1.22", + "coffee-script": "~1.3.3", + "colors": "~0.6.2", + "dateformat": "1.0.2-1.2.3", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.1.2", + "getobject": "~0.1.0", + "glob": "~3.1.21", + "grunt-legacy-log": "~0.1.0", + "grunt-legacy-util": "~0.2.0", + "hooker": "~0.2.3", + "iconv-lite": "~0.2.11", + "js-yaml": "~2.0.5", + "lodash": "~0.9.2", + "minimatch": "~0.2.12", + "nopt": "~1.0.10", + "rimraf": "~2.2.8", + "underscore.string": "~2.2.1", + "which": "~1.0.5" + }, + "dependencies": { + "argparse": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "integrity": "sha512-LjmC2dNpdn2L4UzyoaIr11ELYoLn37ZFy9zObrQFHsSuOepeUEMKnM8w5KL4Tnrp2gy88rRuQt6Ky8Bjml+Baw==", + "requires": { + "underscore": "~1.7.0", + "underscore.string": "~2.4.0" + }, + "dependencies": { + "underscore.string": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", + "integrity": "sha512-yxkabuCaIBnzfIvX3kBxQqCs0ar/bfJwDnFEHJUm/ZrRVhT3IItdRF5cZjARLzEnyQYtIUhsZ2LG2j3HidFOFQ==" + } + } + }, + "dateformat": { + "version": "1.0.2-1.2.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=" + }, + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha512-ANhy2V2+tFpRajE3wN4DhkNQ08KDr0Ir1qL12/cUe5+a7STEK8jkW4onUYuY8/06qAFuT5je7mjAqzx0eKI2tQ==", + "requires": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" + }, + "js-yaml": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", + "integrity": "sha512-VEKcIksckDBUhg2JS874xVouiPkywVUh4yyUmLCDe1Zg3bCd6M+F1eGPenPeHLc2XC8pp9G8bsuofK0NeEqRkA==", + "requires": { + "argparse": "~ 0.1.11", + "esprima": "~ 1.0.2" + } + }, + "lodash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha512-LVbt/rjK62gSbhehDVKL0vlaime4Y1IBixL+bKeNfoY4L2zab/jGrxU6Ka05tMA/zBxkTk5t3ivtphdyYupczw==" + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==", + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + }, + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + }, + "which": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=" + } + } + }, + "grunt-browserify": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-5.3.0.tgz", + "integrity": "sha512-6jNNSqdCbazFufc3ulS7LjULa3aoiU2gOKWRgDMcJtGT/ZnMx0XrU4/iM/BCwHZ614YNzXfbvJ6H2ROrdAIeqw==", + "requires": { + "async": "^2.5.0", + "browserify": "^16.0.0", + "browserify-incremental": "^3.1.1", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "resolve": "^1.1.6", + "watchify": "^3.6.1" + }, + "dependencies": { + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "requires": { + "lodash": "^4.17.14" + } + }, + "browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "requires": { + "resolve": "^1.17.0" + } + }, + "browserify": { + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz", + "integrity": "sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==", + "requires": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==" + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "module-deps": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "requires": { + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + } + } + }, + "grunt-cli": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-0.1.13.tgz", + "integrity": "sha512-BbNtMuqZIZjafVWYB2nipPtvWILEVtY6N30eMNwKzwISddC5D4XHzfqjuCyEKcKTH19k3FqsRLZenEc1g3PE0Q==", + "requires": { + "findup-sync": "~0.1.0", + "nopt": "~1.0.10", + "resolve": "~0.3.1" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + }, + "resolve": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.3.1.tgz", + "integrity": "sha1-NMY0R8ZkxwWY0cmxJvxDsqJDEKQ=" + } + } + }, + "grunt-legacy-log": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", + "integrity": "sha512-qYs/uM0ImdzwIXLhS4O5WLV5soAM+PEqqHI/hzSxlo450ERSccEhnXqoeDA9ZozOdaWuYnzTOTwRcVRogleMxg==", + "requires": { + "colors": "~0.6.2", + "grunt-legacy-log-utils": "~0.1.1", + "hooker": "~0.2.3", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==" + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha512-hbD5MibthuDAu4yA5wxes5bzFgqd3PpBJuClbRxaNddxfdsz+qf+1kHwrGQFrmchmDHb9iNU+6EHDn8uj0xDJg==" + } + } + }, + "grunt-legacy-log-utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", + "integrity": "sha512-D0vbUX00TFYCKNZtcZzemMpwT8TR/FdRs1pmfiBw6qnUw80PfsjV+lhIozY/3eJ3PSG2zj89wd2mH/7f4tNAlw==", + "requires": { + "colors": "~0.6.2", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==" + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha512-hbD5MibthuDAu4yA5wxes5bzFgqd3PpBJuClbRxaNddxfdsz+qf+1kHwrGQFrmchmDHb9iNU+6EHDn8uj0xDJg==" + } + } + }, + "grunt-legacy-util": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", + "integrity": "sha512-cXPbfF8aM+pvveQeN1K872D5fRm30xfJWZiS63Y8W8oyIPLClCsmI8bW96Txqzac9cyL4lRqEBhbhJ3n5EzUUQ==", + "requires": { + "async": "~0.1.22", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~0.9.2", + "underscore.string": "~2.2.1", + "which": "~1.0.5" + }, + "dependencies": { + "lodash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha512-LVbt/rjK62gSbhehDVKL0vlaime4Y1IBixL+bKeNfoY4L2zab/jGrxU6Ka05tMA/zBxkTk5t3ivtphdyYupczw==" + }, + "which": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=" + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-require": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/has-require/-/has-require-1.2.2.tgz", + "integrity": "sha1-khZ1qxMNvZdo/I2o8ajiQt+kF3Q=", + "requires": { + "escape-string-regexp": "^1.0.3" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=" + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=" + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=" + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "iconv-lite": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=" + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "requires": { + "source-map": "~0.5.3" + } + }, + "insert-module-globals": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", + "requires": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + } + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-defined/-/is-defined-1.0.0.tgz", + "integrity": "sha1-HwfKZ9Vx9ZTEsUQVpF9774j5K/U=" + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "jsx-ast-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "dev": true, + "requires": { + "array-includes": "^3.1.3", + "object.assign": "^4.1.2" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "requires": { + "tsscmp": "1.0.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "requires": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "load-grunt-tasks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-1.0.0.tgz", + "integrity": "sha512-JmC5/5YrcMU0KW3Yfxp60Y4d+j1NG4s6JKPCFmGS0oskHG4rYzz//pPofjvWrts7aC1fGw8v8KYwQFMGIiAsfA==", + "requires": { + "findup-sync": "^0.1.2", + "multimatch": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "mailcheck": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mailcheck/-/mailcheck-1.1.1.tgz", + "integrity": "sha1-2Hz2ugtkulEhmdv5PxSJ9HlZHjQ=" + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "module-deps": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", + "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", + "requires": { + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.0", + "defined": "^1.0.0", + "detective": "^4.0.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.3", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "mothership": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/mothership/-/mothership-0.2.0.tgz", + "integrity": "sha1-k9SKL7w+UOKl/I7VhvW8RMZfmpk=", + "requires": { + "find-parent-dir": "~0.3.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multimatch": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-1.0.1.tgz", + "integrity": "sha512-IAE+90RjqpJQ17ZWNgS5EuglpBNYFNPx9m8VWBFJiAD65XnARcChfwiB8pKcArFclx1dDjXtHxbT1sXaKLQ2wA==", + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "minimatch": "^1.0.0" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "minimatch": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", + "integrity": "sha512-Ejh5Odk/uFXAj5nf/NSXk0UamqcGAfOdHI7nY0zvCHyn4f3nKLFoUTp+lYxDxSih/40uW8lpwDplOWHdWkQXWA==", + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "requires": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "optional": true + }, + "nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "next": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/next/-/next-12.1.0.tgz", + "integrity": "sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==", + "requires": { + "@next/env": "12.1.0", + "@next/swc-android-arm64": "12.1.0", + "@next/swc-darwin-arm64": "12.1.0", + "@next/swc-darwin-x64": "12.1.0", + "@next/swc-linux-arm-gnueabihf": "12.1.0", + "@next/swc-linux-arm64-gnu": "12.1.0", + "@next/swc-linux-arm64-musl": "12.1.0", + "@next/swc-linux-x64-gnu": "12.1.0", + "@next/swc-linux-x64-musl": "12.1.0", + "@next/swc-win32-arm64-msvc": "12.1.0", + "@next/swc-win32-ia32-msvc": "12.1.0", + "@next/swc-win32-x64-msvc": "12.1.0", + "caniuse-lite": "^1.0.30001283", + "postcss": "8.4.5", + "styled-jsx": "5.0.0", + "use-subscription": "1.5.1" + } + }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + }, + "node-cryptojs-aes": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-cryptojs-aes/-/node-cryptojs-aes-0.4.0.tgz", + "integrity": "sha1-ZM+6gMH7yfrDR8jrLCwSrb06igc=" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "nodemailer": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.3.tgz", + "integrity": "sha512-KUdDsspqx89sD4UUyUKzdlUOper3hRkDVkrKh/89G+d9WKsU5ox51NWS4tB1XR5dPUdR4SP0E3molyEfOvSa3g==" + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "os-browserify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", + "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "requires": { + "shell-quote": "^1.4.2" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "requires": { + "path-platform": "~0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "patch-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/patch-text/-/patch-text-1.0.2.tgz", + "integrity": "sha1-S/NuZeUXM9bpjwz2LgkDTaoDSKw=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "rename-function-calls": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/rename-function-calls/-/rename-function-calls-0.1.1.tgz", + "integrity": "sha1-f4M2nAB6MAf2q+MDPM+BaGoQjgE=", + "requires": { + "detective": "~3.1.0" + }, + "dependencies": { + "detective": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-3.1.0.tgz", + "integrity": "sha1-d3gkRKt1K4jKG+Lp0KA5Xx2iXu0=", + "requires": { + "escodegen": "~1.1.0", + "esprima-fb": "3001.1.0-dev-harmony-fb" + } + } + } + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-requires": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/replace-requires/-/replace-requires-1.0.4.tgz", + "integrity": "sha1-AUtzMLa54lV7cQQ7ZvsCZgw79mc=", + "requires": { + "detective": "^4.5.0", + "has-require": "~1.2.1", + "patch-text": "~1.0.2", + "xtend": "~4.0.0" + } + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } + } + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "requires": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + } + }, + "socket.io-client": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz", + "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==", + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.4.0", + "socket.io-parser": "~4.2.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "socket.io-parser": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", + "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "styled-jsx": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz", + "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==", + "requires": {} + }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "requires": { + "minimist": "^1.1.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "requires": { + "acorn-node": "^1.2.0" + } + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "ternary": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ternary/-/ternary-1.0.0.tgz", + "integrity": "sha1-RXAnJWCMlJnUapYQ6bDkn/JveJ4=" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "requires": { + "process": "~0.11.0" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "transformify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/transformify/-/transformify-0.1.2.tgz", + "integrity": "sha1-mk9CoVRDPdcnuAV1Qoo8nlSJ6/E=", + "requires": { + "readable-stream": "~1.1.9" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==" + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "tsconfig-paths": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz", + "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typescript": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "dev": true, + "peer": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "uglifyify": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/uglifyify/-/uglifyify-3.0.4.tgz", + "integrity": "sha512-T2Pjw1oeZkT8UzDZNXzvNgepvGYNg3vrKKCi5jrgqMxMxF+VR14XZTL5AONjFVYVvpNHvD2pWd6UssByt8Mpew==", + "requires": { + "convert-source-map": "~1.1.0", + "extend": "^1.2.1", + "minimatch": "^3.0.2", + "through": "~2.3.4", + "uglify-js": "2.x.x" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" + } + } + }, + "umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==" + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "requires": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha512-cp0oQQyZhUM1kpJDLdGO1jPZHgS/MpzoWYfe9+CM2h/QGDZlqwT2T3YGukuBdaNJ/CAPoeyAZRRHz8JFo176vA==" + }, + "underscore.string": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", + "integrity": "sha512-3FVmhXqelrj6gfgp3Bn6tOavJvW0dNH2T+heTD38JRxIrAbiuzbqjknszoOYj3DyFB1nWiLj208Qt2no/L4cIA==" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "use-subscription": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", + "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", + "requires": { + "object-assign": "^4.1.1" + } + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "requires": { + "indexof": "0.0.1" + } + }, + "watchify": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.1.tgz", + "integrity": "sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog==", + "requires": { + "anymatch": "^2.0.0", + "browserify": "^16.1.0", + "chokidar": "^2.1.1", + "defined": "^1.0.0", + "outpipe": "^1.1.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "requires": { + "resolve": "^1.17.0" + } + }, + "browserify": { + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz", + "integrity": "sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==", + "requires": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==" + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "module-deps": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "requires": { + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + } + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "requires": {} + }, + "xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + } + } + } + } +} diff --git a/web/package.json b/web/package.json new file mode 100755 index 0000000..9f3752c --- /dev/null +++ b/web/package.json @@ -0,0 +1,28 @@ +{ + "name": "web", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "aes-everywhere": "^1.0.0", + "bcrypt": "^5.0.1", + "config": "^3.3.7", + "cookies": "^0.8.0", + "deep-email-validator": "^0.1.21", + "jsonwebtoken": "^8.5.1", + "mysql": "^2.18.1", + "next": "^12.0.10", + "nodemailer": "^6.7.2", + "react": "^17.0.2", + "react-dom": "17.0.2", + "socket.io-client": "^4.4.1" + }, + "devDependencies": { + "eslint": "8.6.0", + "eslint-config-next": "12.0.7" + } +} \ No newline at end of file diff --git a/web/pages/404.js b/web/pages/404.js new file mode 100755 index 0000000..24ac438 --- /dev/null +++ b/web/pages/404.js @@ -0,0 +1,22 @@ +// Strict Mode +"use strict"; + +// Imports +import styles from "../styles/404.module.css"; +import Header from "../components/header/header.jsx"; +import Title from "../components/title/title.jsx"; +import Footer from "../components/footer/footer.jsx"; + +// Error 404 +export default function Error404 () { + return ( +
+
+ + <div className = { styles.error404 }> + <h2>404</h2> + </div> + <Footer/> + </div> + ); +}; \ No newline at end of file diff --git a/web/pages/_app.js b/web/pages/_app.js new file mode 100755 index 0000000..248a362 --- /dev/null +++ b/web/pages/_app.js @@ -0,0 +1,13 @@ +// Strict Mode +"use strict"; + +// Styles +import "../styles/reset.css" +import "../styles/fonts.css" + +// My App +export default function MyApp ( { Component, pageProps } ) { + return ( + <Component { ...pageProps }/> + ); +}; \ No newline at end of file diff --git a/web/pages/_error.js b/web/pages/_error.js new file mode 100755 index 0000000..92f7d40 --- /dev/null +++ b/web/pages/_error.js @@ -0,0 +1,18 @@ +// Strict Mode +"use strict"; + +// Imports +import Header from "../components/header/header.jsx"; +import Title from "../components/title/title.jsx"; +import Footer from "../components/footer/footer.jsx"; + +// Index +export default function Index () { + return ( + <div> + <Header/> + <Title title = "505 - Error"/> + <Footer/> + </div> + ); +}; \ No newline at end of file diff --git a/web/pages/account.js b/web/pages/account.js new file mode 100755 index 0000000..990d047 --- /dev/null +++ b/web/pages/account.js @@ -0,0 +1,163 @@ +// Strict Mode +"use strict"; + +// Imports +import React, { useEffect, useState } from "react"; +import authentication from "../authentication/authentication.js"; +import styles from "../styles/account.module.css"; +import Header from "../components/header/header.jsx"; +import Title from "../components/title/title.jsx"; +import Footer from "../components/footer/footer.jsx"; + +// Get Server Side Props +export async function getServerSideProps ( ctx ) { + try { + const user = await authentication.getUser(ctx.req, ctx.res); + if (user == "") { + return { + props: { + loggedIn: false + } + }; + } else { + return { + props: { + loggedIn: true + } + }; + }; + } catch { + return { + props: { + loggedIn: false + } + }; + } + +}; + +// Account +export default function Home( props ) { + const [ signInError, setSignInError ] = useState(""); + const [ signUpError, setSignUpError ] = useState(""); + useEffect(() => { + const host = "http://localhost:3000/"; + try { + const signInForm = document.querySelector(".signInForm"); + signInForm.addEventListener("submit", async function ( event ) { + try { + event.preventDefault(); + const formData = new FormData(signInForm).entries(); + const request = await fetch(host + "api/signIn", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(Object.fromEntries(formData)) + }); + const result = await request.json(); + if (result.response.success == true && result.response.activated == true) { + window.location = host + "account"; + } else if (result.response.success == true && result.response.activated == false) { + setSignInError("Account Not Activated"); + } else { + setSignInError("Bad Login"); + }; + } catch (error) { + console.log(error) + setSignInError("Error"); + }; + }, []); + } catch {}; + try { + const signUpForm = document.querySelector(".signUpForm"); + signUpForm.addEventListener("submit", async function ( event ) { + try { + event.preventDefault(); + const formData = new FormData(signUpForm).entries(); + const response = await fetch(host + "api/createAccount", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(Object.fromEntries(formData)) + }); + const result = await response.json(); + if (result.response.error != "") { + setSignUpError(result.response.error); + } else { + setSignUpError("Check Your Email To Activate Your Account"); + } + } catch (error) { + setSignUpError("Error"); + console.log(error) + }; + }); + } catch {}; + try { + const signOutForm = document.querySelector(".signOutForm"); + signOutForm.addEventListener("submit", async function ( event ) { + try { + event.preventDefault(); + const formData = new FormData(signOutForm).entries() + const response = await fetch(host + "api/signOut", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(Object.fromEntries(formData)) + }); + await response.json(); + window.location = host + "account"; + } catch { + window.location = host + "account"; + }; + }, []); + } catch {}; + }); + return ( + <div> + <Header/> + <Title title = "Account"/> + { + props.loggedIn ? + <div className = { styles.account }> + <form className = "signOutForm"> + <button type = "submit">Sign Out</button> + </form> + </div> + : ( + <div className = { styles.account }> + <div> + <h2>Sign In</h2> + <form className = "signInForm"> + <input type = "email" placeholder = "Email" name = "Email"/> + <input type = "password" placeholder = "Password" name = "Password"/> + <button type = "submit">Submit</button> + </form> + { + signInError ? + <h3>{ signInError }</h3> + : ( + <h3> </h3> + ) + } + </div> + <div> + <h2>Sign Up</h2> + <form className = "signUpForm"> + <input type = "text" placeholder = "Username" name = "Username"/> + <input type = "email" placeholder = "Email" name = "Email"/> + <input type = "password" placeholder = "Password" name = "Password"/> + <input type = "password" placeholder = "Confirm Password" name = "Confirm Password"/> + <button type = "submit">Submit</button> + </form> + { + signUpError ? + <h3>{ signUpError }</h3> + : ( + <h3> </h3> + ) + } + </div> + </div> + ) + } + <Footer/> + </div> + ); +}; \ No newline at end of file diff --git a/web/pages/activate/[activate].js b/web/pages/activate/[activate].js new file mode 100755 index 0000000..15f9656 --- /dev/null +++ b/web/pages/activate/[activate].js @@ -0,0 +1,164 @@ +// Strict Mode +"use strict"; + +// Imports +import React, { useEffect, useState } from "react"; +import authentication from "../../authentication/authentication.js"; +import database from "../../database/database.js"; +import styles from "../../styles/account.module.css"; +import Header from "../../components/header/header.jsx"; +import Title from "../../components/title/title.jsx"; +import Footer from "../../components/footer/footer.jsx"; + +// Get Server Side Props +export async function getServerSideProps ( ctx ) { + try { + if (await database.activateUser(ctx.query.activate)) { + await authentication.getUser(ctx.req, ctx.res); + return { + props: { + message: "Account Activated" + } + }; + } else { + await authentication.getUser(ctx.req, ctx.res); + return { + props: { + message: "Error Activating Account" + } + }; + }; + } catch { + await authentication.getUser(ctx.req, ctx.res); + return { + props: { + message: "Error" + } + }; + }; +}; + +// Account +export default function Home( props ) { + const [ signInError, setSignInError ] = useState(""); + const [ signUpError, setSignUpError ] = useState(""); + useEffect(() => { + const host = "http://localhost:3000/"; + try { + const signInForm = document.querySelector(".signInForm"); + signInForm.addEventListener("submit", async function ( event ) { + try { + event.preventDefault(); + const formData = new FormData(signInForm).entries(); + const request = await fetch(host + "api/signIn", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(Object.fromEntries(formData)) + }); + const result = await request.json(); + if (result.response.success == true && result.response.activated == true) { + window.location = host + "account"; + } else if (result.response.success == true && result.response.activated == false) { + setSignInError("Account Not Activated"); + } else { + setSignInError("Bad Login"); + }; + } catch { + setSignInError("Error"); + }; + }, []); + } catch {}; + try { + const signUpForm = document.querySelector(".signUpForm"); + signUpForm.addEventListener("submit", async function ( event ) { + try { + event.preventDefault(); + const formData = new FormData(signUpForm).entries(); + const response = await fetch(host + "api/createAccount", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(Object.fromEntries(formData)) + }); + const result = await response.json(); + if (result.response.error != undefined) { + setSignUpError(result.response.error); + } else { + setSignUpError("Check Your Email To Activate Your Account"); + } + } catch { + setSignUpError("Error"); + }; + }); + } catch {}; + try { + const signOutForm = document.querySelector(".signOutForm"); + signOutForm.addEventListener("submit", async function ( event ) { + try { + event.preventDefault(); + const formData = new FormData(signOutForm).entries() + const response = await fetch(host + "api/signOut", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(Object.fromEntries(formData)) + }); + await response.json(); + window.location = host + "account"; + } catch { + window.location = host + "account"; + }; + }, []); + } catch {}; + }); + return ( + <div> + <Header/> + <Title title = "Account"/> + <Title title = { props.message }/> + { + props.loggedIn ? + <div className = { styles.account }> + <form className = "signOutForm"> + <button type = "submit">Sign Out</button> + </form> + </div> + : ( + <div className = { styles.account }> + <div> + <h2>Sign In</h2> + <form className = "signInForm"> + <input type = "email" placeholder = "Email" name = "Email"/> + <input type = "password" placeholder = "Password" name = "Password"/> + <button type = "submit">Submit</button> + </form> + { + signInError ? + <h3>{ signInError }</h3> + : ( + <h3> </h3> + ) + } + </div> + <div> + <h2>Sign Up</h2> + <form className = "signUpForm"> + <input type = "text" placeholder = "Username" name = "Username"/> + <input type = "email" placeholder = "Email" name = "Email"/> + <input type = "password" placeholder = "Password" name = "Password"/> + <input type = "password" placeholder = "Confirm Password" name = "Confirm Password"/> + <button type = "submit">Submit</button> + </form> + { + signUpError ? + <h3>{ signUpError }</h3> + : ( + <h3> </h3> + ) + } + </div> + </div> + ) + } + <Footer/> + </div> + ); +}; \ No newline at end of file diff --git a/web/pages/api/createAccount.js b/web/pages/api/createAccount.js new file mode 100755 index 0000000..1b1d90f --- /dev/null +++ b/web/pages/api/createAccount.js @@ -0,0 +1,74 @@ +// Strict Mode +"use strict"; + +// Imports +import cryptography from "../../cryptography/cryptography.js"; +import database from "../../database/database.js"; +import mail from "../../mail/mail.js"; + +// Handler +export default async function handler ( req, res ) { + try { + const host = "http://localhost:3000/"; + const response = { + success: false, + error: "" + }; + req.body.Username = req.body.Username.toUpperCase(); + if (req.body.Username.length < 1) { + response.error = "Enter A Username"; + res.send({ + response + }); + } else if (req.body.Username.length > 10) { + response.error = "Username Must Be 10 Characters Or Less"; + res.send({ + response + }); + } else if (req.body.Username.match(/^\w+$/) == null) { + response.error = "Username Must Only Contain Alphanumberic Characters"; + res.send({ + response + }); + } else if (await database.usernameExists(req.body.Username)) { + response.error = "Username Already In Use"; + res.send({ + response + }); + } else if (await mail.validateEmail(req.body.Email) == false) { + response.error = "Email Is Not Valid"; + res.send({ + response + }); + } else if (await database.emailExists(req.body.Email)) { + response.error = "Email Already In Use"; + res.send({ + response + }); + } else if (req.body.Password.length < 4) { + response.error = "Password Must Be At Least 4 Characters Long"; + res.send({ + response + }); + } else if (await database.createUser(req.body.Username, req.body.Email, await cryptography.hash(req.body.Password), req.body.Username)) { + response.success = true; + const t = await mail.sendAccountActivationEmail(req.body.Email, host + "activate/" + req.body.Username); + console.log(t) + await database.createStat(req.body.Username); + res.send({ + response + }); + } else { + response.error = "Error Creating User"; + res.send({ + response + }); + }; + } catch { + response.success = false; + response.error = "Error"; + res.send({ + response + }); + }; +}; \ No newline at end of file diff --git a/web/pages/api/getStats/[getStats].js b/web/pages/api/getStats/[getStats].js new file mode 100755 index 0000000..87d7d07 --- /dev/null +++ b/web/pages/api/getStats/[getStats].js @@ -0,0 +1,14 @@ +// Strict Mode +"use strict"; + +// Imports +import database from "../../../database/database.js"; + +// Handler +export default async function handler ( req, res ) { + try { + res.send(await database.getStats(req.query.getStats)[0]); + } catch { + res.send(500); + }; +}; \ No newline at end of file diff --git a/web/pages/api/registerServer.js b/web/pages/api/registerServer.js new file mode 100755 index 0000000..ade4a62 --- /dev/null +++ b/web/pages/api/registerServer.js @@ -0,0 +1,21 @@ +// Strict Mode +"use strict"; + +// Imports +import database from "../../database/database.js"; + +// Handler +export default async function handler ( req, res ) { + try { + const aes256 = require("aes-everywhere"); + const decryptedData = aes256.decrypt(req.body, process.env.CRYPTOGRAPHY_PASSWORD).split(","); + if (decryptedData.length != 2) { + res.send(500); + } else { + await database.createServer(decryptedData[0], decryptedData[1]); + res.send(200); + }; + } catch { + res.send(500); + }; +}; \ No newline at end of file diff --git a/web/pages/api/serverIp.js b/web/pages/api/serverIp.js new file mode 100755 index 0000000..66bd1ec --- /dev/null +++ b/web/pages/api/serverIp.js @@ -0,0 +1,14 @@ +// Strict Mode +"use strict"; + +// Imports +import database from "../../database/database.js"; + +// Handler +export default async function handler ( req, res ) { + try { + res.send(await database.getFreeServer()); + } catch { + res.send(500); + }; +}; \ No newline at end of file diff --git a/web/pages/api/signIn.js b/web/pages/api/signIn.js new file mode 100755 index 0000000..63d9a16 --- /dev/null +++ b/web/pages/api/signIn.js @@ -0,0 +1,49 @@ +// Strict Mode +"use strict"; + +// Imports +import authentication from "../../authentication/authentication.js"; +import cryptography from "../../cryptography/cryptography.js"; +import database from "../../database/database.js"; +import mail from "../../mail/mail.js"; + +// Handler +export default async function handler ( req, res ) { + try { + const response = { + success: false, + activated: false + }; + const password = await database.loginUser(req.body.Email); + if (password == false) { + res.send({ + response + }); + } else { + const active = await database.getActive(req.body.Email); + if (await cryptography.compareHash(req.body.Password, password.passphrase)) { + if (active === true) { + const user = await database.getUsername(req.body.Email); + await authentication.setUser(req, res, user); + response.success = true; + response.activated = true; + res.send({ + response + }); + } else { + await mail.sendAccountActivationEmail(req.body.Email, "http://localhost:3000/" + "activate/" + await database.getActive(req.body.Email)); + response.success = true; + res.send({ + response + }); + }; + } else { + res.send({ + response + }); + }; + }; + } catch { + res.send(500); + }; +}; \ No newline at end of file diff --git a/web/pages/api/signOut.js b/web/pages/api/signOut.js new file mode 100755 index 0000000..5add701 --- /dev/null +++ b/web/pages/api/signOut.js @@ -0,0 +1,15 @@ +// Strict Mode +"use strict"; + +// Imports +import authentication from "../../authentication/authentication.js"; + +// Handler +export default async function handler ( req, res ) { + try { + await authentication.setUser(req, res, ""); + res.send(200); + } catch { + res.send(500); + }; +}; \ No newline at end of file diff --git a/web/pages/api/updateStats.js b/web/pages/api/updateStats.js new file mode 100755 index 0000000..e3bdef8 --- /dev/null +++ b/web/pages/api/updateStats.js @@ -0,0 +1,25 @@ +// Strict Mode +"use strict"; + +// Imports +import database from "../../database/database.js"; + +// Handler +export default async function handler ( req, res ) { + try { + const aes256 = require("aes-everywhere"); + const data = aes256.decrypt(req.body , 'password'); + const decryptedData = data.split(","); + if (decryptedData.length != 5) { + res.send(500); + } else { + await database.updateElo(decryptedData[0], decryptedData[1]); + await database.updateGameRank(decryptedData[0], decryptedData[2]); + await database.updateKills(decryptedData[0], decryptedData[3]); + await database.updateDeaths(decryptedData[0], decryptedData[4]); + res.send(200); + }; + } catch { + res.send(500); + }; +}; \ No newline at end of file diff --git a/web/pages/index.js b/web/pages/index.js new file mode 100755 index 0000000..07d3e14 --- /dev/null +++ b/web/pages/index.js @@ -0,0 +1,38 @@ +// Strict Mode +"use strict"; + +// Imports +import authentication from "../authentication/authentication.js"; +import styles from "../styles/index.module.css"; +import Header from "../components/header/header.jsx"; +import Title from "../components/title/title.jsx"; +import Footer from "../components/footer/footer.jsx"; + +// Get Server Side Props +export async function getServerSideProps ( ctx ) { + try { + await authentication.getUser(ctx.req, ctx.res); + return { + props: {} + }; + } catch { + return { + props: {} + }; + } +}; + +// Index +export default function Index () { + return ( + <div> + <Header/> + <Title title = "Home"/> + <div className = { styles.index }> + <h2>Shooty Arena is an online multiplayer platformer shooter! Sign in or create an account to get started.</h2> + <h3>Currently in alpha. V0.1.0</h3> + </div> + <Footer/> + </div> + ); +}; \ No newline at end of file diff --git a/web/pages/leaderboards/[page].js b/web/pages/leaderboards/[page].js new file mode 100755 index 0000000..b5b50c1 --- /dev/null +++ b/web/pages/leaderboards/[page].js @@ -0,0 +1,172 @@ +// Strict Mode +"use strict"; + +// Imports +import authentication from "../../authentication/authentication.js"; +import database from "../../database/database.js"; +import styles from "../../styles/leaderboards.module.css"; +import Header from "../../components/header/header.jsx"; +import Title from "../../components/title/title.jsx"; +import Footer from "../../components/footer/footer.jsx"; + +// Get Server Side Props +export async function getServerSideProps ( ctx ) { + try { + await authentication.getUser(ctx.req, ctx.res); + const stats = await database.getAllStats(); + const pageStats = []; + let previousPage = false; + let nextPage = false; + if (ctx.query.page != 1) { + previousPage = Number(ctx.query.page) - 1; + }; + for (let stat = ((ctx.query.page - 1) * 4); stat < stats.length; stat++) { + if (stat <= ((ctx.query.page - 1) * 4) + 3) { + pageStats.push(stats[stat]); + } else { + nextPage = Number(ctx.query.page) + 1; + }; + }; + if (pageStats.length == 0) { + return { + redirect: { + permanent: false, + destination: "/leaderboards/1" + } + }; + }; + return { + props: { + pageStats: JSON.stringify(pageStats), + previousPage: previousPage, + nextPage: nextPage + } + }; + } catch { + return { + redirect: { + permanent: false, + destination: "/leaderboards/1" + } + }; + } + +}; + +// Leaderboard +export default function Leaderboards ( props ) { + return ( + <div> + <Header/> + <Title title = "Leaderboards"/> + <div className = { styles.leaderboards }> + <div> + <table> + <tr> + <th> + Username + </th> + <th> + Game Rank + </th> + <th> + Elo + </th> + <th> + Kills + </th> + <th> + Deaths + </th> + </tr> + { + JSON.parse(props.pageStats).map(stats => { + return ( + <tr> + <td> + { stats.username } + </td> + <td> + { stats.gameRank } + </td> + <td> + { stats.elo } + </td> + <td> + { stats.kills } + </td> + <td> + { stats.deaths } + </td> + </tr> + ); + }) + } + </table> + <table> + <tr> + <th> + Rank + </th> + <th> + Elo + </th> + </tr> + <tr> + <td> + Shitty Shooty + </td> + <td> + 0 + </td> + </tr> + <tr> + <td> + Cutie Shooty + </td> + <td> + 1000 + </td> + </tr> + <tr> + <td> + Beauty Shooty + </td> + <td> + 2000 + </td> + </tr> + <tr> + <td> + Snooty Shooty + </td> + <td> + 3000 + </td> + </tr> + </table> + </div> + { + props.previousPage != false && props.nextPage != false && + <div> + <a href = { "/leaderboards/?".replace("?", props.previousPage) }>Previous Page</a> + <a href = { "/leaderboards/?".replace("?", props.nextPage) }>Next Page</a> + </div> + } + { + props.previousPage != false && props.nextPage == false && + <div> + <a href = { "/leaderboards/?".replace("?", props.previousPage) } style = {{"text-align": "center"}}>Previous Page</a> + </div> + } + { + props.nextPage != false && props.previousPage == false && + <div> + <a href = { "/leaderboards/?".replace("?", props.nextPage) } style = {{"text-align": "center"}}>Next Page</a> + </div> + } + </div> + <Footer/> + </div> + ); +}; \ No newline at end of file diff --git a/web/pages/play.js b/web/pages/play.js new file mode 100755 index 0000000..93763cd --- /dev/null +++ b/web/pages/play.js @@ -0,0 +1,574 @@ +// Strict Mode +"use strict"; + +// Imports +import React, { useEffect, useState, useRef } from "react"; +import authentication from "../authentication/authentication.js"; +import database from "../database/database.js"; +import styles from "../styles/play.module.css"; +import Header from "../components/header/header.jsx"; +import Title from "../components/title/title.jsx"; +import Footer from "../components/footer/footer.jsx"; +import io from "socket.io-client"; + +// Get Server Side Props +export async function getServerSideProps ( ctx ) { + try { + let user = "" + try { + user = await authentication.getUser(ctx.req, ctx.res) + } catch (e) { + user = "" + } + if (user=="") { + return { + redirect: { + destination: '/account', + permanent: false, + }, + } + } else { + var AES256 = require('aes-everywhere'); + const stats = await database.getStats(user) + await authentication.setGame(ctx.req, ctx.res, AES256.encrypt(`${user},${stats[0].gameRank},${stats[0].elo},${stats[0].kills},${stats[0].deaths}`, 'passphrase = encrypt("Shooty Arena")')) + return { + props: { + loggedIn: true + } + } + } + } catch { + return { + redirect: { + destination: '/account', + permanent: false, + }, + } + } + +} + +// Play +export default function Play () { + // Refs + const canvasRef = useRef(null); + let socket = null; + let menu = true; + // Use Effect + useEffect(() => { + + // Load Images + const image_flat = new Image(); + image_flat.src = "/tiles/flat.png"; + const image_corner = new Image(); + image_corner.src = "/tiles/corner.png"; + const image_background = new Image(); + image_background.src = "/backgrounds/background.png"; + const image_background_light = new Image(); + image_background_light.src = "/backgrounds/backgroundLight.png"; + const image_player_right = new Image(); + image_player_right.src = "/players/right.png"; + const image_player_left = new Image(); + image_player_left.src = "/players/left.png" + const image_gun_right = new Image(); + image_gun_right.src = "/players/gunRight.png"; + const image_gun_left = new Image(); + image_gun_left.src = "/players/gunLeft.png"; + + // Sounds + const shotSound1 = new Audio("/sounds/shoot.mp3"); + const shotSound2 = new Audio("/sounds/shoot.mp3"); + const shotSound3 = new Audio("/sounds/shoot.mp3"); + const shotSound4 = new Audio("/sounds/shoot.mp3"); + const shotSound5 = new Audio("/sounds/shoot.mp3"); + const shotSound6 = new Audio("/sounds/shoot.mp3"); + const shotSound7 = new Audio("/sounds/shoot.mp3"); + const shotSound8 = new Audio("/sounds/shoot.mp3"); + const shotSound9 = new Audio("/sounds/shoot.mp3"); + const shotSound10 = new Audio("/sounds/shoot.mp3"); + const shotSound11 = new Audio("/sounds/shoot.mp3"); + const shotSound12 = new Audio("/sounds/shoot.mp3"); + const shotSound13 = new Audio("/sounds/shoot.mp3"); + const shotSound14 = new Audio("/sounds/shoot.mp3"); + const shotSound15 = new Audio("/sounds/shoot.mp3"); + const shotSound16 = new Audio("/sounds/shoot.mp3"); + + // Jump Sounds + const jumpSound1 = new Audio("/sounds/jump.mp3"); + const jumpSound2 = new Audio("/sounds/jump.mp3"); + const jumpSound3 = new Audio("/sounds/jump.mp3"); + const jumpSound4 = new Audio("/sounds/jump.mp3"); + + // Jump Sounds + const landSound1 = new Audio("/sounds/land.mp3"); + const landSound2 = new Audio("/sounds/land.mp3"); + const landSound3 = new Audio("/sounds/land.mp3"); + const landSound4 = new Audio("/sounds/land.mp3"); + const landSound5 = new Audio("/sounds/land.mp3"); + const landSound6 = new Audio("/sounds/land.mp3"); + const landSound7 = new Audio("/sounds/land.mp3"); + const landSound8 = new Audio("/sounds/land.mp3"); + + // Die Sound + const dieSound = new Audio("/sounds/die.mp3"); + + // Button + class Button { + constructor() { + this.startx = 0; + this.starty = 0; + this.x = 400; + this.y = 300; + }; + click(canvas, event) { + const rect = canvas.getBoundingClientRect(); + const x = event.clientX - rect.left; + const y = event.clientY - rect.top; + if (x > this.startx && x < this.x) { + if (y > this.starty && y < this.y) { + return true; + }; + }; + return false; + }; + }; + + // Fullscreen + function openFullscreen ( c ) { + if (c.requestFullscreen) { + c.requestFullscreen(); + } else if (c.webkitRequestFullscreen) { + c.webkitRequestFullscreen(); + } else if (c.msRequestFullscreen) { + c.msRequestFullscreen(); + }; + }; + + // Canvas + const canvas = canvasRef.current; + const ctx = canvas.getContext("2d"); + ctx.canvas.width = 1920; + ctx.canvas.height = 1080; + + // Draw Images + function drawImage( ctx, image, x, y, w, h, degrees ){ + ctx.save(); + ctx.translate(x+w/2, y+h/2); + ctx.rotate(degrees*Math.PI/180.0); + ctx.translate(-x-w/2, -y-h/2); + ctx.drawImage(image, x, y, w, h); + ctx.restore(); + }; + + function drawImage2( ctx, image, x, y, w, h, degrees ){ + ctx.save(); + ctx.translate(x, y + 20); + ctx.rotate(degrees*Math.PI/180.0); + ctx.translate(-x, -y - 20); + ctx.drawImage(image, x, y, w, h); + ctx.restore(); + }; + + function drawImage3( ctx, image, x, y, w, h, degrees ){ + ctx.save(); + ctx.translate(x + w, y + 20); + ctx.rotate(degrees*Math.PI/180.0); + ctx.translate(-x - w, -y - 20); + ctx.drawImage(image, x, y, w, h); + ctx.restore(); + }; + + // Data + const playButton = new Button(); + let map = []; + let player; + let players = []; + let bullets = []; + let scroll = [0, 0] + let health = []; + let directions = []; + let angles = []; + let lastClick = [0,0]; + let shotnum = 1; + let jc = 1; + let lc = 1; + + // Draw Timeout + setInterval(() => { + + // Wipe Screen + ctx.fillStyle = "#1c1c1c"; + ctx.fillRect(0, 0, 1920 , 1080); + + // Scroll + let bakc1 = 160 - scroll[0]; + let bakc2 = 160 - scroll[1]; + let b1 = scroll[0]; + let b2 = scroll[1]; + + // Backround + ctx.drawImage(image_background, bakc1, bakc2); + + // Menu + if (menu == true) { + ctx.fillStyle = "#FF0000"; + ctx.fillRect(playButton.startx, playButton.starty, playButton.x, playButton.y); + + // Game + } else { + // Map + for (let i = 0; i < map.length; i++) { + ctx.fillStyle = "#FF0000"; + if (map[i][0] == 1) { + ctx.drawImage(image_flat, parseInt(map[i][1] - scroll[0], 10), parseInt(map[i][2] - scroll[1], 10)); + } else if (map[i][0] == 2) { + ctx.drawImage(image_corner, parseInt(map[i][1] - scroll[0], 10), parseInt(map[i][2] - scroll[1], 10)); + } else if (map[i][0] == 3) { + drawImage(ctx, image_flat, parseInt(map[i][1] - scroll[0], 10), parseInt(map[i][2] - scroll[1], 10), 80, 80, 90); + } else if (map[i][0] == 4) { + drawImage(ctx, image_corner, parseInt(map[i][1] - scroll[0], 10), parseInt(map[i][2] - scroll[1], 10), 80, 80, 90); + } else if (map[i][0] == 5) { + drawImage(ctx, image_flat, parseInt(map[i][1] - scroll[0], 10), parseInt(map[i][2] - scroll[1], 10), 80, 80, 180); + } else if (map[i][0] == 6) { + drawImage(ctx, image_corner, parseInt(map[i][1] - scroll[0], 10), parseInt(map[i][2] - scroll[1], 10), 80, 80, 180); + }else if (map[i][0] == 7) { + drawImage(ctx, image_flat, parseInt(map[i][1] - scroll[0], 10), parseInt(map[i][2] - scroll[1], 10), 80, 80, 270); + } else if (map[i][0] == 8) { + drawImage(ctx, image_corner, parseInt(map[i][1] - scroll[0], 10), parseInt(map[i][2] - scroll[1], 10), 80, 80, 270); + }; + }; + + // Bullets + for (let i = 0; i < bullets.length; i++ ) { + ctx.fillStyle = "FF0000"; + ctx.fillRect(bullets[i][1] - scroll[0], bullets[i][2] - scroll[1], 10, 10); + }; + + // Players + for (let i = 0; i < players.length; i++) { + ctx.fillStyle = "00FF00"; + for (let y = 0; y < directions.length; y++) { + if (players[i][0] == directions[y][0]) { + if (directions[y][1] < 0) { + ctx.drawImage(image_player_left, players[i][1][0] - b1, players[i][1][1] - b2, 80, 80); + for (let an = 0; an < angles.length; an ++) { + if (angles[an][0] == players[i][0]) { + drawImage3(ctx, image_gun_left, players[i][1][0] - b1 - 45, players[i][1][1] - b2 + 28, 80, 32, 180 + angles[an][1]); + }; + }; + } else { + ctx.drawImage(image_player_right, players[i][1][0] - b1, players[i][1][1] - b2, 80, 80); + for (let an = 0; an < angles.length; an ++) { + if (angles[an][0] == players[i][0]) { + drawImage2(ctx, image_gun_right, players[i][1][0] - b1 + 35, players[i][1][1] - b2 + 28, 80, 32, angles[an][1]); + }; + }; + }; + }; + }; + // Scroll + if (players[i] != 0) { + if (players[i][0] == player) { + scroll[0] += (players[i][1][0] - scroll[0] - 900)/20; + scroll[1] += (players[i][1][1] - scroll[1] - 500)/20; + } + } + // Health + for (let x = 0; x < health.length; x ++) { + if (players[i][0] == health[x][0]) { + ctx.fillStyle = "FF0000"; + ctx.fillRect(players[i][1][0] - b1, players[i][1][1] - b2 - 40, 80, 10); + ctx.fillStyle = "00FF00"; + ctx.fillRect(players[i][1][0] - b1, players[i][1][1] - b2 - 40, health[x][1] * 10, 10); + }; + }; + }; + + // Light + ctx.drawImage(image_background_light, bakc1, bakc2) + + // Mouse Move + if (socket != null) { + let px, py; + for (let i = 0; i < players.length; i++) { + if (players[i][0] == player) { + px = players[i][1][0] + 40 - scroll[0]; + py = players[i][1][1] + 40 - scroll[1]; + }; + }; + let fx = lastClick[0] - px; + let fy = lastClick[1] - py; + let angle = Math.atan(fy/fx); + let deg = (angle * 180) / Math.PI; + if (lastClick[0] < px) deg += 180; + if (deg == null || deg == undefined) deg = 0; + socket.emit("mmove", { + angle: deg + }); + }; + }; + }, 20); + + // Inputs + let inputs = [false, false, false, false, [false, 0, 0]]; + + // Click + function clickLocation( canvas, evt ) { + var rect = canvas.getBoundingClientRect(); + let scaleX = canvas.width / rect.width; + let scaleY = canvas.height / rect.height; + return { + x: (evt.clientX - rect.left) * scaleX, + y: (evt.clientY - rect.top) * scaleY + } + } + + // Clicks + canvas.addEventListener("mousedown", (event) => { + openFullscreen(canvas) + // No + if (socket == null) { + if (playButton.click(canvas, event)) { + shotSound1.load() + shotSound2.load() + shotSound3.load() + shotSound4.load() + shotSound5.load() + shotSound6.load() + shotSound7.load() + shotSound8.load() + shotSound9.load() + shotSound10.load() + shotSound11.load() + shotSound12.load() + shotSound13.load() + shotSound14.load() + shotSound15.load() + shotSound16.load() + jumpSound1.load() + jumpSound2.load() + jumpSound3.load() + jumpSound4.load() + landSound1.load() + landSound2.load() + landSound3.load() + landSound4.load() + landSound5.load() + landSound6.load() + landSound7.load() + landSound8.load() + dieSound.load() + + // Fetch Ip + fetch("http://localhost:3000/api/serverIp").then(res => {return res.json()}).then(data => { + + // Game Server + socket = io( "http://localhost" + ":5000/") + menu = false; + + // Mouse Move + canvas.addEventListener("mousemove", e => { + let { x,y } = clickLocation(canvas, e); + lastClick = [x,y]; + let px, py; + for (let i = 0; i < players.length; i++) { + if (players[i][0] == player) { + px = players[i][1][0] + 40 - scroll[0] + py = players[i][1][1] + 40 - scroll[1] + }; + }; + let fx = x - px; + let fy = y - py; + let angle = Math.atan(fy/fx); + let deg = (angle * 180) / Math.PI; + if (x < px) deg += 180; + if (deg == null || deg == undefined) deg = 0; + socket.emit("mmove", { + angle: deg + }); + }); + + // Connect + socket.on("connect", () => { + socket.emit("authentication", document.cookie); + }); + + // Map + socket.on("map", (dat) => { + map = dat; + }); + + // Users + socket.on("users", (dat) => { + console.log("rec") + players = dat; + }); + + // Player + socket.on("player", (dat) => { + player = dat; + }); + + // Bullets + socket.on("bullets", (dat) => { + bullets = dat; + }); + + // Health + socket.on("health", (data) => { + health = data; + }); + + // Directions + socket.on("directions", (data) => { + directions = data; + }); + + // Disc + socket.on("disc", () => { + window.location.reload(); + }) + + // Ang + socket.on("ang", (data) => { + angles = data; + }); + + // Die + socket.on("die", () => { + dieSound.volume = 0.5; + dieSound.play(); + }); + + // Ju + socket.on("ju", () => { + // Jump Sound + jumpSound1.volume = 0.025; + jumpSound2.volume = 0.025; + jumpSound3.volume = 0.025; + jumpSound4.volume = 0.025; + if (jc == 5) jc = 1; + if (jc == 1) jumpSound1.play(); + if (jc == 2) jumpSound2.play(); + if (jc == 3) jumpSound3.play(); + if (jc == 4) jumpSound4.play(); + jc += 1; + }); + + // La + socket.on("la", () => { + // Volume + landSound1.volume = 0.2 + landSound2.volume = 0.2 + landSound3.volume = 0.2 + landSound4.volume = 0.2 + landSound5.volume = 0.2 + landSound6.volume = 0.2 + landSound7.volume = 0.2 + landSound8.volume = 0.2 + if (lc == 1) landSound1.play(); + if (lc == 2) landSound2.play(); + if (lc == 3) landSound3.play(); + if (lc == 4) landSound4.play(); + if (lc == 5) landSound5.play(); + if (lc == 6) landSound6.play(); + if (lc == 7) landSound7.play(); + if (lc == 8) landSound8.play(); + if (lc == 9) lc = 1; + lc += 1; + }); + + // Inputs + setInterval(()=>{ + socket.emit("move", inputs) + }, 2); + }); + } + } else { + for (let i = 0; i < players.length; i++) { + if (players[i] != 0) { + if (players[i][0] == player) { + let { x, y } = clickLocation(canvas, event); + let playerX = players[i][1][0] + 40 - scroll[0]; + let playerY = players[i][1][1] + 40 - scroll[1]; + // Shot Sounds + if (shotnum == 17) shotnum = 1; + if (shotnum == 1) shotSound1.play(); + if (shotnum == 2) shotSound2.play(); + if (shotnum == 3) shotSound3.play(); + if (shotnum == 4) shotSound4.play(); + if (shotnum == 5) shotSound5.play(); + if (shotnum == 6) shotSound6.play(); + if (shotnum == 7) shotSound7.play(); + if (shotnum == 8) shotSound8.play(); + if (shotnum == 9) shotSound9.play(); + if (shotnum == 10) shotSound10.play(); + if (shotnum == 11) shotSound11.play(); + if (shotnum == 12) shotSound12.play(); + if (shotnum == 13) shotSound13.play(); + if (shotnum == 14) shotSound14.play(); + if (shotnum == 15) shotSound15.play(); + if (shotnum == 16) shotSound16.play(); + shotnum += 1; + // Click + socket.emit("click", { + clickX: x, + clickY: y, + dx: x - playerX, + dy: y - playerY, + px: players[i][1][0] + 35, + py: players[i][1][1] + 35 + }); + }; + }; + }; + }; + }); + + // Keyboard + document.addEventListener("keydown", e => { + if (socket != null) { + if (e.key == "w") { + inputs[0] = true; + }; + if (e.key == "a") { + inputs[1] = true; + }; + if (e.key == "s") { + inputs[2] = true; + }; + if (e.key == "d") { + inputs[3] = true; + }; + }; + }); + document.addEventListener("keyup", e => { + if (socket != null) { + if (e.key == "w") { + inputs[0] = false; + }; + if (e.key == "a") { + inputs[1] = false; + }; + if (e.key == "s") { + inputs[2] = false; + }; + if (e.key == "d") { + inputs[3] = false; + }; + }; + }); + }, []); + + // Page + return ( + <div> + <Header/> + <Title title = "Play"/> + <div className = { styles.play }> + <canvas id="myCanvas" width="1920" height="1080" ref = {canvasRef}></canvas> + </div> + <Footer/> + </div> + ); +}; \ No newline at end of file diff --git a/web/public/backgrounds/background.png b/web/public/backgrounds/background.png new file mode 100755 index 0000000000000000000000000000000000000000..e660b4b8ffea1743a51c2d709d8af0b1481b86c2 GIT binary patch literal 82334 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 literal 0 HcmV?d00001 diff --git a/web/public/backgrounds/backgroundLight.png b/web/public/backgrounds/backgroundLight.png new file mode 100755 index 0000000000000000000000000000000000000000..5d8e3719de2c40064c246c5d7c2e2d4d3fd60c01 GIT binary patch literal 83596 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 literal 0 HcmV?d00001 diff --git a/web/public/favicon.ico b/web/public/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..e7732da80951374ce8538957f69be25d25417c0d GIT binary patch literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lH~{4^fbswT3<HRzq@@0ngJEta zM=wavK<h_$_kV`(7~udDgV7*8AT~NC#w?f`e0q`XK~@iAgJ^8}iPeWoKeG9xvi~PB Y{0CuD^}*B+7X2`H(3{364@eXM0Eef<OaK4? literal 0 HcmV?d00001 diff --git a/web/public/fonts/NeonSans.ttf b/web/public/fonts/NeonSans.ttf new file mode 100755 index 0000000000000000000000000000000000000000..a790550d5c43b50ada6fad5b458481b6d4c2aa49 GIT binary patch literal 26156 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 literal 0 HcmV?d00001 diff --git a/web/public/players/gunLeft.png b/web/public/players/gunLeft.png new file mode 100755 index 0000000000000000000000000000000000000000..894a7c527651358426d4810afdc6774fe4f86ad4 GIT binary patch literal 5210 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 literal 0 HcmV?d00001 diff --git a/web/public/players/gunRight.png b/web/public/players/gunRight.png new file mode 100755 index 0000000000000000000000000000000000000000..e6e2f26e5f6b0fd141d3af94eb1f6f1e8515a0e6 GIT binary patch literal 5213 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 B(tiK| literal 0 HcmV?d00001 diff --git a/web/public/players/left.png b/web/public/players/left.png new file mode 100755 index 0000000000000000000000000000000000000000..af4bdc7d76c48552125538e2333ee63ee0844138 GIT binary patch literal 5623 zcmb_gS2P?9x1C|Mh#p<E(HWu-qxVkKFj1mKFJVL{LPRGcL?<Ml5G{JIqqi6(>gbH# zMZe#_?%RF(AMV56XRq^c)_yn-XP+1YJ#~^t437W+0EwoCis8T2;6EV8`In!sH8uhO zl(Wvt$_ARoCWh7`!q1*r8$7pGGttoj0G!_KXCRDC<}dnaqYn-aNU@*(Wsj89v}AH3 z;By591x;Sz<YaP1P*F-+8hJ{pTs!2l4fFI;a_J^Pa;g3Br|hN`rgr+J&luu@c`dm2 z3xH5Q#mvw^?G>P7p1WgA!Q@@%@InOej=uwt8vcYFpc$kdW_?t_NC{A<YCi<TpWG*& zuSsFP4eeRpGR%*B5o69tdw6|#_+e#z?~w4EKN$hLzQ$8v%Tu1?hIY_SJYLYrn` ziWYzg8Q^H5M{-?+SfW{eJ*;Rk^roMfPhq#x3&6ws1hm1Xn}g@f<XNH6*Zu|%Ix5%u z!N8h`p2Pt6po6*rh@THq3MZ>1SQ?K9i%EpnkkxEHcDC!+C!zyVX=Eww>X}u?F5@3X z43kZin89!rJ4`s<E|UcphzId-;Vy^UN+}Cpu|fzz<?&P#Ey?sa?)e0&rfm~yVSyiU zUuj^0A=~ATeG3Apx9@IGedu21ti2U%8%N*X%jkFHrIZ6HGzOIEF#u9Cb4Der`|&2x z)Czeq(`Y@cKjIOlwE1p|;mq~np7h>-!TN9pqpER~^w{eOP$4I}`_de!Fa}y?e@ZIP zAJHuo3slI(%U|rnES|fBB{w54t*i1k&(yad6<*@e@xkJ^WuIB!FG>9+oPB4PZ#^zw zcgs%_9zzHyN~Y)l*my+th8kE|FMIhDJPE)7q_>B-wOxc>nBkn@7q{QMaQmCLFK_w2 z(<Uqke?lI_)C5@f`nGI#VRpdNj%!{RqIB5T-#6L4&>7pM)|=S1)K}GqMQxyTI~RM5 zdWJgZd(%<+-Fe_;)+25wHWe;oZXHf0Hg+}<wm=OrMI9|Sjo>{0a1c@@h9h<zGQi9$ z`Gd-t8OuY@mBD0AZcaUmBgNZ@AHWeHd-VuUDhgi}stQ5ja8i6@cK~dN4tnz$^HK1< zE+H_sG`^YCnY^BSJ~=g6E%rjpR%}!(Lu_AczQ(wwqy|`{??m9Fzx@JxhGpO8+wR>4 z%1XBKhCB`tzvI9a!DV?br7WOK(#-)D0SguK+KJgwuR+1tG01^r-s~T#&dJ!wj2LsI zRB~f@WAqg_F=rf39Je-&HvbSGKXWNvDa4iC_37>tMoLE7EFhc*P6TI}mxGBnvo~`G zaRrIqh!99blSgx^3#e1~@$~U>Q~iU#r8~+rN;--V#1ZrsgqMTL8On*ui9Jj`AP0a0 znFGB8U1lX_B4$`FDAyvFD3{pE)Cyu1wj{Hpw?ra`Bj+s#Z}V?+Y4dLL33Uu5xzD<l zy4}CUfQ~>apr3fFpc0T8NUvPj%Bb0I&Elf=?Tjg&Hz*1O!LtMLgQ7u6QQJ|*ku6co zgtdeaVmo5uM_I(`#OcIjj~*xssGidt(+p5LQ<&4BXsDlv(<abBXrEHvajFS@=i3CQ zL8kfY_!9XA1w1&Jxve<m_(Hil1q#?!xKsFl^H%X{^6;`b3uSPa3rTTCaiDm=2~o3~ za7^*n^6T=JvF@|wuq|@520y)N8b=K6de7upvowdYb@LU1sW^;y(BM;}G(%IXX=MrJ zI&(i&QZqf3Q8huuay<_%X09=aCkG3gHJ?0B*w2pQ`~vd)<cjgK%0i7F#rfMm{wf^j ztTs^=d`kU<G%PVJocJnI_v_=Ygg0MLh&Rls#i)VQ#Gj#`89r;8eBnzf`QcLI@_DC$ z!C=i$)G*Gl)PT{b*?7xX(lE)m!hppn+SSXM&RNCT*d^W-N7qA_YJ_gYWkeHV4+(`3 zm%%K~Evo0}=9K2@<_6{}YSVp>d^r#=eMNjN5E8zc2x{LDUmrv>;___!T<kpJJa>l# zYq{;SleOKqGqW?sV8if{0m@LsSi|7P@QIO+eo0I~Y)?`~*j7?RBvztCJX5q+ghtX& zcvS4**^+R9_-`>HVO~*sNmXHLv071Gad+`WkwOt8QDO;xaYj*f30kpwNqtFA(T7)x zt_2Phj?bNi-D8}2J+O{f{lEH7(y6mP$C$KCxt5B%invnmvhEu05;6KR3NxBzsY|f9 z>$yp}L)?(=aJTw>r+wc&kNK&2$Sl=7|1805`mDZ`jg$t=ANEB0F^nA+3vH6#gkDHl zL62dxFb63FEC=cXn}_}bYkw>EX2rMajiwLQSIT$8tJYW7XWv)$&6;nupZ43`H!!~~ z?|PrHHxJvP2W-nLdns$e%S5M7&d<(*SEUZ3u$*ffhb9N&hq`-Zn@?93ms<~%x9rxD z>*!4%|Mxc^?h>LU@q<%BI7320hJv>|J}pc((1%nXZzi&2<<(lJS?9_BYA<Tf3yXTN z1*nEwDcC9mb$I71<il;AFB_A;N>($_G4L5zeCAoH?e*$t9nuA7sJHd3U6Ou8L3m8a zOO!#(Nj62MOL|9+-^J05)8*1F(PiG{-tE)f2PR|}1FwRm*#+5AU|e=raQ)Xmg-nHy z3LQO=7>TBw&}MlCQ43CKt|rK}j2b%^&v!OQ$uyy9{yO#xIFoC(-OJ|-Gq9Ss0*C7h z8S&h4l8IxnEV`^(<N6x<bUHoSlbSl3Od4If6IxB_lVP-%<rj;o&3VY<PY5I$8GS&p zB-)UU@RW%XKnZYiJ8*rLn3AaFK}aQtkBFCv><3AQHCbPmo~_*&UV;zb+UGkKJ1h** z4Ref&jSLUH?6)0wGgLA<7s7hYx~CW<;ZmpO7kKekc_-SBOq(S%jN|Y2bYUISB-2QC zeD;r*A70KZWG-~eU|Skm+WLBuAS~%JOM|q7WJ8C19lXy3d3gSs@)*z={<#8e#T+BM zxEWQIR4G(tQ7R}?lmn`nbApqI6Rhu?*CZcu^;iZSc(FaJ^+Ung-`SJiIYZgpeKw#m zFu?Ch3soCi9Q#gdN9%G>(xli#%>-rAJhqYhkL-iRh}qNUvIffVHA}Qb9Ng6sZbV#x zE(<cOH>-G&XVQM5w5K`|mw~_ZVV(pmWNy6_IC~j;Fg0RkS;1=+)aDVSeA|1js|{8x z^sz(3Z|n6uF%m1{QsUy`RAS9y^)=+R4fQp(pK1f^L;clH1(z+Y8GYa{=AB^rK`(D! zMmwon^acK-^xA4`C1~-I+OpqL!ZLy7qx|3C?R`gV+oJ3|cp5o-dRjQ$7i%?X6}?oa zUz4XKuX_=5;c&ixzI#4Hx=i9vb{4jIpM4wPYG7CCLKxKVQyli?EfnGZS|w~9#WUbE zzCHP6@<k_fq5<tc2AWaX=~<#h3h5%xkX6WCqd6lI^b>RnnqQPb6j8liO;OG7W8p(` zI(aI5nq^JWE+JGYP$a+vnG?JaB!X-R6$)Wq=2||t45-p-&a4S+aBP=2(p`mPrH`-o z&siAL7+bS!v%bMO;8pM-%zitW=aA>jgUzjX7(v}yd-Vx={q<OR&%vo|Q|rwQ&rRn| z7J&o-IGQhdMEzD>KkWIP7EDc+6t*Pm4a<-hmwE~{l6IA%m8)p8Y2|4sYG@(r`+!lb z1VrGG3xwMMLBy;t0G&95Gz$N>^)Mo^T*mrPvBTc(>b(14Y6&t&lakVsM08XAT~0?m zABW-sYK#F#SIb8gc>say^}K1-@>trJCV-BKd(+Fml3Nd_7X1&-8V^C8<%0J8M0oi) zV&SCE09+k7Pyp>Ru9CvzegIxRzHc~DC5~PPG3XsnGX9AIwG*zg4Uj1uc7$8NN>dc> zW&p~4FS#sB2dcKAVgeVirLb4A$FTlj&0q^)jRJpT`^+lNPQnUd%jr0JwfD^Y3;i&e zADJosZsbV!XfkgKDmftqH-&|@UF|+1I6~<?d-Q7Lr%1#1A|Kv-7>qB8VF=GmntR_A ztrq?L9ZlrL6L-*4B1^y`sqE8Msyo1Yl5Qq2ULo!pA(8+MJf+wqr@>ESG9@&{otBUw zr~~`4T?mkJCKBn<jPeLllmk8R4|te~a*39}E%d?C!34L4x4JmM2!#koB|4Q5Y$Q@8 zUgbbV=;LUN3F~GS+biy4aDaNOu8Z1ryf4ewR<U0JZ>&zdPD1|;2|}@^S~6O&!9YHH zKB|&8C892tJGMJu29ivrOk4}Z9L`*bG@?nV2^<Kyro1-75Bcy&jYG|+H;_w*i{QJX zBc-F~CiA~;4bp^7L#H{WsU_&^nCg`MWH0zgeM!|5CG=cIZAPC90?VJ2lXy@cP%?8c zGv+#4X)W0-3Ck(A`L?m#&fS{ee8KU+S)6%MfwF|t7?TT7;waTA9Y$g!!I7_3i&Rfk zMpYoHS*YS3CDeBmC&~w<&ndu>$?=0jne%l~QPD}!Xi-@ayd3>9sX>n0$MU<vrs1?{ zoo=GyLEXaFmX_cu9Gy<Zl~(p@+w9fYProKa9gH1lH$15QK7&4cmbjE`xX`(HxUjJC zX&Pe24Q7hRdnSEn_NG=RwI=4qP0@lgo#WnU>~Dvegc(b;(R9%Fq_2m?80QXqa`#Fb z9@iH({;%vEChc{cgNOXPRC+kj_G89lHPer0hS5J~vKMa?uYN_fs1~3azeQ~@@*DEY zm$JE9?KV$i+)~|Q-2~ks?wCI*f3D_8{`k!G%?nBOL)WF5q!^&n&{xt@Fa#70C4eP0 z9W`<^{%ja*+H7KOz&4pQ6*kN_wV$(I99?W5+n+ste?NcKLfJ~w`mLq9r9Q+s_)$or z=QgJJEb7YQT4JH65$juxO6nOKsu;?f!(iHl!g*OaY@o^DXMA4lAGvuXoTOi{LfQNe z(#Ff0>uHo!ls+lbD5I1PqXeU3q85qak7-HtNv%JU$7sZUNqQ0=pOhW5niQLm*)W2D zom_Z{xt^76-_u>wwSOV2TCZZRD)av9P3kRln7=68Y!t91W5s>1dFv5jt7O{c^7VzS z?W!@QnW2**#&W0G>Mi_}_op&sDRS)4c`+#XFeuh|a4{8YJUR*gA?s}KJnBq>t@Ld@ z>pFAa#z<oC(;rVieu%%&Y0()PJ{c|)K>a-X*+`I07Qx&y);m@=C^#nP&vSXS)IFds zkmMobGO9Qv+&?g8K1My5FuXqk9;hBD?Vk@5IE5Y`Ysl%gX@^?gJHNA4)aq1WQ!WTv ziR-H7*3vi3)p_!px{+pz<|*wEH8%~}XM@x~pHtKKWT=A}u4-=R4@3)J2aKg@Noj{@ zTc=y4@}@0982PyQ>-mHPtt*yG35)&VzzX9Mof4*>>_0>*_=+t;NADMQ0~SxaU1E0n zcSad%7!ookGgmAoEKcY8YKalU2tfoj0<(Lyd$(gf#nPS}OmY0R3^<)XNsc)>=A70p zOXn3Lu%>7e@&A18aw|UTik?Zb(r+yYw7c3o&YD%5Q`_ym?Y*k^^>kmNY02^Y>i)}P z&@<EhyK|k}sC%wUft#@FfCs%Nr?a?QD@OW^^e|_-dHrpx`?mX_dzJgXd;0#wKHI+M z9GP@EVqx2Vsp|K@H1?1AAE}$%lh)&#_{+TJ$|mDx+vd5ZQMr#HM>htiud1_Z=i6?) zFVmS<nR9ZBa?6?js>dV&SzP5k&VHTEoo${ahIZW*UGrWWo&M7;cQ04pw%RruIuV+4 z-*caMj|LV1E8e}vJ<S`C-woBfT{yn7Kbp($vpHTqBmbS;YcOnp9$$JkQ+ek#dNfYh z`*BZWT;sfdkmtO((`mx#X1hYTP57UxmZ}x+Gw+P!@Z-VbD576PWiel3dSmv5hOLL& zi$by2Z$t(pvCs_BtAIxVTET-sB~C833_%ut(l$-OfgT^c)B?EdzXv*cr}>&bT@4TX z2;yO-`IzbY1)lX!_Dp6{rso&y8?9rLQ`hyG>k58id*U79SH$AP#BnNdT5+9m)N!KP z4ca2wZQ3YpyP@JC+aZsk#-Wg*E&gEsI({twQ~sdR;Zn6y@6rm>nd$y%<C%z=!5Oah zR|=q&d&n02upWsRMVy}ZocErelbn!DCFCbeBpmCe>aOVajl_>6j^x45;L>mkxCtDM z5pItQd3%+6es_1d=zi_KzkjqpxIe(+Bp(^}=RxD<_qCmCw5>Yc*Tk<mW3VlGDYlD` zcjlKq9<;7zZZpo8_Xo|3WwIx--()eZx2;R9g(2TVa_%bce%<{J`3t;!hgIBD9O*n` zn=4o@IDa*<GSnRf-UI&zM;E3R_7-kf`?qt1O5JJQOr5!&e_4KU^5+V=-+=W$2R*2) z_Fy^Ai;nHFPqvKDCJ)XIutVr8(Rk5L(V=SC>)O}ItxBH*pS9Ee(_g16r)c6$;<C7o zxQMvixV-e#^pkYv^o(>!I=|P;2Eqk=X0nQRVgKbZaU?(X_^j`i!C~UxUl);=hPe*_ zAPD{sfd1d){Qv-*9!(WRV}Ia&w!G_<0bMjkgC<8SCzAaRpv2V&pSdPt+FLF9``WKD z=VxKu9c!X#_KqsZOi|jDVo{6xskkN{QBkyYLzQHEH&S#X`!e@-X{%A{+fxhUAW4aG zW_+{nAVG&YTK7B7@a5t5M}%r#n;;R-BuTo?466PX*`?)Sy!2`z_+@<sWNL$*bj_yf z^k6&R!i7cdmW41?I1Y~5cX)e$*R-_46DrV5mdBC>P(S;l!d=G_!OdmA2i+iKtc$*N ztD>GCQ5+HH#jzulb9GA1+d$ePRp}D91;lbOpop>8NR(FNh07gk6Y(P*4UJht2XT)j zU0G;!d^a%ewfNb$*}-E?Fm2Q(g3}VmuN)>!rgnt#vYIs-Y)x?V&6Q6I9A*(K6dg-o zdnb}x+x<*Bg&K$H_an|V1`y+r(O2+`0{fTmZR`THd_nxF@vh`<0{SslGHq8!ql;v+ z-<qr7!$F(#?HZTEqT-r34l*(7C_Vi;HI8&yV4_n{6c(R6d(*Bx*5<#L7RH!Tgv z7WqQv_KV%)U;pck=2%V+@u@yyO}8Z>DJQ_=F_D)FqZT72eW$V${WSX@gSq5>LT06* zN}A3O6CYI6j>s)O)P_8Ct!PcIouD0krLQk<jzeGPW)V?sQw7u1PsyyTs~`!zRJ6YY z$C2;t>S-m~5FtG&B0?552Pgzyoj{Z-D`31*5u7@0s)QE^Zcg>e$bovo&bEW1b;7h~ zS2S#YW^z)QIw`p@?4X+_<R|cpu61~%jrCi@H=zHwp%1{~4Go8N9BAghOAgRf)l(@~ HvWfT~uP3E* literal 0 HcmV?d00001 diff --git a/web/public/players/right.png b/web/public/players/right.png new file mode 100755 index 0000000000000000000000000000000000000000..73179a87cfb4e0eddc129626cd5ea75032e1955c GIT binary patch literal 5426 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 J%T(>7{ttt4GkX94 literal 0 HcmV?d00001 diff --git a/web/public/sounds/die.mp3 b/web/public/sounds/die.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..c2fbfd22715a903def98ffd409bfe69826af45fb GIT binary patch literal 15882 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 ASO5S3 literal 0 HcmV?d00001 diff --git a/web/public/sounds/jump.mp3 b/web/public/sounds/jump.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..bea1a855cd5153a16a62558222108476bbc057b5 GIT binary patch literal 6687 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 literal 0 HcmV?d00001 diff --git a/web/public/sounds/land.mp3 b/web/public/sounds/land.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..2b0f8cce49ca43c0c6b43548e416b6f2df11a082 GIT binary patch literal 6687 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 ZdSwX!0R30bou~hc|5o6?6*#ZJ{{UuEHi7^E literal 0 HcmV?d00001 diff --git a/web/public/sounds/shoot.mp3 b/web/public/sounds/shoot.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..9835c84c8ab9a40e6e401fbfcb03381b231d7dcb GIT binary patch literal 7523 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 literal 0 HcmV?d00001 diff --git a/web/public/tiles/corner.png b/web/public/tiles/corner.png new file mode 100755 index 0000000000000000000000000000000000000000..93fe07d7e57a23f1ffcc09f9ed7b6d41f36a269f GIT binary patch literal 5449 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 JrK&^pe*uw_TLS<9 literal 0 HcmV?d00001 diff --git a/web/public/tiles/flat.png b/web/public/tiles/flat.png new file mode 100755 index 0000000000000000000000000000000000000000..21ecd9ac452c067a90eb199e800085d8125d5b8d GIT binary patch literal 5447 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 Q|4akWRyR<qRB?>@AI3*h%K!iX literal 0 HcmV?d00001 diff --git a/web/styles/404.module.css b/web/styles/404.module.css new file mode 100755 index 0000000..25ba376 --- /dev/null +++ b/web/styles/404.module.css @@ -0,0 +1,13 @@ +/* Error404 */ +.error404 { + background-color: #1a1a1a; +} + +/* Error404 H2 */ +.error404 h2 { + text-align: center; + font-family: NeonSans; + font-size: 40vw; + color: #8c00ff; + text-shadow: 0 0 4vw #8c00ff, 0 0 6vw #8c00ff; +} \ No newline at end of file diff --git a/web/styles/account.module.css b/web/styles/account.module.css new file mode 100755 index 0000000..20a8bf5 --- /dev/null +++ b/web/styles/account.module.css @@ -0,0 +1,117 @@ +/* Account */ +.account { + display: flex; + justify-content: center; + background-color: #1a1a1a; +} + +/* Account Div */ +.account div { + width: 30%; + padding: 50px; + display: flex; + flex-direction: column; + text-align: center; +} + +/* Account Div H2 */ +.account div h2 { + padding: 40px; + font-family: NeonSans; + font-size: 25px; + color: #8c00ff; + text-shadow: 0 0 10px #8c00ff, 0 0 20px #8c00ff, 0 0 30px #8c00ff, 0 0 40px #8c00ff; +} + +/* Account Div H3 */ +.account div h3 { + padding: 10px; + font-family: NeonSans; + font-size: 20px; + background-color: #1a1a1a; + color: #f700ff; + text-shadow: 0 0 10px #f700ff, 0 0 20px #f700ff, 0 0 30px #f700ff, 0 0 40px #f700ff; +} + +/* Account Div Form */ +.account div form { + display: flex; + flex-direction: column; +} + +/* Account Div Form Input */ +.account div form input { + padding: 15px; + margin: 15px; + border: 1px solid #f700ff; + border-radius: 5px; + font-family: NeonSans; + font-size: 20px; + background-color: #1a1a1a; + color: #f700ff; + text-shadow: 0 0 10px #f700ff, 0 0 20px #f700ff, 0 0 30px #f700ff, 0 0 40px #f700ff; +} + +/* Account Div Form Input Placeholder */ +.account div form input::placeholder { + font-family: NeonSans; + color: #f700ff; +} + +/* Account Div Form Button */ +.account div form button { + padding: 15px; + margin: 15px; + cursor: pointer; + border: 1px solid #ff9d00; + border-radius: 5px; + font-family: NeonSans; + font-size: 20px; + background-color: #1a1a1a; + color: #ff9d00; + text-shadow: 0 0 10px #ff9d00, 0 0 20px #ff9d00, 0 0 30px #ff9d00, 0 0 40px #ff9d00; + transition: text-shadow 0.2s linear; +} + +/* Account Div Form Button Hover */ +.account div form button:hover { + text-shadow: 0 0 10px #ff9d00, 0 0 20px #ff9d00; + transition: text-shadow 0.2s linear; +} + +/* Account Form Button */ +.account form button { + padding: 15px; + margin: 15px; + margin-bottom: 30px; + cursor: pointer; + border: 1px solid #ff9d00; + border-radius: 5px; + font-family: NeonSans; + font-size: 20px; + background-color: #1a1a1a; + color: #ff9d00; + text-shadow: 0 0 10px #ff9d00, 0 0 20px #ff9d00, 0 0 30px #ff9d00, 0 0 40px #ff9d00; + transition: text-shadow 0.2s linear; +} + +/* Account Form Button Hover */ +.account form button:hover { + text-shadow: 0 0 10px #ff9d00, 0 0 20px #ff9d00; + transition: text-shadow 0.2s linear; +} + +/* Small Screens */ +@media screen and (max-width: 1000px) { + /* Account */ + .account { + flex-direction: column; + align-items: center; + } + /* Account Div */ + .account div { + width: 80%; + padding-top: 20px; + padding-bottom: 20px; + } +} \ No newline at end of file diff --git a/web/styles/fonts.css b/web/styles/fonts.css new file mode 100755 index 0000000..5c9e544 --- /dev/null +++ b/web/styles/fonts.css @@ -0,0 +1,5 @@ +/* NeonSans Font Face */ +@font-face { + font-family: NeonSans; + src: url(../public/fonts/NeonSans.ttf); +} \ No newline at end of file diff --git a/web/styles/index.module.css b/web/styles/index.module.css new file mode 100755 index 0000000..63975e8 --- /dev/null +++ b/web/styles/index.module.css @@ -0,0 +1,30 @@ +/* Index */ +.index { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +/* Index H2 */ +.index h2 { + width: 80%; + padding: 20px; + text-align: center; + font-family: NeonSans; + font-size: 25px; + color: #8c00ff; + text-shadow: 0 0 10px #8c00ff, 0 0 20px #8c00ff, 0 0 30px #8c00ff, 0 0 40px #8c00ff; +} + +/* Index H3 */ +.index h3 { + width: 80%; + padding: 20px; + padding-bottom: 40px; + text-align: center; + font-family: NeonSans; + font-size: 15px; + color: #f700ff; + text-shadow: 0 0 10px #f700ff, 0 0 20px #f700ff, 0 0 30px #f700ff, 0 0 40px #f700ff; +} \ No newline at end of file diff --git a/web/styles/leaderboards.module.css b/web/styles/leaderboards.module.css new file mode 100755 index 0000000..f0d795f --- /dev/null +++ b/web/styles/leaderboards.module.css @@ -0,0 +1,93 @@ +/* Leaderboards */ +.leaderboards { + background-color: #1a1a1a; +} + +/* Leaderboards Div First Child */ +.leaderboards div:first-child { + padding: 10px 40px; + padding-top: 40px; + display: flex; + justify-content: space-around; + align-items: flex-start; +} + +/* Leaderboards Div First Child Table */ +.leaderboards div:first-child table { + border-spacing: 20px; +} + +/* Leaderboards Div First Child Table First Child */ +.leaderboards div:first-child table:first-child { + width: 65%; +} + +/* Leaderboards Div First Child Table Last Child */ +.leaderboards div:first-child table:last-child { + width: 25%; +} + +/* Leaderboards Div First Child Table Tr */ +.leaderboards div:first-child table tr { + font-family: NeonSans; +} + +/* Leaderboards Div First Child Table Tr Th */ +.leaderboards div:first-child table tr th { + text-align: start; + font-size: 25px; + color: #8c00ff; + text-shadow: 0 0 10px #8c00ff, 0 0 20px #8c00ff, 0 0 30px #8c00ff, 0 0 40px #8c00ff; +} + +/* Leaderboards Div First Child Table Tr Td */ +.leaderboards div:first-child table tr td { + font-size: 20px; + color: #f700ff; + text-shadow: 0 0 10px #f700ff, 0 0 20px #f700ff, 0 0 30px #f700ff, 0 0 40px #f700ff; +} + +/* Leaderboards Div Last Child */ +.leaderboards div:last-child { + width: 100%; + display: flex; + justify-content: center; + align-items: center; +} + +/* Leaderboards Div Last Child A */ +.leaderboards div:last-child a { + width: 160px; + padding: 30px; + padding-bottom: 40px; + font-family: NeonSans; + font-size: 20px; + color: #ff9d00; + text-shadow: 0 0 10px #ff9d00, 0 0 20px #ff9d00, 0 0 30px #ff9d00, 0 0 40px #ff9d00; + transition: text-shadow 0.2s linear; +} + +/* Leaderboards Div Last Child A Hover */ +.leaderboards div:last-child a:hover { + text-shadow: 0 0 10px #ff9d00, 0 0 20px #ff9d00; + transition: text-shadow 0.2s linear; +} + +/* Small Screens */ +@media screen and (max-width: 1111px) { + /* Leaderboards Div First Child */ + .leaderboards div:first-child { + flex-direction: column-reverse; + justify-content: center; + align-items: center; + } + /* Leaderboards Div First Child Table First Child */ + .leaderboards div:first-child table:first-child { + padding-top: 50px; + width: 100%; + } + /* Leaderboards Div First Child Table Last Child */ + .leaderboards div:first-child table:last-child { + width: 100%; + } +} \ No newline at end of file diff --git a/web/styles/play.module.css b/web/styles/play.module.css new file mode 100755 index 0000000..be2fa8c --- /dev/null +++ b/web/styles/play.module.css @@ -0,0 +1,4 @@ +/* Play Canvas */ +.play canvas { + width: 100vw; +} \ No newline at end of file diff --git a/web/styles/reset.css b/web/styles/reset.css new file mode 100755 index 0000000..1eff6c2 --- /dev/null +++ b/web/styles/reset.css @@ -0,0 +1,12 @@ +/* Body */ +body { + background-color: #1a1a1a; +} + +/* All Elements */ +* { + padding: 0; + margin: 0; + border: 0; + text-decoration: none; +} \ No newline at end of file